ファイナンス理論

時間加重収益率(修正ディーツ法)を口座データからエクセルで計算する

本稿では時間加重リターンの計算方法について解説します。
時間加重リターンの計算方法の1つである修正ディーツ法を使って、実際に楽天証券の口座開設者が取得できるデータで計算してみます。簡単な数値例を使った解説は多くありますが、実際の数字を使ったものはあまり無かったので参考になれば嬉しいです。

時間加重リターンとは

時間加重リターンは、資金の入出金の影響を除いた運用成績を見るための収益率の計算方法です。

例えば運用会社が投資家と信託ファンドで投資一任契約を結んでいる場合、投資家の判断による運用金額の増額(嬉しい)や減額(つらい)があります。このとき、増額であれば信託ファンドに現金が入って来て、減額の場合は現金が出ていきます。そのため、資金流出入の影響を排除したうえで、ファンドマネージャーの運用能力を見るための収益率が必要です。

個人投資家の場合であっても、投資判断に基づく売買や積立による買付によって、証券ポートフォリオに資金流出入が発生します。
個別株を買っている投資家はもちろん、複数の投信やETFを組み合わせたポートフォリオを運用している場合も、自分の運用成績がMSCIコクサイやTOPIXと比較してどうだったかを検証したくなると思います。
そうした場合には時間加重収益率にして資金流出入の影響を排除してやらないと適切に比較できません。

時間加重収益率の基本的な考え方と修正ディーツ法

時間加重収益率の基本的な考え方

時間加重収益率の重要なコンセプトは2つです。

1点目はリターンが幾何的にリンクすること。具体的には

2019年の収益率=(1+2019年1月の収益率)×(1+2019年2月の収益率)×(1+2019年3月の収益率)×・・・×(1+2019年12月の収益率)-1

ということです。日次で計算する場合は日次の収益率を1ヶ月分かけ合わせたものが月次のリターン、1年分かけ合わせたものが年間のリターンになります。

2点目はポートフォリオへの資金流出入を調整すること。
時間加重収益率の計算方法はいくつかありますが、違いは資金流出入の調整方法です。
例えば、日次厳密法の場合は、資金流出入があった時点で期間を区切ってリターンを計算していきます。運用会社の業務以外で計算するのは非現実的だと思うので詳細には立ち入りませんが、資金流出入のデータと、資金流出入があった日のポートフォリオの時価評価額が必要になるので、ハードルが高い方法です。

公表されているドキュメントとしては、日本証券アナリスト協会がGIPS(国際投資パフォーマンス基準)の邦訳を公表していますので興味がある方は併せてご覧ください。

https://www.saa.or.jp/investment/pdf/gs_calculation_2011.pdf

修正ディーツ法

修正ディーツ法は、日次厳密法ほどハードルが高くなく、資金流出入のデータと月末の時価評価額があれば計算できます。

計算方法は以下のとおりです。

$$期間tの収益率=\frac{t期末の時価評価額 - t期初の時価評価額 - t期のCF総額}{t期初の時価評価額 + (t期の個々のCF×調整ファクター)の総和}$$

ここで、
t期末の時価評価額・・・月次であれば当月末の時価評価額
t期初の時価評価額・・・月次であれば 前月末の時価評価額
t期のCF総額・・・期中のキャッシュフローを流入ならプラス、流出ならマイナスとして合計

また、

$$調整ファクター = \frac{t期の日数 - t期初からCF発生日までの日数}{t期の日数}$$

です。
分子(時価評価額の変動≒収益)の計算では期中のCFはそのまま加減し、分母の計算では期中のCFは発生のタイミングでウェイトをつけて加減します。

楽天証券ユーザーが実際に計算する

それでは、実際に計算してみます。

材料を集める

まず材料を集めます。
自分の口座で実際に作業したところ、自分が口座を開設した2009年までは遡って取得できました。10年以上遡れることに非常に感動しました。
当時使っていたもう一つの証券会社のジョインベスト証券はころころサービスが変わり、承継したN証券は24ヶ月しかデータを遡れません。

月末残高

月末残高のデータは口座管理⇛資産管理から取得します。

これはcsvでダウンロードできないので、WebページからEXCELに手動でコピペしました。スクレイピングの技術がある人はプログラムを書いてもいいと思います。技術がなくても10年分20分程度でEXCELにコピペできました。

取引履歴

キャッシュフローのために取引履歴を取得します。これは口座管理⇛取引履歴から取得できます。

