본문 바로가기
IT, 프로그래밍, 네트워크 각종정보

[주식 자동매매] Python 기반 알고리즘 매매 프로그램 개발을 위한 준비 (딥러닝, 이베스트, 파이썬, 텐서플로우, 머신러닝, 개요)

by 쿨꾸7 2019. 10. 6.
반응형

이 포스팅에서는 제가 개발하여 운영중인 주식 자동매매 프로그램 개발을 위해 필요한 환경 구축에 대하여 소개 하도록 하겠습니다.

기본적으로 프로그램 개발을 위한 파이썬(Python)과 머신러닝, 딥러닝을 위한 텐서플로우(TensorFlow, 64bit Only) 설치가 필요합니다.

각각의 설치 방법은 본 블로그의 포스팅을 참고 하시기 바랍니다.

파이썬과 텐서플로우가 준비 되어 있다면 주식 매매를 위한 API와 나머지 라이브러리 설치가 필요합니다.

지금부터 필요한 API와 라이브러리를 안내 드리도록 하겠습니다.

 

▶ 주식 자동매매 API 소개

 

국내에 주식 프로그램 개발을 위한 API가 다양하게 있지만, 저는 Ebest의 Xing을 선택하여 개발하였습니다.

아래의 이유 때문입니다.

- 저렴한 수수료

- 파이썬(Python) 개발 가능 (COM을 이용하여 개발 가능)

- 활발한 질의응답 Community

수수료의 경우 각 증권사 마다 계속 바뀌기 때문에 항상 저렴하다고 장담을 할 수는 없습니다. 다만 국내 API중에 상위권의 저렴한 수수료임은 분명합니다.

파이썬(Python) 개발 가능 여부는 아주 큰 매력으로 다가 왔는데요, COM에 기반하기 때문에 COM S/C를 이용할 수 있는 모든 프로그래밍 언어가 다 개발 가능하기는 합니다.

인생은 짧은데, 빠른 개발을 위해서 파이썬 개발 가능 여부가 큰 장점으로 다가왔음은 분명한 사실입니다.

Community의 경우 사실 크게 도움은 안되는데, 특히 파이썬은 공식 지원 언어가 아니라서 문의시 자세한 답변을 해주지 않습니다. 그래도 무언가 하나라도 답변을 들을 수 있다는 점이 장점임은 분명합니다.

물론 단점도 많습니다.

- 32 비트 기반

- API중 필수적인 기능 몇가지 누락 (보유종목 and 조회기능등)

32 비트 기반의 경우 TensorFlow와 결합하여 개발할 때 큰 장애물이 됩니다. 결국 파이썬을 32 bit, 64 bit 모두 설치하여 각각 개발 뒤 별도의 프로그램을 만들고 DB를 공유하는 방법밖에 없습니다.

 

또한 몇가지 필수적인 쿼리 기능이 누락되어 있는데, 이건 어디까지나 개인적인 취향에 따른 것이라서 뭐라고 하기는 조금 어려운 것 같습니다.

API의 경우 아래에서 설치가 가능합니다. (이베스트투자증권)

http://www.ebestsec.co.kr/

 

이베스트투자증권

 

www.ebestsec.co.kr

설치 페이지의 최신버전 설치를 선택 하시면 API 설치가 가능합니다.

설치 시 xingAPI가 설치 되고 DevCenter 가 함께 설치 되는데, 원하는 쿼리를 test 해 볼수 있고 통신 내역 조회 및 쿼리를 위한 tr 구조를 확인 해 볼수 있습니다.

 

▶ 파이썬(Pyrhon) 라이브러리 소개

 

파이썬이 설치 되어 있다면 주식매매 API와 통신 및 프로그램 기능 개발을 위해 각종 Library설치가 필수 적입니다.

설치가 필요한 라이브러리는 아래와 같습니다.

제가 개발한 프로그램 기준의 필요 라이브러리 이며 본인의 필요에 따라 추가 라이브러리를 설치할 수 있습니다.

다만 주식매매 API가 32 비트 기반인 만큼 32 비트의 파이썬을 베이스로 설치 하셔야 합니다.

TensorFlow 모듈의 경우 64 비트 기반의 별도 프로그램으로 개발하게 되므로 제외하였습니다.

테이블 순서대로 각각 패키지 이름, 설치방법, 간단한 설명 을 적어 보았습니다.

pip

pip install --upgrade pip

python -m pip intall pip

Python 라이브러리 설치 해주는 인스톨러.

최신 pip상태 확보 필요

wx

pip install wxpython

python -m pip intall wxpython

Python용 그래픽 라이브러리

윈도우 Style의 GUI를 사용 가능하게 해줌

ObjectListView

pip install ObjectListView

python -m pip intall ObjectListView

Python용 ListView 라이브러리

ListType 데이터 빠른 처리 (화면 깜빡임 방지)

win32com

pip install pywin32

python -m pip intall pywin32

Python에서 win용 COM 객체 사용할 수 있게 해주는 라이브러리

telepot

pip install telepot

python -m pip intall telepot

Python에서 Telegram에 송수신 할 수 있도록 해주는 라이브러리

PyInstaller

pip install pyinstaller

python -m pip intall pyinstaller

Python에서 개발된 프로젝트를 윈도우 실행 가능 형태로 컴파일 해주는 라이브러리

numpy

pip install numpy

python -m pip intall numpy

수치 계산 등의 라이브러리

scipy

pip install scipy

python -m pip intall scipy

최적화, 통계 등의 라이브러리

-> python -m pip install --upgrade pip

각각의 라이브러리는 pip를 통해 자동으로 자신의 파이썬 버전에 맞게 설치를 할 수 있습니다.

 

▶ 프로그램 개발 환경

 

개발환경의 경우 개인의 취향에 따라 사용하는 프로그램이 다르므로 특정한 IDE 환경을 소개하지는 않습니다.

저의 경우 pycharm, Eclipse 이렇게 두가지를 사용해 보았는데 개인적으로는 pycharm이 좀 더 빠르고 편리하였습니다.

디버그 편의성 및 장기간 사용시 느려짐 없음 등이 상대적인 장점이었습니다.

https://www.jetbrains.com/pycharm/download/download-thanks.html?code=PCC

아래는 JetBrain 공식 홈페이지입니다.

www.jetbrains.com

 

JetBrains: Developer Tools for Professionals and Teams

JetBrains is a cutting-edge software vendor specializing in the creation of intelligent development tools, including IntelliJ IDEA – the leading Java IDE, and the Kotlin programming language.

www.jetbrains.com

다운로드시 Professional이 아닌 Community 버전을 설치하셔야 합니다.

Professional은 유료 Community는 무료 입니다.

 

▶ 결론

 

주식 자동매매 프로그램 개발을 위한 필요 API 프로그램, 라이브러리에 대하여 간단하게 소개해 드렸습니다.

이제 본격적으로 개발 및 그 과정에 대하여 포스팅 해 보도록 하겠습니다.

반응형