FC2ブログ

# 指数平滑移動平均
# 引数 期間 値 ($Period, $Price)
# 戻り値 指数平滑移動平均値 (@ema)
sub EMA{
my ($Period, $Price) = @_;
my @ema = ();
my $a = 2 / ($Period + 1);
my $count = @$Price - $Period ;

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

# 初回はSMAを使用
for(my $i = 0; $i < $Period; $i++){
$ema[$count] += $$Price[$count + $i];
}
$ema[$count] = $ema[$count] / $Period;

# 計算
for(my $i = $count - 1; $i >= 0; $i--){
# 指数移動平均
$ema[$i] = $ema[$i + 1] +(($$Price[$i] - $ema[$i + 1]) * $a);
# または
#$ema[$i] = ($a * $ema[$i]) + ((1 - $a) * $ema[$i + 1]);
}

return @ema;
}


参考URL
移動平均 - Wikipedia
オンライン コンパイラ/インタプリタ
テクニカル分析
プロフィール

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

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

検索フォーム


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