Life/투자

주식 투자 파이썬 백테스팅을 위한 공부 시작

smores 2023. 1. 16. 23:09

현재 개인적으로 파이썬은 구버전 아나콘다(python 3.6.5, C:\Anaconda3)와 별도 폴더(C:\Python3)에 설치한 Python 3.10 을 사용중입니다. 3.6 버전의 경우 회사업무와 관련하여 오래전에 만든 코드들이 사용하는 라이브러리와의 호환성 때문입니다. 그리고 코딩을 위한 에디터는 Geany 를 사용하고 있고, Build - Set build commands 옵션에서 원하는 버전의 폴더로 셋팅을 바꾸어가며 코딩을 하는 원시적인 방법을 쓰고 있습니다. 

 

이런 환경하에서 7년전부터 꽤나 많은 주식 데이터 스크래핑, 기술분석 및 백테스팅 코드를 직접 만들어서 미국 주식 종목들에 대해 다양한 전략 테스트를 해 보았습니다만, 지난 2년간은 회사일이 바쁘단 핑계로 주식공부를 등한시하며 거의 신경을 못쓰고 있었습니다만, 한 친구분의 요청으로 한국주식까지 포함하여 본격적으로 전략 테스트 공부를 하기로 하고, 함께 사용하기 위해 제대로 만들어진 이미 존재하는 툴(라이브러리)들을 사용하기로 결정하고, 필요한 라이브러리 설치부터 사용법까지 공부해가기로 했습니다. 그 과정에서 잘 잊어버리는 머리를 위해 필수적인 것들은 간단한 메모 및 정리 차원에서 이 블로그에 남겨보려 합니다.

 

 

사용할 환경

Anaconda 하에서의 Python 3.10 - Virtual Environment 관리가 Python 자체의 그것보다 훨씬 깔끔하게 느껴져서임. 현재 설치된 구버전 Anaconda 에 가상환경으로 Python 3.10 을 설치하고, 해당 환경에 필요로 하는 라이브러리들을 설치해서 사용

 

 

Anaconda Virtual Environment

conda create -n P310 python=3.10
conda env list
conda activate P310
pip install pkgs
deactivate
conda env remove -n P310

 

geany 의 build commands 에 들어갈 폴더 - C:\Anaconda3\envs\P310

 

 

라이브러리 설치

conda prompt 를 연 후 3.10 가상화면 activate 한 다음 pip 로 설치

python -m pip install --upgrade pip   # pip update
pip install package

일부 라이브러리는 단순히 pip install package명 으로만 잘 되지 않는 경우가 있고, 그 경우는 별도로 방법을 메모로 남김

 

 

사용할 라이브러리

numpy scipy matplotlib
pandas
plotly (꼭 필요할려나??)
mplfinance 
bs4 finance-datareader
jupyter
backtesting bokeh   # pip install bokeh==2.4.3, bokeh=2.4.3 이어야 backtesting 이 제대로 작동

talib   # pip install TA_Lib-0.4.24-cp310-cp310-win_amd64.whl (아래 파일 다운로드 후 anaconda prompt 상에서 해당 파일이 있는 폴더로 가서 P310 환경 activate 한 다음 해당 명령으로 설치)

TA_Lib-0.4.24-cp310-cp310-win_amd64.whl
0.49MB

 

 

코딩 환경

테스트 결과를 남겨두기 위해서 Jupyter 를 사용하기로 함 (배워야 할것도 많다!)

 

 

학습 내용 및 대략적인 순서 (거의 기초부터 한다는 가정하에)

numpy 의 array 사용법

pandas 의 Series 와 DataFrame 사용법

주식 데이터 스크래핑을 위한 라이브러리 사용법

기술분석을 위한 라이브러리 사용법

차트를 그리기 위한 라이브러리 사용법

전략 백테스팅 라이브러리 선정 및 사용법