본문 바로가기

Quant

퀀트 전략 업데이트 (6) : Backtesting library 조사

삼성리서치 스쿠버 동호회 회장이 됐다..

가입 문의만 한건데 투어 추진할 사람이 없다고, 강사라면 환영한다 하셔서 어쩌다보니 회장을 맡게됐다.

숟가락만 올리고 싶었는데 정신을 차려보니 밥상을 차려야한다.

 

이런 느낌..


데이터를 다시 쌓는 사이에 백테스팅을 보강하려 한다.

기존 백테스팅 코드는 라이브러리를 활용하지 않고, try & error를 반복하며 직접 필요한 기능들을 개발했다.

- 보조 지표 추가

- 시각화

- 백테스팅

- 매매내역 정리

- 수익률/승률 계산

- ...

 

어느 정도 시스템이 안정화되어서 커스터마이징이 용이한 장점은 있지만,

얼기설기 만들었던 코드를 뒤로하고 더 나은 솔루션, 라이브러리가 없는지 찾아보려한다.

라이브러리를 활용하면 내가 인지하지 못했던 기능, 데이터 필드, 에러를 보강할 수 있으니 좋을 거 같다.

 

대체로 백테스팅 라이브러리가 공통적으로 제공하는 기능은 있겠지만 특히 필요한 기능은 custom 데이터셋 활용이다.

아마도 국장 5분봉 데이터를 제공하지 않을 것이기에 내가 직접 제공하는 데이터를 활용할 수 있느냐가 가장 중요하다.

 

 


1. Backtrader

https://www.backtrader.com/home/features/

chatGPT 생각은 Backtrader 추천.

공식 문서의 기능을 보니 DB source, CSV도 가능하다고 한다.

 

또 암호화폐 시장 활용성도 가능하다하니 추후 코인으로 확장할 때도 유용할 거 같다.

기능이 많아서 러닝커브가 조금 있다는데 파이썬으로 깨작거리는 건데 열심히 하면 할 수 있지 않을까.


2. Zipline

https://github.com/stefan-jansen/zipline-reloaded

 

GitHub - stefan-jansen/zipline-reloaded: Zipline, a Pythonic Algorithmic Trading Library

Zipline, a Pythonic Algorithmic Trading Library. Contribute to stefan-jansen/zipline-reloaded development by creating an account on GitHub.

github.com

python 버전 3.11도 제공하고, data integration도 지원한다.

 

그런데 chatGPT의 말을 어기면서까지 굳이 써야할 필요는 못 느끼겠다.

backtrader는 star가 16.5k, zipline은 star가 1.3k. 사람들이 많이 쓰는데는 이유가 있겠지..

 


3. LEAN

이것도 훌룡해보이는데 라이브러리가 아니라 플랫폼이다. 너무 헤비하다.

 

 

4. BT

https://github.com/pmorissette/bt

 

GitHub - pmorissette/bt: bt - flexible backtesting for Python

bt - flexible backtesting for Python. Contribute to pmorissette/bt development by creating an account on GitHub.

github.com

이건 여러 quant strategy를 관리하는데 특화된 라이브러리로 보인다.

나는 단일 전략을 사용할 예정이고, 그 전략을 테스트하는 과정에서 try & error가 있겠지만

구조적으로 특화된 관리의 필요성까지는 못 느끼겠다.