FC2ブログ

# 最安値
# 引数 期間 値 ($Period, $Price)
# 戻り値 最安値 (@lowest)
sub LOWEST{
my ($Period, $Price) = @_;
my @lowest = ();
my $count = @$Price - $Period;

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

# 計算
for(my $i = $count; $i >= 0; $i--){
my $tmp = $$Price[$i];

for(my $j = 1; $j < $Period; $j++){
if($tmp > $$Price[$i + $j]){
$tmp = $$Price[$i + $j];
}
}

# 最安値
$lowest[$i] = $tmp;
}

return @lowest;
}

追記 3/4

# 最安値
# 引数 期間 値 ($Period, $Price)
# 戻り値 最安値 (@lowest)
sub LOWEST{
my ($Period, $Price) = @_;
my @lowest = ();
my $count = @$Price - $Period;

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

# 計算
# [0] 値 [1] 位置の確認
my @pl = ($$Price[$count], $Period);
for(my $i = $count; $i >= 0; $i--){
# TRUE 期間内 FALSE 期間外
if($pl[1] < $Period){
# TRUE 最安値更新 FALSE 未更新
if($pl[0] >= $$Price[$i]){
$pl[0] = $$Price[$i];
$pl[1] = 1;
}else {
$pl[1] = $pl[1] + 1;
}
}else {
@pl = ($$Price[$i], 1);
for(my $j = 1; $j < $Period; $j++){
if($pl[0] > $$Price[$i + $j]){
$pl[0] = $$Price[$i + $j];
$pl[1] = $j + 1;
}
}
}

# 最安値
$lowest[$i] = $pl[0];
}

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

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

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

検索フォーム


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