債券インデックスをシミュレーションしてみる

Finance
前回の記事で、債券の価格形成について勉強してみました。文字と数式ばかりで途中で飽きてしまった方はすみません。あの計算はそもそも自分でやる必要がないものです、今回の記事からは結果だけ見ていきましょう。一応再現性の事もあるので使った素材については公開もします。
 
 
何にせよ、前回の記事から、債券の利回りがわかれば残債期間が分かっている債券の価格がどんな風に変わっていくかはわかる目処が立ちました。
 
※2019/2/27追記:
シミュレーションを精密にするために債券インデックスの計算方式を更新しました。
 
スポンサーリンク

債券利回りの推移

実際に米国の債券の利回りは、オフィシャルなサイトから取得することができます。
FRBのWebサイトを見るとかなり長期にわたる債券価格を公開しています。とりあえず、10年20年30年の債券の価格を取得しておきます。レバレッジファンドにかかる金利で今後必要になりそうなので3ヶ月債のデータも取得しておきました。この他にもShillerが公開しているデータがYale大学のWebサイトから取得できるのでこちらも取得しておきます。Shillerのデータはなんと1800年代からの利回りが載っています。一般人がどう使うかはわかりませんが。。。
 
 
問題としては、20年債のデータが1986-1993年ごろまで抜け落ちています。30年債も一部抜け落ちています。一時的に抜け落ちたデータは30年債のデータとイールドカーブの推定をして補完しました。また1960年ごろより以前のデータも無いので10年債の債券価格で代用しています。
 
計算式はBogleheadsのスプレッドシートに習ってExcelで計算しています。
 www.bogleheads.org
Bogleheads.org - Information
https://www.bogleheads.org/forum/viewtopic.php?f=10&t=179425
 

債券インデックスの計算

さて、利回りのデータがわかったので、債券のインデックスを計算していきます。
 
当初は公表されているdurationを元にシミュレーションをしていましたが、指標との相関が低かったこともあり、手法は改善しました。
 
長期債インデックスファンドであるTLTやVUSTXの保有銘柄とその割合を見ると、おおよそ30年債を時価総額の割合で保有して、一定以下の残債期間になったら手放しているようです。
 
そこで、「30年債を一定の割合で購入しつつ保有、残債期間が20年を下回った債券を売る」という戦略を想定して債券インデックス価格を求めてみました。
 
方法としては、
1. shillerやBogleheadsのサイトを参考にしつつ、各残債期間に応じた30年ものの債券利回りのテーブルを作成する
2. 30年債のクーポン、残債期間、その時点での利回りを元にある時点で発行された債券がある時点でいくらの価値をもつのかのテーブルを作成する
3. 債券価格のテーブルから債券価格変化(値動き)を計算する
4. 債券の価格変化からポートフォリオの保有割合を算出、利回りと価格変化から債券のリターンを計算する
 
このような方法を使ってシミュレーションをしてみました。長期のチャートはこんなふうになりました。
 
 
同じような手法を使って20年債券を購入、1年時点まで保有して売却、というようなシミュレーションもしています。
 

実際の債券ファンドとの一致性の検討

実際にRでシミュレーションしてみた債券インデックスはTLTと2002年以降で0.99、VUSTXと1986年以降で0.98の相関係数を示し、リターンの誤差も0.05%/年程度とかなり良い近似ができました。
 
 
2002年〜2019年 TLT  シミュレーション
Annualized Return 6.22 6.27
Annualized Standard Deviation 12.8 12.3
Worst Drawdown 21.8 19.8
Annualized Sharpe Ratio (Rf=0%) 0.484 0.511
Sortino Ratio (MAR = 0%) 0.258 0.266

  VUSTX LT Bond Sim
Annualized Return 7.38 7.43
Annualized Standard Deviation 9.63 10.9
Worst Drawdown 16.7 19.8
Annualized Sharpe Ratio (Rf=0%) 0.766 0.681
Sortino Ratio (MAR = 0%) 0.393 0.347

 

長期的なシミュレーションの結果では、リターンはほぼ一致する結果になり、よく近似できているといえます。
 
ただしVUSTXとはドローダウンに最大3%程度のズレがあることなど、微妙に値動きには違いが出てしまっています。TLTではドローダウンもほぼ同じなので、同じようなコンセプトで運用されているファンドにも微妙に違いがあることがわかります。こうしたファンドごとに生じる微妙な誤差まではシミュレーションは難しいです。
 
また、このシミュレーションでは利回りが不明な時期は数式を使って補間しているため厳密な数値を使用していません。また、債券の保有割合も完璧ではなく、クーポンの発生時期についても厳密に再現しているわけではないため、この通りに動くわけではありません。
 
また、特に古い債券利率についてはかなり補完が多いことから古い債券価格変動は特に誤差が大きくなることと思われます。
 
次回の記事ではS&P500のデータと配当データから超長期のS&P500 ETFのシミュレーションをした上で、レバレッジファンドをシミュレーションしてみます。
 

シミュレーション用コード

 
 

コメント