zipline-reloaded 빌드환경

zipline 은 Quantopian 이 운영하던 오픈소스 백테스팅 으로 2021년경 지원이 중단된 뒤로 Machine Learning for Trading 책의 저자가 fork 한 zipline-reloaded 프로젝트로 유지되고 있다.

오픈소스 개발에 참여하기 위해서 링크의 개발환경이 갖춰져야 한다.

개발환경 구성하기

https://zipline.ml4trading.io/development-guidelines.html

  1. python 3.12
  2. venv, pyenv, conda 등 가상환경 가능.

Linux 의존성 설치

컴파일을 위해서 리눅스 패키지 의존성을 설치한다.

1
sudo apt install libatlas-base-dev gfortran pkg-config libfreetype6-dev hdf5-tools

ta-lib 의존성

zipline 에는 ta-lib 를 사용하는데 C 기반의 컴파일이 필요하다.

  • linux / macos

ta-lib C library 설치가 된후에 파이썬 모듈을 설치한다.

1
sudo apt install ta-lib

numpy, sphinx, Cython 설치

1
pip install -U numpy Cython 

필요 모듈 설치하기

setuptools/build 설치

1
pip install -U setuptools wheel twine build

빌드

1
python -m build

dist 폴더에 .wheel 결과가 생성된다. 이 whl 을 설치한다

~/zipline-reloaded$ pip install dist/zipline_reloaded-3.0.3-cp311-cp311-linux_x86_64.whl

doc 빌드

sphinx 관련

1
pip install -U sphinx m2r2 sphinx_markdown_tables

cd docs

zipline-reloaded 1 - 설치

zipline 은 Quantopian 이 운영하던 오픈소스 백테스팅 으로 2021년경 지원이 중단된 뒤로 Machine Learning for Trading 책의 저자가 fork 한 zipline-reloaded 프로젝트로 유지되고 있다.

zipline 이란

  • zipline 은 Quantopian 이 운영하던 오픈소스 백테스팅이다.
  • 2021년경 업데이트 지원이 중단된 상태이다.
  • 여기서는 fork 중 Machine Learning for Trading 책의 저자 fork이 zipline-reloaded 프로젝트를 선택한다.

zipline의 fork 버전인 zipline-reload 를 설치하고 zipline은 bundle 를 통해서 데이터를 받아서 알고리즘을 실행하는 구조로 보이다. 여기서는 기본 번들로 사용하는 quandl 설치까지만 진행한다.

zipline 설치

zipline-reload 를 설치한다.

1
2
3
4
5
6
# pip
pip install zipline-reloaded


# conda
conda install -c conda-forge zipline-reloaded

quandl 시세 데이터 설치

기본 데이터 번들 Ziplin 을 위한 데이터: https://zipline.ml4trading.io/bundles.html

zipline은 기본 번들로 quandl 의 wiki 데이터 세트를 제공한다. Quandl 데이터 번들에는 자산의 일일 가격 데이터, 분할, 현금 배당금 및 자산 메타데이터가 포함됩니다.

Quandl은 2018년 초에 이 데이터 세트를 중단했으며 더 이상 업데이트되지 않습니다. 그럼에도 불구하고 자체 데이터 세트를 설정하지 않고 Zipline을 시험해 보는 것은 유용한 시작점입니다.

현재 quandl 데이터는 NASDAQ 에서 호스팅한다. 설치시 NASDAQ 에 가입해 설치를 했어야 한다.

Get a QUANDL API Key

*Ingest Zipline Bundle 을 다운받으려면 data.nasdaq.com에 가입해서 API key 를 얻는다. account setting 에 API Key 가 있다.

https://data.nasdaq.com/account/profile

Zipline 기본 Bundle

API key 를 복사해서 quandl 데이터 번들을 다운로드 하려면 zipline 명령으로 시작한다.

다음 명령 중 하나를 사용하면 기본 quandl 번들을 홈디렉토리에 다운로드 한다.

1
2
3
4
5
$ QUANDL_API_KEY='**********'  zipline ingest -b quandl

or

$ QUANDL_API_KEY='**********' zipline ingest

다운로드 되는 번들 파일은 사용자 홈디렉토리 아래 .zipline/data 폴더에 저장된다.

Jupyter Notebook 셀에서 실행한다면

! 다음에 명령을 넣어 주면 된다.

1
$ ! QUANDL_API_KEY='**********' zipline bundles

다운로드한 번들을 확인할 수 있다.

1
2
3
4
5
6
7
$ zipline bundles

csvdir <no ingestions>
quandl 2024-02-03 12:59:38.882421
quandl 2024-02-03 12:55:18.326897
quandl 2024-02-03 12:42:14.980288
quantopian-quandl <no ingestions>

zipline 으로 알고리즘 실행

zipline 은 3가지 방법으로 알고리즘을 실행할 수 있다. run 명령 도움말을 참조할 수 있다.

1
$ zipline run --help

기본 번들에 있는 자산의 가격 데이터를 사용해서 zipline 알고리즘을 실행해 보자.