ドルコスト投資は本当に得するかPerlでシュミレーションしたら、驚愕の結果
401kでドルコスト平均法投資をした場合、
本当に得するのか見てみたくなった。
標準偏差を求めるperl関数 - *「ふっかつのじゅもんがちがいます。」withぬこ
結果やいかに・・・
use strict; use warnings; sub calc{ my $year = shift; my $income = shift; my $alg = shift; my $total = 0; my $amount = 0; my $total_cost = 0; for my $i ( 1.. $year * 12){ my $value = 10000 + int (rand(10000)); ($amount, $total, my $cost) = &$alg($income,$amount,$value); $total_cost = $total_cost + $cost; } return ($total, $total_cost); }; sub total{ my $result = 0; for(@_){ $result += $_; } $result; } sub average{ total(@_) / @_; } sub toukei { my $num = scalar(@_) or return 0; my $ave = average(@_); my $ret = 0; while(@_){ my $i = shift; $ret += ($i-$ave)**2; } return ($ave, sqrt($ret/$num)); } my $dol_cost = sub { my $income = shift; my $amount = shift; my $value = shift; $amount = $amount + ($income / $value); my $cost = $amount * (1.0 / 12) / 100; #信託報酬年率1%分減算 $amount = $amount - $cost; return ($amount, $amount * $value, $cost * $value); }; my $teikiyokin = sub { my $income = shift; my $amount = shift; my $value = shift; my $cost = shift; $amount = $amount + $income; return ($amount, $amount, 0); }; my @sum_result = (); my @cost_result = (); for my $i (1.. 1000){ my ( $total, $total_cost) = calc(17,10000,$dol_cost); push @sum_result, $total; push @cost_result, $total_cost; } my ($ave, $hensa) = toukei(@sum_result); printf "dol_cost ave=%d,hensa=%d\n", $ave,$hensa; ($ave, $hensa) = toukei(@cost_result); printf "dol_cost cost ave=%d,hensa=%d\n", $ave,$hensa; @sum_result = (); @cost_result = (); for my $i (1.. 1000){ my ($total, $total_cost) = calc(17,10000,$teikiyokin); push @sum_result, $total; push @cost_result, $total_cost; } ($ave, $hensa) = toukei(@sum_result); printf "teikiyokin ave=%d,hensa=%d\n", $ave,$hensa; ($ave, $hensa) = toukei(@cost_result); printf "dol_cost cost ave=%d,hensa=%d\n", $ave,$hensa;
dol_cost ave=1952110,hensa=375455 dol_cost cost ave=171348,hensa=2678 teikiyokin ave=2040000,hensa=0 dol_cost cost ave=0,hensa=0
基準価格が1万円から2万円のランダムの値を取るとして、1月1万円、17年間
ドルコストで投資したものと。毎月1万円ゼロ金利の定期預金に預けた場合を比較。
信託報酬を1%という甘目のシュミレーションしてみましたが、驚愕の結果。
平均値で、すでに定期預金金利0に負けている。標準偏差を
考えると50%以上の確率で195万より少ないすなわちゼロ金利の定期預金より損をするということで。
絶対もうかるのは信託報酬をもらう金融機関ということに。17万円の儲け。
信託報酬を2%にしたら・・・
もう勘弁してください。平均で20万円の損。つまり50%以上の確率で20万円損する。
$ perl test.pl dol_cost ave=1800125,hensa=346821 dol_cost cost ave=324726,hensa=5043 teikiyokin ave=2040000,hensa=0 dol_cost cost ave=0,hensa=0