728x90
키움 open api 의 주문을 할 수 있는 실질적 코드 입니다. 2개의 버전이 있는데 첫번째는 과거에 부터 사용하던 코드입니다.
1. 과거 버전 코드
# 주식 매수
def stock_buy_order(self, price=0, flag=1):
print('매수중')
# limit 익절 stop 손절
self.kiwoom.SetInputValue('계좌번호', [계좌 번호])
self.kiwoom.SetInputValue("비밀번호", "[비밀 번호]")
self.kiwoom.SetInputValue('비밀번호입력매체', "00") # 무조건 00
self.kiwoom.SetInputValue('종목코드', [주식종목코드])
self.kiwoom.SetInputValue("매도수구분", "2") # 1:매도, 2:매수
self.kiwoom.SetInputValue("해외주문유형", str(flag)) # 1:시장가, 2:지정가, 3:STOP, 4:StopLimit, 5:OCO, 6:IF DONE
self.kiwoom.SetInputValue("주문수량", "[수량입력]")
if flag == 1:
self.kiwoom.SetInputValue("주문표시가격", "0")
self.kiwoom.SetInputValue("STOP구분", "0") # 0:선택안함, 1:선택
self.kiwoom.SetInputValue("STOP표시가격", "")
self.kiwoom.SetInputValue("LIMIT구분", "0") # 0:선택안함, 1:선택
self.kiwoom.SetInputValue("LIMIT표시가격", "")
self.kiwoom.SetInputValue("해외주문조건구분", "0") # 0:당일, 6:GTD
self.kiwoom.SetInputValue("주문조건종료일자", "0") # 0:당일, 6:GTD
self.kiwoom.SetInputValue("통신주문구분", "AP") # 무조건 "AP" 입력
else:
self.kiwoom.SetInputValue("주문표시가격", "0")
self.kiwoom.SetInputValue("STOP구분", "1") # 0:선택안함, 1:선택
self.kiwoom.SetInputValue("STOP표시가격", [매도 가격])
self.kiwoom.SetInputValue("LIMIT구분", "1") # 0:선택안함, 1:선택
self.kiwoom.SetInputValue("LIMIT표시가격", [매도 가격])
self.kiwoom.SetInputValue("해외주문조건구분", "0") # 0:당일, 6:GTD
self.kiwoom.SetInputValue("주문조건종료일자", "0") # 0:당일, 6:GTD
self.kiwoom.SetInputValue("통신주문구분", "AP") # 무조건 "AP" 입력
data = self.kiwoom.CommRqData('주식주문', "opw10008", "", '0102')
print(data)
2. 위의 버전이 업데이트 되면서 아래 버전으로 바뀌었습니다.
한줄의 코드로 주문을 넣을 수 있습니다.
# 주식 매수
def stock_buy_order(self):
# SendOrder(구분요청명 , 화면번호 , 계좌 번호, 주문 유형, 주식 코드, 주문 수량, 주문단가, 거래 구분, 주문번호)
# 주문유형 : [ 1 신규 매수 / 2 신규 매도 / 3 매수 취소 / 4 매도 취소 / 5 매수정정 / 6 매도 정정 ]
data = self.kiwoom.SendOrder('주식매수', "10011", '[계좌번호]', 1, [주식코드], 1, 0, '03', "")
print(data)
728x90
'IT 이야기 > 키움OpenAPI' 카테고리의 다른 글
[키움 open api] 주문 기능 구현 (0) | 2020.10.20 |
---|---|
[키움 open api] 로그인 기능 구현 (0) | 2020.10.10 |
[키움 open api] 개발 준비 (0) | 2020.09.10 |
키움 open api 개발 (0) | 2020.09.10 |
댓글