はっしゃんです。
今日は投資パフォーマンスの計算と
修正ディーツ法について紹介します。
スポンサーリンク
INDEX
投資パフォーマンスの計算
投資家にとって
正確な投資パフォーマンス計算は、
大切なことですよね。
例えば、
時価評価:120万円
であれば、損益+20万。
パフォーマンス+20%です。
この程度なら、すぐ計算できますが、
入出金で元本が変わったり、
投資期間が長くなってくると
計算もややこしくなります。
修正ディーツ法は、
このようなケースで
(比較的)正確なパフォを計算する
のに向いています。
元本が変わらない場合のパフォ計算
入出金がなく、
元本が変わらない場合の
パフォは次の式で
計算します。
投資パフォ(%)=損益/投資元本*100
例えば、
時価評価:350万円
なら、損益は、
350万-250万=100万
投資パフォは、
100万/250万*100=40%
となります。
ここまでも大丈夫ですよね。
元本が変わらない場合の年初来パフォ計算
次に、元本が変わらない場合の
年初からのパフォを計算しましょう。
投資パフォ(%)=損益/基準値*100
12月末を基準値として、
次のように月末の時価評価が
推移したとします。
1月:550万
2月:600万
3月:700万
4月:650万
5月:575万
6月:525万
各月末の年初来パフォーマンスは、
1月:(550-500)/500*100=10%
2月:(600-500)/500*100=20%
3月:(700-500)/500*100=40%
4月:(650-500)/500*100=30%
5月:(575-500)/500*100=15%
6月:(525-500)/500*100=5%
となります。
ここまでも計算は、
小学生レベルですから、
簡単にできますね。
入出金があった場合の年初来パフォ計算
では、入出金があって、
元本が変化した場合の
年初からのパフォを連続で
計算してみましょう。
1月:600万 ※50万入金
2月:700万 ※50万入金
3月:850万 ※50万入金
4月:850万 ※50万入金
5月:825万 ※50万入金
6月:675万 ※100万出金
このようなケースでは、
修正ディーツ法を使いましょう。
修正ディーツ法の特徴は、
入出金の有効期間を算出して、
修正基準値を計算していくことです。
上の計算式を分かりやすいように
分解すると下のようになります。
損益=時価評価-累計基準値
有効入出金=入出金*有効期間
修正基準値=基準値+有効入出金
投資パフォ(%)=損益/修正基準値*100
まだ、難しそうに見えますが、、
図で表すと、分かりやすくなります。
1月の場合では、
累計基準値=500+50=550万
損益=600-550=50万
有効入出金=50*0.5=25万
修正基準値=500+25=525万
投資パフォ=50/525*100=9.5%
となります。
ここでは月の中間に入出金したとみなし、
0.5を使っています。
より正確には日数から按分して計算します。
さらに2月の場合は、
1~2月の有効期間から、
修正基準値を算出するので、
累計基準値=500+50+50=600万
損益=700-600=100万
有効入出金=(50*1.5+50*0.5)/2=50万
修正基準値=500+50=550万
投資パフォ=100/550*100=18.2%
となります。
2月の計算でも有効入出金の算出が
理解のポイントです。
1月で50万入金。
2月も50万入金ですが、
当月分は0.5倍になりますので、
2月入金分:50*0.5/2=12.5万
となります。
100万入金したとしても、
有効期間を考慮すると、
50万が有効入出金というわけです。
ちなみに、3月の有効入出金は、
2月入金分:50*(0.5+1.0)/3=25万
3月入金分:50*0.5/3=8.3万
となり、150万円の入金合計のうち、
半分の75万円が期間有効分となります。
(上図を見れば、分かりやすいと思います。)
同様の手順で、残り月の
パフォを計算すると
1月: 50/525*100=9.5%
2月:100/550*100=18.2%
3月:200/575*100=34.8%
4月:150/600*100=25%
5月: 75/625*100=12%
6月: 25/637.5*100=3.9%
となります。
このように、修正ディーツ法は、
入出金の有効期間から修正基準値を求めるため、
途中で入金や出金があった場合でも、
パフォーマンスの連続性を維持して
計算できます。
手順や考え方が少し複雑ですが、
計算式は難しくはありませんので、
考え方を理解したうえで、
積極的に利用するとよいでしょう。
修正ディーツ法のプログラム式
javascript版
修正ディーツ法をjavascriptの
プログラム式であらわすと
下のようになります。
元本(基準値)と時価の配列から
パフォマンスの配列を計算して
返すfunctionになっています。
function calc_dietz(ganpon, jika) { var profit = []; var base = []; var ratio = []; if(jika.length == ganpon.length) { // 損益計算(修正ディーツ法) for(var i=0; i<jika.length; i++) { profit[i] = jika[i] - jika[0] - (ganpon[i] - ganpon[0]); } // 基準値計算(修正ディーツ法) for(var i=0; i<ganpon.length; i++) { base[i] = jika[0]; // base割当 } for(var i=1; i<ganpon.length; i++) { var change = ganpon[i] - ganpon[i-1]; // 分母の増減 var bunsi = 0.5; // 対象期間(当日・当月の真ん中0.5) var bunbo = i; // 全期間 for(var j=i; j>ganpon.length; j++) { base[j] += change * bunsi / bunbo; bunsi++; // 0.5 1.5 2.5 bunbo++; // i+0 i+1 i+2 } } // パフォ計算(修正ディーツ法) for(var i=0; i<jika.length; i++) { var temp = null; if(base[i] > 0) { temp = (profit[i] / base[i]) * 100; } if(temp != null) { temp = temp.toFixed(1); // 小数点を1桁に統一 } ratio[i] = temp; } } return ratio; }
php版
同じくphp版のfunctionです。
function calc_dietz($ganpon, $jika) { $profit = array(); $base = array(); $ratio = array(); if(count($jika) == count($ganpon)) { // profit計算(ディーツ法) for($i=0; $i<count($jika); $i++) { $profit[$i] = $jika[$i] - $jika[0] - ($ganpon[$i] - $ganpon[0]); } // base計算(ディーツ法) for($i=0; $i<count($ganpon); $i++) { $base[$i] = $jika[0]; // base割当 } for($i=1; $i<count($ganpon); $i++) { $change = $ganpon[$i] - $ganpon[$i-1]; // 分母の増減 $bunsi = 0.5; // 対象期間(当日・当月の真ん中0.5) $bunbo = $i; // 全期間 for($j=$i; $j<count($ganpon); $j++) { if($change != 0) { $base[$j] += $change * $bunsi / $bunbo; } $bunsi++; // 0.5 1.5 2.5 $bunbo++; // i+0 i+1 i+2 } } // パフォ計算(修正ディーツ法) for($i=0; $i<count($jika); $i++) { $temp = null; if($base[$i] > 0) { $temp = ($profit[$i] / $base[$i]) * 100; } if($temp != null) { $temp = round($temp, 1); // 小数点を1桁に統一 } $ratio[$i] = $temp; } } return $ratio; }
修正ディーツ法を自動計算する無料ツール
最後に、はっしゃんが開発して
実際に使用している
元本と時価のカンマ区切りデータから、
修正ディーツ法で投資パフォーマンスを
自動計算してグラフ画像を作成できる
無料ツール「パフォ画像メーカー」
を紹介しておきます。
データ作成用のExcelテンプレートも
無料提供していますので、
お役立ていただければ幸いです。
スポンサーリンク