FC2ブログ
最初
http://blog-imgs-36.fc2.com/a/m/a/amamiyaprog/QualitativeQuantitativeEstimation1.txt


# クオンティテイティブ・クオリテイティブ・エスティメイション Qualitative Quantitative Estimation
# 引数 期間 期間 因子 値 ($Period, $SmoothFactor, $Factor, \@Price)
# 戻り値 QQE (@QualitativeQuantitativeEstimation)
sub QQE{
my ($Period, $SmoothFactor, $Factor, $Price) = @_;
my @QualitativeQuantitativeEstimation = ();
my @Rsi = ();
my @RsiSF = ();
my @RsiAbs = ();
my @RsiAbsEma = ();
my $QQE = 0;
my $PrevQQE = 0;
my $Period2 = (2 * $Period) - 1;
my $Loop = @$Price - (($Period + $SmoothFactor) + 1);
my $count = @$Price - ($Period + ($Period2 * 2) + $SmoothFactor + 1);

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

# 計算
@Rsi = &RSI($Period, $Price);
@RsiSF = &EMA($SmoothFactor, \@Rsi);
$RsiAbs[$Loop] = abs($RsiSF[$Loop] - $RsiSF[$Loop + 1]) while($Loop-- >= 0);
@RsiAbsEma = &EMA($Period2, \@RsiAbs);
@RsiAbsEma = &EMA($Period2, \@RsiAbsEma);

for(my $i = $count; $i >= 0; $i--){
$QQE = 0;

if($RsiSF[$i] < $PrevQQE){
if(($RsiSF[$i + 1] < $PrevQQE) && ($PrevQQE < ($RsiSF[$i] + ($RsiAbsEma[$i] * $Factor)))){
$QQE = $PrevQQE;
}else {
$QQE = $RsiSF[$i] + ($RsiAbsEma[$i] * $Factor);
}
}else {
if(($PrevQQE < $RsiSF[$i + 1]) && (($RsiSF[$i] - ($RsiAbsEma[$i] * $Factor)) < $PrevQQE)){
$QQE = $PrevQQE;
}else {
$QQE = $RsiSF[$i] - ($RsiAbsEma[$i] * $Factor);
}
}

# クオンティテイティブ・クオリテイティブ・エスティメイション Qualitative Quantitative Estimation
$QualitativeQuantitativeEstimation[$i] = $QQE;

# 一つ前
$PrevQQE = $QQE
}

return @QualitativeQuantitativeEstimation;
}


参考URL
perlでテクニカル分析 63 相対力指数 (Relative Strength Index: RSI)
perlでテクニカル分析 2 指数平滑移動平均 (Exponential Moving Average: EMA)

一言
RSIの算出方法が違うようで、MT4のQQEと値が違う
それともバグ?

修正1
まだ値が違う
オンライン コンパイラ/インタプリタ
テクニカル分析
プロフィール

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

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

検索フォーム


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