Closed pagloria closed 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) # 나스닥, 뉴욕, 아멕스 주간거래 지정가 매수 (모의투자 미지원)
버그 설명
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 함수를 사용할 때, 빈 문자열이 들어오는 경우를 처리하는 예외 처리 로직을 추가할 필요가 있음