한국투자 API에 해당하는 글 1

미국주식 자동매매 시작하기-2

AI주식자동매매|2021. 11. 17. 22:21
반응형

안녕하세요?

 

오늘은 제가 한국투자증권에서 제공하는 API를 이용하여 미국주식을 매수하는 소스를 공유하고자 합니다.

한국투자증권을 통해서 쉽게 미국주식도 자동매매가 가능합니다.

 

다음은 지정가로 지정한 수량 및 단가로 매수 주문하는 Python 소스입니다.

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QAxContainer import *

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("한국투자증권-API")
        self.setGeometry(300, 300, 800, 500)

        self.text_edit = QTextEdit(self)
        self.text_edit.setGeometry(10, 20, 780, 450)
        # self.text_edit.setEnabled(False)

        # 주문 입력 및 전송
        self.tran_os_us_buy = QAxWidget("ITGExpertCtl.ITGExpertCtlCtrl.1")
        self.tran_os_us_buy.SetSingleData(0, "00000000") #계좌일련번호[8], GetAccount() 함수 이용(앞 8자리)
        self.tran_os_us_buy.SetSingleData(1, "00") #계좌 상품코드, GetAccount() 함수 이용(뒤 2자리)
        self.tran_os_us_buy.SetSingleData(2, self.tran_os_us_buy.GetEncryptPassword("0000")) #계좌비밀번호(반드시 암호화 처리 필요)
        self.tran_os_us_buy.SetSingleData(3, "NASD") #거래소코드
        self.tran_os_us_buy.SetSingleData(4, "VMD") #종목코드
        self.tran_os_us_buy.SetSingleData(5, "1") #주문수량
        self.tran_os_us_buy.SetSingleData(6, "6.11") #주문가격
        self.tran_os_us_buy.SetSingleData(7, "") #전화번호
        self.tran_os_us_buy.SetSingleData(8, "") #운용사지정주문번호
        self.tran_os_us_buy.SetSingleData(9, "0") #주문서버구분코드
        self.tran_os_us_buy.SetSingleData(10, "00") # 주문구분, 00: 지정가, 01: 시장가

        self.tran_os_us_buy.RequestData("OS_US_BUY")
        self.text_edit.append("미국 매수주문 전송 [" + str(self.tran_os_us_buy.GetSendRqID()) + "] ")
        self.tran_os_us_buy.ReceiveData.connect(self.tran_os_us_buy_receivedata) #이벤트 연결

    def tran_os_us_buy_receivedata(self):
        # 주문응답 이벤트
        self.text_edit.append("미국 매수주문 응답 [" + str(self.tran_os_us_buy.GetSendRqID()) + "] ")

        #결과 메세지
        self.text_edit.append("[" + str(
        self.tran_os_us_buy.GetSendRqID()) + "] " + self.tran_os_us_buy.GetReqMsgCode() + " " + self.tran_os_us_buy.GetReqMessage())

        self.text_edit.append("주문번호 : " + self.tran_os_us_buy.GetSingleData(1, 0))
        self.text_edit.append("주문시간 : " + self.tran_os_us_buy.GetSingleData(2, 0))

if __name__ == "__main__":
    app = QApplication(sys.argv)
    myWindow = MyWindow()
    myWindow.show()
    app.exec_()

참조하셔서 사용하시기 바랍니다.

반응형

댓글()