CYBOS Plus

[파이썬] 주식 매수 주문 요청 및 에러 처리 방법

상품종류
주식
언어종류
파이썬
작성일
2020/12/01
조회수
14043

주문 요청 및 주문 오류 처리 대응을 위한 간단 예제입니다 


주문/계좌 통신의 경우 BlockRequest() 의 리턴이 0 인지 반드시 확인해야 합니다 

만약 4를 리턴받은 경우는 15초동안 호출 제한을 초과한 경우로 잠시 후 다시 요청이 필요 합니다. 

요청 후에는 GetDibStatus() 호출하여 통신 결과가 정상 처리 되었는지 반드시 확인이 필요합니다.  


주의: 제공된 코드는 개발자의 코딩을 돕기 위한 단순 예제로만 제공 됩니다. 



import win32com.client


# 연결 여부 체크
objCpCybos = win32com.client.Dispatch("CpUtil.CpCybos")
bConnect = objCpCybos.IsConnect
if (bConnect == 0):
    print("PLUS가 정상적으로 연결되지 않음. ")
    exit()

# 주문 초기화
objTrade =  win32com.client.Dispatch("CpTrade.CpTdUtil")

initCheck = objTrade.TradeInit(0)

if (initCheck != 0):
    print("주문 초기화 실패")
    exit()


# 주식 매수 주문
acc = objTrade.AccountNumber[0#계좌번호
accFlag = objTrade.GoodsList(acc, 1)  # 주식상품 구분
print(acc, accFlag[0])
objStockOrder = win32com.client.Dispatch("CpTrade.CpTd0311")
objStockOrder.SetInputValue(0"2")   # 2: 매수
objStockOrder.SetInputValue(1, acc )   #  계좌번호
objStockOrder.SetInputValue(2, accFlag[0])   # 상품구분 - 주식 상품 중 첫번째
objStockOrder.SetInputValue(3"A005930")   # 종목코드 - 필요한 종목으로 변경 필요
objStockOrder.SetInputValue(410)   # 매수수량 - 요청 수량으로 변경 필요
objStockOrder.SetInputValue(510000)   # 주문단가 - 필요한 가격으로 변경 필요
objStockOrder.SetInputValue(7"0")   # 주문 조건 구분 코드, 0: 기본 1: IOC 2:FOK
objStockOrder.SetInputValue(8"01")   # 주문호가 구분코드 - 01: 보통

# 매수 주문 요청
nRet = objStockOrder.BlockRequest()
if (nRet != 0) :
    print("주문요청 오류", nRet)    
    # 0: 정상,  그 외 오류, 4: 주문요청제한 개수 초과 
    exit()

rqStatus = objStockOrder.GetDibStatus()
errMsg = objStockOrder.GetDibMsg1()
if rqStatus != 0:
    print("주문 실패: ", rqStatus, errMsg)
    exit()










첨부파일
의견(0)

첨부파일을 PDF뷰어로 확인 하실수 있으며, PDF뷰어 미설치 고객께서는 우측 다운로드를 통해 설치 후 이용 가능 합니다.

PDF뷰어 다운로드

인쇄