이 포스팅에서는 제가 개발하여 운영중인 주식 자동매매 프로그램 개발을 위해 필요한 환경 구축에 대하여 소개 하도록 하겠습니다.
기본적으로 프로그램 개발을 위한 파이썬(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의 경우 아래에서 설치가 가능합니다. (이베스트투자증권)
설치 페이지의 최신버전 설치를 선택 하시면 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 공식 홈페이지입니다.
다운로드시 Professional이 아닌 Community 버전을 설치하셔야 합니다.
Professional은 유료 Community는 무료 입니다.
▶ 결론
주식 자동매매 프로그램 개발을 위한 필요 API 프로그램, 라이브러리에 대하여 간단하게 소개해 드렸습니다.
이제 본격적으로 개발 및 그 과정에 대하여 포스팅 해 보도록 하겠습니다.