こんにちは!最近の市場はかなり波がありましたね。特に、S&P500に追随するVOOは大きな動きを見せています。今回は、こうした不安定な市場でどのように投資戦略を立てれば良いのか、特に下落局面で追加購入をすることが有効なのか、Pythonを使って具体的な戦略を検証してみたいと思います!
いつも通り最下部にコードへのリンクを張っているので皆さん遊んでみてね!
使用するデータとツール
まずは、毎度おなじみ、Pythonのyfinance
ライブラリを使って、S&P500(VOO)の過去15年間の日足データをダウンロードします。これにより、実際の市場データを基にシミュレーションを行うことができます。
戦略1: 毎月一定額を投資
最初の戦略として、「毎月20日に$1000でVOOを購入する」というシンプルな方法を検討します。もちろん$1000も投資に回せるかは別としてこれは一般的なドルコスト平均法による積立投資ですね。
戦略2: 市場の動きに応じた積立と追加購入
次に、より動的なアプローチを取ります。毎月$900を定期的に投資し、残りの$100は市場の動きに応じて積立または追加購入に使用します。今回は下落局面を50日移動平均を5%下回った場合と仮定しています。
- 毎月$100を積立
- 50日移動平均より5%低ければ、積立金から$100追加で購入
- 積立金がなければ追加購入は行わない
data['SMA50'] = data['Close'].rolling(window=50).mean()data['Regular Investment'] = data['Purchase Flag'] * 900data['Regular Shares'] = data['Regular Investment'] / data['Close']data['Savings'] = 100 * data['Purchase Flag'].cumsum()data['Buy More'] = (data['Close'] < data['SMA50'] * 0.95) & (data['Savings'] > 0)data['Extra Investment'] = data['Buy More'] * 100data['Savings'] -= data['Extra Investment']data['Extra Shares'] = data['Extra Investment'] / data['Close']data['Total Shares'] = (data['Regular Shares'] + data['Extra Shares']).cumsum()data['Portfolio Balance Strategy 2'] = data['Total Shares'] * data['Close'] + data['Savings']
果の比較と視覚化
最後に、これら二つの戦略に基づく資産の推移を線グラフで比較し、どの戦略がより効果的であったかを視覚的に示します。
さて、やっぱり下落局面で追加投資をしたほうが最終的なリターンは多いということが視覚的にもわかりますね!実際には通常の積立が$295,657なのに対して、下落時の追加購入を積立ていた戦略では$325,006と3万ドル近い差があることがわかりました。
今回は「下落」の定義を50日移動平均の5%を下回った場合、としましたがほかの方法でも調べてみたいですよね!次回以降調べていきますのでご期待ください。
今回のコードは下のリンクからどうぞ!