Zipline
가장 널리 알려진 백테스팅 라이브러리로 퀸토피언 커뮤니티층이 탄탄하고 두터워 매우 활동적이라는 매력이 있었다. 하지만 2017년 로컬 데스크톱에서 개발할 때 Zipline에서 자동매매 연계 기능이 사라짐과 동시에 한물갔다. 업데이트도 2020년 이후로 이뤄지지 않고 있다. 따라서 파이썬 2.7, 3.5, 3.6(이것도 업뎃된거)을 지원하고 최신버전에 사용이 제약이 있다.
이에 zipline-reloaded라는 이름으로 업데이트를 지속해 나가고 있다.
장점
- 퀀토피언 플랫폼에서 제공하는 강력한 클라우드 컴퓨팅 자원을 사용
- 다양한 데이터를 무료로 사용할 수 있으며 프리미엄 데이터는 구독료 일부를 지불하면 사용 가능
- 트레이딩 전략을 공개하고 다른 사용자들과 서로 경쟁 할 수 있으며, 가장 좋은 성과를 내면 우승금을 받을 수 있음
- 향후 관련 업계에서 일하고 싶은 전문 투자자 지망색은 트랙 레코드를 쌓을 수 있음
단점
- 확장성이 뛰어나지 않음
- 실시간 트레이딩을 지원하는 패키지(zipline-live)라는 특정 브로커를 이용해야만 사용할 수 있음
- 자신의 전략을 퀸토피언에게 제공해야만 한다
QuantConnect
퀀토피언에 버금가는 고도화된 파이썬 백테스팅 라이브러리 중 하나로 클라우드 컴퓨팅 자원 제공하며, 자신이 개발한 소스는 QuantConnect 클라우드 서버에 남게 된다. 클라우드 서비스를 이용하려면 일정 금액의 구독료를 지불해야한다.
장점
- 둘째로 유명한 클라우드 기반 백테스팅 플랫폼
- 클라우드 서비스를 이용하면 실시간 자동매매 기능을 사용할 수 있음
단점
- 확장성이 뛰어나지 않음
- 일정 금액의 구독료를 지불해야 함
Quantiacs
시스템 트레이딩과 포토폴리오 최적화 기능을 손쉽게 이용할 수 있도록 파이썬 라이브러리를 지원한다. 2019년 대규모 업데이트를 단행해 좀 더 파이썬 다운 스타일로 전략을 구현 할 수 있도록 기능을 제공한다. 여기에서도 개인이 개발한 전략을 가지고 다른 사용자와 경쟁할 수 있도록 대회를 개최하는데, 과거 이력을 살펴보면 1년에 1회 정도 개최하며 우승자는 고액의 상금을 받는다. 홈페이지에는 백테스팅 성과를 쉽게 확인 할 수 있으며, 백테스팅 이후 시점에서는 라이브 트레이딩 성과까지 공유해주기 때문에 백테스팅 성과와 실제 투자 성과의 격차도 눈으로 직접 확인 가능하다
장점
- 클라우드 시스템을 이용 가능
- 자신의 개발 전략 소유권을 보장
- US Stock과 Commodities Futures 종목에 대해 데이터 이용 가능
- 문서화가 잘되어 있어 손쉽게 따라 할 수 있음
단점
- 실시간 트레이딩이 지원되는지 확실하지 않음
Quantstats
포트폴리오 프로파일링을 수행하는 라이브러리로, 자신의 포트폴리오를 심층 분석 및 위험 정보를 제공하여 자신의 성과를 더 잘 이해할 수 있도록 도와주는 라이브러리이다. 대표적으로 세가지 모듈로 구성되는데, stats에서는 샤프비율, 퍼포먼스정보에 대한 행렬, 승률, 변동성 등을 제공한다. plots에서는 성능, 손실, 롤링 통계적 결과와 월별 수익 등을 시각화 한다. reports에서는 보고서 생성, 배치 플로팅 등을 HTML 파일로 저장 할 수 있게 한다. 주식 데이터는 yfinance를 사용하여 가져오고 있다.
장점
- 깔끔한 시각화
- 그래프와 함께 볼 수 있는 key performance metrics
- 간단한 코드
단점
- 사용법에 대한 문서화가 되어있지않음
- 사용에 자유도가 높지않음
Backtrader
개인 개발 환경에서 백테스팅하는 개발자에게 적합한 라이브러리이다. 데이터셋을 따로 제공하지 않고, yfinance를 통해 가져온다. 그 외의 데이터셋은 따로 구해야하는 불편함이 있다. 공식 메뉴얼을 제공하며 서비스 이용로 부담 없이 라이브러리를 사용 할 수 있다. 2020년 이후 업데이트가 이뤄지지 않고 있다.
장점
- 외국의 일부 퀀트 회사에서 백테스팅할때 사용할정도로 쓸만함
- 문서화가 잘 되어있음
- 실시간 트레이딩 지원
- 비용이 들지 않음
- 클라우드 서비스를 이용하지 않아도됌(개인 소스코드는 개인 소유물)
단점
- 경쟁이 없어 우승 상금 기회가 없음
- 개인적으로 데이터를 관리해야함
backtesting
아직 만들어진지 2년밖에 안된 신생 라이브러리이다. Backtrader의 비전을 이어 받아 만들어져 사용법도 굉장히 유사하다. Backtrader과 비교해 matplotlib가 아닌 bokeh를 썼는데 시각화가 더 깔끔하다. 향후 업데이트가 계속 이루어진다면 기대가 되는 라이브러리이다.
장점
깔끔한 시각화
Backtrader를 사용해봤다면 익숙한 사용법
기술적 지표 라이브러리인 TALib와 Tupli과의 호환성
단점
아직은 지원하는 기능이 Backtrader에 비해 빈약
소스 및 docs도 아직 작성중인 미완단계
pyfolio
Quantopian에서 개발한 금융 포트폴리오 성과 및 위험 분석을 위한 라이브러리이다. Zipline과 같은 백테스팅 라이브러리가 호환이 잘된다.
장점
전문가를 위한 완전 관리형 서비스 제공
기능에 대한 확장성
간단한 코드
단점
Quantstats에 비해 한눈에 보기 어려운 시각화
미흡한 docs
alphalens
주식 백테스팅 성능 분석을 위한 라이브러리로 Zipline 백테스팅 라이브러리 및 재무 포트폴리오 성능 및 위험 분석을 제공하는 pyfolio와 잘 작동한다. 정보가 별로 없어서 사용법을 알아보기가 힘들다
장점
전문가를 위한 완전 관리형 서비스 제공
무료호스팅 플랫폼이 Quantopian에서 사용해볼 수 있음
단점
미흡한 docs
적은 자료
QuantLib
파생상품과 구조화상품을 다루는 셀사이드 금융공학에 특화되어 있다. 수많은 파생상품 프라이싱을 위한 ㅇ네진들이 장착되어 있으며, 기본적인 플레인 바닐라 상품에서부터 다소 복잡한 이색 파생상품들까지 두루 망라하고 있다. 기본적으로 내부 코드가 C++로 제작되어 있어 프라이싱 처리 속도가 매우 빠르다. 그리고 구현하기 귀찮은 국가별 휴일 처리, 마켓 컨벤션, 이자율 커브 부트스트래핑, 각종 평가모델, 몬테카를로 시뮬레이션 등 파생상품 프라이싱을 위한 다양한 부가기능까지 한 번에 제공하고 있어 사용자에게 엄청난 편리성을 가져다 준다. 퀀트대디라는 블로그에서 QuantLib 활용에 포스팅한게 많으니 참고하면 좋을듯 싶다.
장점
다양한 기능 제공
전문가들이 사용할정도로 인기있음
단점
어려운 설치(C++프로젝트를 컴파일해서 세팅해야함)
초보자에게 어려운 사용법
개인적으로 제일 나아보이는건 Backtrader, Quantstats, Quantlib 요거 세개인거 같다.
'Python' 카테고리의 다른 글
Python 공유변수 import 할때 주의할점 (0) | 2023.06.16 |
---|---|
파이썬 프로젝트 추천! 아스키 아트(ASCII ART) 프로젝트 (0) | 2022.10.27 |
python 무료 vpn을 통해 ip 바꾸기 (1) | 2022.07.24 |
python pandas 중복된 데이터를 가진 행을 하나로 줄이기 reduce (1) | 2022.07.19 |
Python 이미지파일(jpg) pdf로 바꾸기 (0) | 2022.06.27 |