백테스트 패키지 추천! Quantstats 설치 및 사용 가이드

 안녕하세요, 게으른 퀀트입니다. 이번 포스팅에서는 백테스트 코드가 아닌 백테스트를 조금 더 쉽게할 수 있는 패키지를 추천드리려고 합니다. 저의 블로그를 자주 방문해주신 분들은 잘 아시겠지만, 지금까지는 직접 파이썬으로 코드를 작성해서 백테스트를 진행했었습니다. 나름 반복되는 기능은 함수로 만들어서 재사용하려고 했지만, 여전히 불필요한 반복이 많았고 부족한 점을 느꼈습니다. 그래서 다양한 백테스트 툴과 패키지를 찾아보던 중 파이썬 기반으로 사용할 수 있는 괜찮은 패키지를 찾았습니다! 바로 Quantstats입니다 : )

 

Quantstats 리포트 출력 예시

 이런 기본적인 벤치마크와 수익률을 비교하는 그래프부터 시작해서, 퀀트 투자 백테스트를 위해 필요한 다양한 그래프와 분석 결과를 제공합니다. 제가 직접 코드를 짜서 구현하다보면 아무래도 실수를 할 수도 있기 때문에, 잘 만들어진 패키지를 사용하는 것이 훨씬 더 안정적입니다.

1.설치 방법

 Anaconda Prompt에서 아래 두 명령어 중 원하는 설치 방법대로 실행시켜줍니다.

conda install -c ranaroussi quantstats # Conda 설치
또는
pip install QuantStats # pip 설치

 명령어를 실행하면 아래와 같이 설치가 진행됩니다.

 Quantstats의 모든 기능을 정상적으로 사용하기 위해서는 아래 패키지들이 설치되어 있어야 합니다. 자신의 환경을 확인해보고 설치가 되어있지 않다면, 추가적으로 설치하시기 바랍니다.

설치 확인) Jupyter notebook에서 아래 코드를 실행시켰을 때 오류가 없이 실행된다면 정상 설치가 된 것입니다.

%matplotlib inline
import quantstats as qs

실행결과)

 

 설치가 완료되었으니 간단한 사용법들을 알아보도록 하겠습니다. 저도 Quantstats를 오래 사용한 것이 아니라, 기본적인 사용법 먼저 알려드리고, 제가 직접 사용해보면서 유용하게 활용할 수 있는 방법들도 공유해보겠습니다. 기본 사용법은 아래 내용을 참고해주세요!

 

 

 

2.기본 사용법

 기본 사용법을 익히기 전 알아야할 점이 있습니다. Quantstats의 다양한 리포트와 분석결과는 '일자-주가'를 기준으로 생성됩니다. 미국 주식의 경우 티커로 쉽게 구할 수 있고, 다양한 전략의 경우 그에 맞게 '일자-주가' 형태로 만들어줘야할 것 같습니다.

 

티커로 일별 수익률 구하기)

 함수 내부적으로는 yfinance 패키지를 사용하고 있으며, 티커를 입력하면 전체 기간 일별 수익률을 리턴합니다. 데이터 타입은 pandas Series입니다.

stock = qs.utils.download_returns('FB')

실행결과)

 

리포트 출력)

qs.reports.plots(stock, mode='basic')

실행 결과)

 

분석결과 출력)

qs.reports.metrics(stock, mode='basic')

실행결과)

 

전체 리포트 생성)

qs.reports.html(stock, "AAPL", output='./file-name.html')

실행결과)

 위 코드를 실행하면, 실행 중인 Jupyter Notebook 파일과 동일한 경로에 html 파일로 생성됩니다. 해당 파일을 열어보면 아래와 같은 깔끔한 리포트가 생성된 것을 확인할 수 있습니다😁

 

 

 

 시각화가 아주 깔끔하게 잘 되는 것을 보니 매우 만족스럽습니다. 지금까지 힘들게 분석하고, 그래프를 그렸었는데 이제 불필요한 시간을 줄이고 중요한 곳에 집중할 수 있게 되었습니다. 다음 포스팅부터는 Quantstats을 활용해서 백테스트하는 코드를 더 구체적으로 올려보도록 하겠습니다. 기대해주세요~!


공감댓글, 공유는 큰 힘이 됩니다!

도움이 되셨다면 널리널리 알려주세요😉

 

 

댓글()