商品ごとに取得する必要がありますが、これはcsvでダウンロードできます。
マイナス金利導入以前から取引している場合は投信の検索対象からMRFを外しておくとはかどります。

配当金

同様に、口座管理⇛配当金・分配金から配当金のデータを取得します。

これもcsvで取得できます。

具体的な計算過程

方針を決める

計算を始める前に、キャッシュフローの取り扱いについて方針を決めます。

1.証券口座の待機資金
証券口座内に待機資金としてキャッシュを置いている人も多いと思います。
証券口座をファンドとみなすのであればこれも月次の評価額に含めるべきです(キャッシュ込みのリターン)。一方で、証券ポートフォリオの収益率を確認したいのであれば口座内のキャッシュは除いた方が目的の数字に近くなります。
運用会社はもちろんファンド内のキャッシュを含めたリターンを計算しますが、個人投資家の証券口座でも同様にすべきかは口座の使い方次第だと考えています。
そのため、本稿ではキャッシュを含めないベースの計算方法を解説しています。キャッシュ込みで計算したい場合は、取引履歴の代わりに入出金履歴を使うとうまく行くと思います。
また、信用と先物をしているのであれば、証拠金込の資金効率が大切ですが、本稿では取り上げません。

2.配当金・分配金の取り扱い
時間加重収益率は、スポンサー(ファンドの投資家)都合の資金流出入の影響を排除するための方法なので、基本的に配当金は考慮しません。
個人の場合でも、証券口座内の待機資金を含めてリターンを計算するのであれば、配当金は考慮しなくて良いでしょう。ただ、前段の取り扱いで、証券部分のみのリターンを計算するのであれば、この方法だと受取配当金相当額が漏れてしまいます。
本稿ではいささか手抜きですが、月間の受取配当金を計算の分子に加算することにします。配当金を月末に受領し、すぐに引き抜いたという想定です。

月末残高の整形

預り金を含まない証券残高のみの月次推移を作ります。

キャッシュフローデータの整形

取引履歴を加工してキャッシュフローデータを作ります。

自分はこのように、ダウンロードしたデータの先頭に9つ項目を足して集計しました。
「約定日」をYEAR、MONTH、DATE関数を使ってばらばらにし、YEARとMONTHをつなげて集計用のKEYを作ります。

月営業日は、別のシートに日数テーブルを作り、MONTHをキーにしてVLOOKUPで取得します。

DATEと月営業日から分母で使う調整ファクタを計算します。CF符号は「取引」列を参照して買付なら”1”、解約や売付なら”-1”を返すように条件を入れます。CFは「受渡金額」にCF符号をかけて買付なら資金流入(プラス)に解約なら資金流出(マイナス)にします。最後に、調整ファクターと符号を付けたCFを掛けて調整CFを算出します。

これは投資信託の例ですが、日本株はほぼ同じようにできます。外国株だとキャッシュフローを円換算するように整形してやる必要があります。

また、配当金は、配当再投資を選択している投信を除外し、米国株の配当金はレコード中に円換算できる材料が無いので適当なレートで円換算するという調整を行いました。

計算

最終的にはこのようになります。

取引履歴から作成したキャッシュフローのデータを月ごとに足し合わせます。データの整形で作ったCFと調整CFを月ごとに合計します。
また、受取配当金は調整ファクター考慮せず、月中の受取金額をそのまま集計しています。
そしてN列で収益率を計算します。

$$収益率=\frac{月末の時価評価額 - 前月末の時価評価額 - 月中のCF総額 + 月中の受取配当金}{前月末の時価評価額 + (月中の個々のCF×調整ファクター)の総和}$$

ここまでは来れば、年率にしたりベンチマークと比較したり出来るようになります。

おわり

長くなりましたが、やってることはデータの数ほど複雑ではありません。

ただ、今回は楽天証券のデータで紹介しましたが、口座が複数社に別れているとデータの整形がかなり手間がかかります。本文では触れませんでしたが、実は自分は旧ジョインベスト証券で保有していたデータを手元の記録から作成して入れ込んでいたのでかなり萎えました。

参考になれば嬉しいです。

  • この記事を書いた人

ton

2007年から運用会社や金融機関の運用部門で株を中心に見てきました。 現在は運用業務からは離れていて運用は自己資金のみ。 投信の請求目論見書や指数の算出要領からプロダクトの中身に迫るのが好き。

-ファイナンス理論
-, ,

© 2020 儲からない投資の知識