ドローダウン戦略について
概要
- 投資における逆張り戦略の一つ
- 直近の高値から一定割合以上下落した銘柄を買う
- QLDでは好成績を収めている
ドローダウン戦略の可視化
import pandas as pd
import yfinance as yf
import matplotlib.pyplot as plt
# S&P 500の価格データを取得
ticker = '^GSPC' # S&P 500のティッカーシンボル
data = yf.download(ticker, period='5y', interval='1d')
# 過去30日間の価格データを抽出し、最高値を計算
data['Max_30d'] = data['Close'].rolling(window=30).max()
# ドローダウンを計算
data['Drawdown'] = (data['Close'] - data['Max_30d']) / data['Max_30d'] * 100
# 10%のドローダウンを超えた日を抽出
alert_days = data[data['Drawdown'] <= -3]
# ドローダウンを可視化
plt.figure(figsize=(14, 7))
plt.plot(data.index, data['Close'], label='Close Price')
plt.plot(data.index, data['Max_30d'], label='30-Day Max Price', linestyle='--')
plt.fill_between(data.index, data['Max_30d'], data['Close'], where=data['Drawdown'] <= -3, facecolor='red', alpha=0.5, label='Drawdown')
plt.title('S&P 500 Price and 30-Day Drawdown Analysis (5 Years)')
plt.xlabel('Date')
plt.ylabel('Price (USD)')
plt.legend()
plt.show()