FC2ブログ

# Spencer's 15 Point Moving Average
# 引数 値 ($Price)
# 戻り値 Spencer's15PointMovingAverage (@s15pma)
sub S15PMA{
my ($Price) = @_;
my @s15pma = ();
my @weight = (-3,-6,-5,3,21,46,67,74);
my $count = @$Price - 15;

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

# 計算
for(my $i = $count; $i >= 0; $i--){
my $avg = 0;
for(my $j = 0; $j <= 6; $j++){
$avg += $$Price[$i + $j] * ($weight[$j] / 320);
$avg += $$Price[$i + (14 - $j)] * ($weight[$j] / 320);
}
$avg += $$Price[$i + 7] * ($weight[7] / 320);


# Spencer's 15 Point Moving Average
$s15pma[$i] = $avg;
}

return @s15pma;
}



# Spencer's 21 Point Moving Average
# 引数 値 ($Price)
# 戻り値 Spencer's21PointMovingAverage (@s21pma)
sub S21PMA{
my ($Price) = @_;
my @s21pma = ();
my @weight = (-1,-3,-5,-5,-2,6,18,33,47,57,60);
my $count = @$Price - 21;

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

# 計算
for(my $i = $count; $i >= 0; $i--){
my $avg = 0;
for(my $j = 0; $j <= 9; $j++){
$avg += $$Price[$i + $j] * ($weight[$j] / 350);
$avg += $$Price[$i + (20 - $j)] * ($weight[$j] / 350);
}
$avg += $$Price[$i + 10] * ($weight[10] / 350);


# Spencer's 21 Point Moving Average
$s21pma[$i] = $avg;
}

return @s21pma;
}
オンライン コンパイラ/インタプリタ
テクニカル分析
プロフィール

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

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

検索フォーム


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