We will find a way. We always have.

고려대학교에서 인공지능과 금융공학을 연구하고 있는 어느 대학원생의 블로그입니다.

금융(Finance)/시스템 트레이딩(System Trading)

[개발] 대신증권API를 이용한 트레이딩 시스템 - 개발 환경 설정

MinsukSung 2020. 9. 18. 00:43

대부분의 사람들이 처음 개발을 접할 때 느끼는 점 중 하나는 바로 개발 환경 세팅이라고 생각한다. 이러한 개발 환경이 개발의 절반이라고 할만큼 굉장히 중요한 부분이다. 개발 환경을 제대로 세팅하지 못하면 아무것도 진행할 수 없다.

( 물론 일부는 환경이고 나발이고 라이브러리 버전에 맞춰서 프로그램만 돌아가면 된다고 말하는 사람도 있다 )

 

 일단 대신증권 API를 활용하기 위해서 Python 3.7 (32bits) 를 맞춰줘야 한다. 처음 API를 이용하려고 할 때 이 부분에서 고생을 너무 많이 했는데, Anaconda를 통해서 새롭게 가상환경을 생성하여 진행하는게 제일 깔끔했던 것 같다. 장담컨대, 32bit라는 조건을 무시한다면 영문 모를 무한 에러에 갇혀 있는 자신을 발견할 것이다.

 

이제 대신증권 홈페이지로 접속하자. 그리고 대신증권 가입하지 않은 사람들은 API 사용을 위해서 가입하길 바란다. 어렵지 않으니 금방 진행될 것이다.  

 

www.daishin.com/

 

대신증권

온라인 증권 트레이딩, 주식, 금융상품, 선물, 경제연구소, 투자정보, 로보어드바이저, 재테크, 자산관리

www.daishin.com

홈페이지 아래로 가면 다운로드 센터를 클릭한다. 

 

CYBOS 5 를 그대로 다운로드한다. 그러면 알아서 잘 설치된다. 

이걸 설치해야지만 CYBOS Plus를 이용할 수 있다. 이걸 통해서 API를 호출할 수 있다. 사실 여기서는 정말 간략하게만 설명해두긴 했는데, 조대표님의 위키독스를 확인하면 조금 더 자세하게 설명해두긴 했다. 그래도 안되는 사람들은 댓글로 도움을 청한다면 최대한 도와주겠다.

 

wikidocs.net/2870

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

그리고 아래 코드를 사용하여 CYBOS Plus가 정상적으로 연결됐는지 체크해보자. 

# 대신증권 API
# CYBOS Plus 연결여부

import win32com.client

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

참고로 win32com이라는 라이브러리를 이용하기 위해선 아래와 같이 진행하자.

 

  • conda: conda install pywin32
  • pip: pip install pypiwin32

만약 이상없이 잘된다면, 이제부터 대신증권 API를 제대로 활용할 수 있는 환경이 세팅됐다는 걸 의미한다. 필자는 PyCharm 환경에서 위의 세팅을 마무리해뒀다. 

 

 

다음 시간부터는 대신증권 홈페이지에서 제공하는 예제들을 하나씩 살펴보자.