넋두리
주식 프로그램을 만들고 있는데 키움 / DART로는 부족한게 있었다.
대신증권 Cybos Plus 에서 좀 더 쉽게 구할 수 있지 않을까 싶어
계좌계설하고 프로그램 설치하고 하는데 개같은거 가이드가 제대로 되지 않아
조오낸 삽질을 많이 했다.
미래에 내가 다시 설치할 때 고생하지 말라고 글을 남겨본다.
참고로 대신증권이라는 이름은 같지만,
싸이보스와 크레온은 다른 계좌와 아이디를 사용한다. (헛갈려서 이것도 삽질했다 ㅡ.,ㅡ)
따라서 모바일 / 홈페이지 모두 크레온이 아닌 싸이보스로만 해야한다.
대신증권 CYBOS 가입에서 시스템 트레이딩 신청까지
1. 계좌계설
- 스토어 앱 > [대신증권 CYBOS Touch (계좌개설) 설치] > [계좌개설]
- 범용 공인인증서 / 주민등록증 or 운전면허증 필참
2. PC에 CYBOS 설치하기
- 반드시 HTS를 설치해야 CYBOS Plus를 사용할 수 있다.
- 메인페이지에서 찾아 들어가기 빡세게 홈페이지를 디자인해서 아래 링크 참조할 것
다운을 받으란겨 말라는겨
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()
'파이썬' 카테고리의 다른 글
윈도우 10 HDFView 64비트 실행 (0) | 2021.07.21 |
---|---|
[파이썬] img2pdf 를 이용한 JPG 파일을 PDF로 만드는 방법 (0) | 2021.07.07 |
파이썬 랜덤 이름 / 랜덤 휴대폰번호 / 랜덤 CI / 랜덤 이메일 / 랜덤 생년월일 만들기 (0) | 2021.03.29 |
[파이썬] 파이썬 키움 API 실행 에러 해결방법 - 'QAxWidget' object has no attribute 'OnEventConnect' (0) | 2019.08.16 |
WRITTEN BY