This project implements a minimal backtesting framework for moving average crossover strategies. It evaluates performance and risk using Sharpe Ratio, Max Drawdown, and 1‑day 95% Historical Value at Risk (VaR). Price data is fetched from Yahoo Finance, processed, and analyzed with customizable parameters.
이 프로젝트는 단순 이동 평균 교차 전략을 기반으로 한 최소한의 백테스트 프레임워크를 구현합니다. Yahoo Finance에서 데이터를 가져와 전처리하고, Sharpe 비율, 최대 낙폭, 95% 하루 기준 VaR 등의 리스크 지표를 사용해 전략 성과를 평가합니다.
This table summarizes the final returns and risk metrics for each stock from January 2023 to December 2024 under the moving average strategy.
이 표는 이동 평균 전략을 2023년 1월부터 2024년 12월까지 적용했을 때, 각 종목의 수익률과 리스크 지표를 요약한 것입니다.
A side-by-side comparison of risk metrics such as Sharpe Ratio, VaR (95%), and Max Drawdown for each stock.
각 종목에 대해 Sharpe Ratio, VaR(95%), 최대 낙폭 등의 리스크 지표를 비교한 그래프입니다.
import os, sys sys.path.insert(0, os.path.abspath('..')) from src.load_data import load_all from src.analysis import compute_metrics import matplotlib.pyplot as plt # Load stock data tickers = ["AAPL", "MSFT", "TSLA"] data = load_all(tickers) # Compute metrics full_metrics = compute_metrics(data, short=5, long=20) display(full_metrics) # Plot risk metrics ax = full_metrics.set_index('Ticker')[['Sharpe Ratio','VaR_95','Max Drawdown']].plot.bar(figsize=(8,4)) ax.set_title('Strategy Risk Metrics Comparison') plt.tight_layout() plt.show()
import os, sys sys.path.insert(0, os.path.abspath('..')) from src.load_data import load_all from src.analysis import compute_metrics import matplotlib.pyplot as plt # 주가 데이터 불러오기 tickers = ["AAPL", "MSFT", "TSLA"] data = load_all(tickers) # 리스크 및 성과 지표 계산 full_metrics = compute_metrics(data, short=5, long=20) display(full_metrics) # 리스크 지표 시각화 ax = full_metrics.set_index('Ticker')[['Sharpe Ratio','VaR_95','Max Drawdown']].plot.bar(figsize=(8,4)) ax.set_title('Strategy Risk Metrics Comparison') plt.tight_layout() plt.show()