반응형

넋두리

 

주식 프로그램을 만들고 있는데 키움 / DART로는 부족한게 있었다. 

대신증권 Cybos Plus 에서 좀 더 쉽게 구할 수 있지 않을까 싶어 

계좌계설하고 프로그램 설치하고 하는데 개같은거 가이드가 제대로 되지 않아

조오낸 삽질을 많이 했다.

 

미래에 내가 다시 설치할 때 고생하지 말라고 글을 남겨본다.

 

참고로 대신증권이라는 이름은 같지만,

싸이보스와 크레온은 다른 계좌와 아이디를 사용한다. (헛갈려서 이것도 삽질했다 ㅡ.,ㅡ)

따라서 모바일 / 홈페이지 모두 크레온이 아닌 싸이보스로만 해야한다.

 

 

 

 

대신증권 CYBOS 가입에서 시스템 트레이딩 신청까지

 

 

1. 계좌계설

 - 스토어 앱 > [대신증권 CYBOS Touch (계좌개설) 설치] > [계좌개설]

 - 범용 공인인증서 / 주민등록증 or 운전면허증 필참

 

2. PC에 CYBOS 설치하기

 - 반드시 HTS를 설치해야 CYBOS Plus를 사용할 수 있다.

 - 메인페이지에서 찾아 들어가기 빡세게 홈페이지를 디자인해서 아래 링크 참조할 것

   다운을 받으란겨 말라는겨

 - [대신증권 CYBOS 다운로드]

 

3. CYBOS 접속하여, 시스템 트레이딩 신청

 - CYBOS에 접속하면, 왼쪽 상단에 화면검색기에서 "1846"을 검색하여 시스템 트레이딩 신청을 한다.

4. CYBOS Plus 접속

 - Cybos Plus 에 접속하여 관련 프로그램을 설치한다.

 

5. 주문 오브젝트 사용 동의

 - 윈도우 작업표시줄에 보라색 아이콘인 "Cybos Plus"를 오른쪽 클릭한다.

 - [주문 오브젝트 사용 동의] 를 클릭한다.

 

자, 이제 대신증권 CYBOS PLUS를 활용할 준비는 모두 끝났다.

 

 

 

파이썬 주의사항 및 간단한 예제

1. 주의사항

 - 신증권 CYBOS는 32bit만 지원한다. 따라서 파이썬 / 아나콘다는 반드시 32bit 개발환경을 세팅할 것.

 - 파이썬 실행 터미널 / CMD / 개발 프로그램(Visual Studio Code, intelliJ 등)은 
   반드시 "관리자 권한"으로 실행해야한다.

 

2. 예제 확인

 - 공식 홈페이지 예제

 - 공식 홈페이지 예제 중, 특정 종목의 일별 주가 데이터를 가져오는 예제이다.

import win32com.client
 
def ReqeustData(obj):
    # 데이터 요청
    obj.BlockRequest()
 
    # 통신 결과 확인
    rqStatus = obj.GetDibStatus()
    rqRet = obj.GetDibMsg1()
    print("통신상태", rqStatus, rqRet)
    if rqStatus != 0:
        return False
 
    # 일자별 정보 데이터 처리
    count = obj.GetHeaderValue(1)  # 데이터 개수
    for i in range(count):
        date = obj.GetDataValue(0, i)  # 일자
        open = obj.GetDataValue(1, i)  # 시가
        high = obj.GetDataValue(2, i)  # 고가
        low = obj.GetDataValue(3, i)  # 저가
        close = obj.GetDataValue(4, i)  # 종가
        diff = obj.GetDataValue(5, i)  # 종가
        vol = obj.GetDataValue(6, i)  # 종가
        print(date, open, high, low, close, diff, vol)
 
    return True
 
 
 
# 연결 여부 체크
objCpCybos = win32com.client.Dispatch("CpUtil.CpCybos")
bConnect = objCpCybos.IsConnect
if (bConnect == 0):
    print("PLUS가 정상적으로 연결되지 않음. ")
    exit()
 
 
# 일자별 object 구하기
objStockWeek = win32com.client.Dispatch("DsCbo1.StockWeek")
objStockWeek.SetInputValue(0, 'A005930')   #종목 코드 - 삼성전자
 
# 최초 데이터 요청
ret = ReqeustData(objStockWeek)
if ret == False:
    exit()
 
 
# 연속 데이터 요청
# 예제는 5번만 연속 통신 하도록 함.
NextCount = 1
while objStockWeek.Continue:  #연속 조회처리
    NextCount+=1;
    if (NextCount > 5):
        break
    ret = ReqeustData(objStockWeek)
    if ret == False:
        exit()

터미널에서 실행한 모습

반응형

WRITTEN BY
데르벨준

,