FC2ブログ

# Variable Length Dynamic Momentum Index
# 引数 期間 値 ($Period, \@Price)
# 戻り値 VariableLengthDynamicMomentumIndex (@vldmi)
sub VLDMI{
my ($Period, $Price) = @_;
my @vldmi = ();
my $stdavg = ();
my $count = @$Price - ($Period + 1);

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

# 計算
my @stddev = &STDDEV(5, $Price);
for(my $i = $count; $i >= 0; $i--){
# 標準偏差の平均
my $stdavg = 0;
for(my $j = 0; $j < 10; $j++){
$stdavg += $stddev[$i + $j];
}
$stdavg = $stdavg / 10;

# RSI
my $vl = $Period / ($stddev[$i] / $stdavg);
my $up = 0;
my $down = 0;
# 四捨五入
$vl = int($vl + 0.5);
for(my $j = 0; $j < $vl; $j++){
my $diff = $$Price[$i + $j] - $$Price[$i + ($j + 1)];
# UP
if($diff > 0){
$up += $diff;
}else {
# down
if($diff < 0){
$down += -$diff;
}
}
}

# Variable Length Dynamic Momentum Index
$vldmi[$i] = ($up / ($up + $down)) * 100;
}

return @vldmi;
}


参考URL
perlでテクニカル分析 20 標準偏差 (Standard Deviation: STDDEV)
perlでテクニカル分析 63 相対力指数 (Relative Strength Index: RSI)
オンライン コンパイラ/インタプリタ
テクニカル分析
プロフィール

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

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

検索フォーム


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