본문 바로가기
반응형

파이썬 백테스트5

PyPortfolioOpt 라이브러리로 효율적 투자선(Efficient Frontier) 쉽게 구하기(Harry Markowitz) 해리 마코위츠는 포트폴리오 선택 이론으로 분산투자의 지표를 만든 사람이며 1990년 이 논문으로 노벨경제학상을 받습니다. 월가는 오래전부터 “계란을 한 바구니에 담지 말라"는 격언으로 분산투자의 중요성을 알고 있었지만 이를 수학적으로 증명하지 못하였습니다. 해리 마코위츠의 포트폴리오 선택 이론이 위대한 것은 분산투자를 어떻게 하면 수익률 변동폭을 최소한으로 줄일 수 있는지 증명하였다는 것입니다. 그럼 PyPortfolioOpt 파이썬 라이브러리로 각 자산군의 효율적 투자선 값을 쉽게 구해보도록 하겠습니다. 자산군은 해리 브라운의 영구 포트폴리오를 예시로 진행하겠습니다. 만약 영구포트폴리오를 운영한다면 1년에 한번 효율적 투자선을 구하고 그 비율대로 리밸런싱하는 것도 방법인것 같습니다. 코드는 아래와 같으.. 2023. 1. 24.
Google Colab에서 QuantStats 라이브러리 사용하기 QuantStats를 사용하면 백테스트 결과 정보를 손쉽게 구할수 있습니다. 퀀터스에서도 QuantStats를 사용하여 결과 정보를 얻고 있습니다. GAGR% 연복리수익률, Sharpe 지수, Max Drawdown, 각종 그래프 결과 정보를 얻으려면 여러 함수를 만들어야 하고 퀀트 전략 마다 함수를 관리해야 하는 불편함이 있습니다. QuantStats 라이브러리를 사용하면 일별 수익률만 구해서 pandas Series로 변경하여 reports.plots, reports.metrocs 등에 넣어주면 백테스트 결괏값을 손쉽게 얻을 수 있습니다. Google Colab에서 QuantStats 실행하기 # matplotlib 임포트, 주피터 출력설정 import matplotlib.pyplot as plt %.. 2023. 1. 16.
FinanceDataReader 금융데이터 알아보기 FinanceDataReader 라이브러리로 금융 데이터를 쉽게 불러올 수 있습니다. 미국, 한국, 지수, 환율, 가상화폐, 종목 등의 정보를 리스팅할 수 있습니다. 백테스트에 꼭 필요한 라이브러리 입니다. 리스팅된 SPY 정보를 Pandas로 아래와 같이 간단한 실습을 하였습니다. 좀 더 연습해서 DataFrame을 손발처럼 잘 활용할 수 있어야 백테스트 개발이 수월해질 것 같습니다. 무료 백테스트 툴은 평균모멘텀 스코어 적용 또는 카나리아 자산군에 따른 전략 변동 등 디테일한 백테스트가 불가합니다. 디테일한 부분은 앞으로 직접 구현하여 전략을 확인하고 결과를 블로그에 올려볼까 합니다. # COLAB 환경에 한글폰트 설치 # 런타임 다시 시작해야 합니다. !sudo apt-get install -y f.. 2022. 12. 28.
백테스트 실습 환경 소개(Google Colab) 백테스트 할 수 있도록 파이썬 환경을 지원해주는 프로그램은 Jupyter Notebook, Anaconda, Visual Studio Code, Google Colab이 있습니다. 현재 사용하고 있는 파이썬 개발 환경 프로그램은 Visual Studio Code를 사용하고 있습니다. 이번 백테스트에는 별도 설치 없이 모든 환경에서 사용 가능한 Google colab을 사용해 볼까 합니다. Google Colab에 대한 설명은 아래와 같습니다. 1. Google Colab(Google Colaboratory)란? Google Colaboratory은 줄여서 colab이라고 합니다. 구글 리서치팀에서 개발하였으며, 내부에서 사용하면서 꾸준히 발전해 왔다고 합니다. 브라우저에서 누구나 Python 코드를 작성.. 2022. 12. 21.
왜? 백테스트를 해야 하는가? 유튜버, 블로그, 책에 수많은 전략에 대해 잘 설명하고 백테스트까지 잘 검증해놓은 정보들이 넘쳐나고 있습니다. 이 중 좋은 전략을 몇 개 골라서 그대로 투자하는 방식은 아주 만족스러웠습니다. 하지만 퀀트 투자를 공부하면 할수록 좀 더 정교한 백테스트 툴이 필요하다는 것을 알게 되었습니다. 당장에 동적자산배분전략 보더라도 모멘텀 스코어를 구해서 안전자산에 인버스, 달러, 원화에 투자했을 경우를 백테스트 해보려고 했지만 무료 툴에서는 한계가 있었습니다. 그래서 Python으로 백테스트를 해볼까? 또는 퀀트킹, 젠포트 등 유료 툴을 구매하여 백테스트 해볼까? 고민한 결과는 Python으로 백테스트를 진행하면서 로직이라든가 라이브러리에 대해 소개하는 것도 나쁘지 않을 것 같아 Python으로 백테스팅을 진행하기.. 2022. 11. 14.
반응형