Soju06 / python-kis

📈 파이썬 한국투자증권 REST 기반 Trading API 라이브러리
https://github.com/Soju06/python-kis/wiki
MIT License
135 stars 46 forks source link

[버그] def daily_order 의 BUY_CELL_DVSN_TYPE 문제 #27

Closed pagloria closed 3 months ago

pagloria commented 10 months ago

버그 설명

dvsn = BUY_CELL_DVSN[dvsn] # type: ignore BUY_CELL_DVSN_TYPE 는 "0", "1", "2" 로 정의되는데 올바른 입력은 "00", "01", "02" 이라서 실제 응답을 못받는걸로 판단됨 (다만 모의계좌에서는 어떤 사유에서인지 제대로 출력 됨)

추가 내용

실제 계좌에서는 class KisStockDailyOrder(KisDynamic): infm_tmd: time 의 응답을 받지 않음

따라서, class KisDynamic: elif type == time: return datetime.strptime(value, '%H%M%S').time()

코드에서 datetime.strptime 함수를 사용할 때, 빈 문자열이 들어오는 경우를 처리하는 예외 처리 로직을 추가할 필요가 있음

Soju06 commented 3 months ago

시간 내어 원인을 찾아주셔서 감사합니다. 현재 라이브러리를 개편하면서, 국내 및 해외 구분 없이 동일한 인터페이스로 쿼리할 수 있는 기능이 개발되었습니다. 해당 버그 또한 v2에서 해결되어, 2.0.1버전으로 라이브러리로 업데이트 하시고 이용해주시면 됩니다.

pip install python-kis --upgrade

Tutorial#3.7. 매도매수 주문 및 정정취소 문서를 참고하여 매매를 구현할 수 있습니다.

from pykis import PyKis

kis = PyKis("secret.json", keep_token=True)

hynix = kis.stock("000660")

# SK하이닉스 1주 시장가 매수 주문
order: KisOrder = hynix.buy(qty=1)
# SK하이닉스 1주 지정가 매수 주문
order: KisOrder = hynix.buy(price=194700, qty=1)
# SK하이닉스 전량 시장가 매도 주문
order: KisOrder = hynix.sell()
# SK하이닉스 전량 지정가 매도 주문
order: KisOrder = hynix.sell(price=194700)

stock.buy(price=100, condition=None, execution=None) # 전체 지정가 매수
stock.buy(price=None, condition=None, execution=None) # 전체 시장가 매수
stock.buy(price=100, condition='extended', execution=None) # 시간외단일가 매수 (모의투자 미지원)
stock.buy(price=None, condition='before', execution=None) # 장전시간외 매수 (모의투자 미지원)
stock.buy(price=None, condition='after', execution=None) # 장후시간외 매수 (모의투자 미지원)
...
stock.buy(price=100, condition='LOO', execution=None) # 나스닥, 뉴욕, 아멕스 장개시지정가 매수 (모의투자 미지원)
stock.buy(price=100, condition='LOC', execution=None) # 나스닥, 뉴욕, 아멕스 장마감지정가 매수 (모의투자 미지원)
stock.buy(price=None, condition='extended', execution=None) # 나스닥, 뉴욕, 아멕스 주간거래 시장가 매수 (모의투자 미지원)
stock.buy(price=100, condition='extended', execution=None) # 나스닥, 뉴욕, 아멕스 주간거래 지정가 매수 (모의투자 미지원)