FC2ブログ

# ベータ値 Beta
# 引数 期間 値 市場指数 ($Period, \@Price, \@Index)
# 戻り値 ベータ値 (@beta)
sub BETA{
my ($Period, $Price, $Index) = @_;
my @beta = ();
my $count = @$Price - ($Period + 1);

# 期間と配列数の確認
if(($Period <= 0) || ($count < 0) || (@$Price != @$Index)){
return 0;
}

# 計算
for(my $i = $count; $i >= 0; $i--){
# 平均
my $avg1 = 0;
my $avg2 = 0;
my %rate = ();
for(my $j = 0; $j < $Period; $j++){
$rate{'Price'}->[$j] = (($$Price[$i + $j] - $$Price[$i + ($j + 1)]) / $$Price[$i + ($j + 1)]) * 100;
$rate{'Index'}->[$j] = (($$Index[$i + $j] - $$Index[$i + ($j + 1)]) / $$Index[$i + ($j + 1)]) * 100;

$avg1 += $rate{'Price'}->[$j];
$avg2 += $rate{'Index'}->[$j];
}
$avg1 = $avg1 / $Period;
$avg2 = $avg2 / $Period;

# 分散と共分散
my $variance = 0;
my $covariance = 0;
for(my $j = 0; $j < $Period; $j++){
my $tmp1 = ($rate{'Price'}->[$j] - $avg1);
my $tmp2 = ($rate{'Index'}->[$j] - $avg2);

$variance += $tmp2 * $tmp2;
$covariance += $tmp1 * $tmp2;
}
$variance = $variance / $Period;
$covariance = $covariance / $Period;

# ベータ値 Beta
$beta[$i] = $covariance / $variance;
}

return @beta;
}


参考URL
野村アセットマネジメント | 用語集 ベータ値
東証:用語集 β値
Beta (finance) - Wikipedia, the free encyclopedia
オンライン コンパイラ/インタプリタ
テクニカル分析
プロフィール

Author:雨宮
Firefoxを使用しているので気づかなかったけど、IE6でソースコードを上手くコピーできない

5/3
携帯用ならIE6でもソースコードをコピーできる
携帯用

検索フォーム


あわせて読みたいブログパーツ
一寸先は闇 RSS