본문 바로가기
IT 이야기/키움OpenAPI

[키움 open api] 주문 기능 구현 코드 첨부

by Dblog 2020. 11. 23.
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

댓글