読者です 読者をやめる 読者になる 読者になる

FXボーグ | テクニカル実験室

テクニカル分析を使った自動売買プログラムの開発に挑戦!

スポンサーリンク

Jurik's RSX を平易なコードで書いてみました。

Jurik氏の RSX を理解するために平易なコードで書いてみました。
ここで使用されている「スムージング・フィルタ」は何にでも使えそうな感じです。

f:id:fxborg:20160403233541p:plain

中段が標準のRSI(10期間)で、下段がRSX(10期間、スムーズ15)です。

すでに完成されたインジケーターがあるので自分が書き直すまでもないのですが、やはり他人のソースは理解しずらいのでなるべく平易に書いてみようと思います。

Jurik氏のスムージング・フィルター

RSXはRSIをスムージングしたものです。
ここで使われているフィルターはどうやらTEMAと似た構造になっているようです。
・・・理屈は抜きにして主要な部分を比較してみましょう。

TEMA

double alpha = 2.0 / (1.0 + Period);

EMA1[i] =EMA1[i-1]+alpha *(DATA[i] - EMA1[i-1]);
EMA2[i] =EMA2[i-1]+alpha *(EMA1[i] - EMA2[i-1]);
EMA3[i] =EMA3[i-1]+alpha *(EMA2[i] - EMA3[i-1]);
TEMA[i]=3.0 * EMA1[i] - 3.0 *EMA2[i]+ EMA3[i];

 Jurik's Smoothing Filter

double KG = 3 / (Period + 2.0);
double HG = 1.0 - KG;
double AB = 0.5;
double AC = 1.5;

FILT1[i]=HG * FILT1[i-1] + KG * DATA[i];
FILT2[i]=KG * FILT1[i] + HG * FILT2[i-1];
FILT3[i]=AC * FILT1[i]  - AB  * FILT2[i];

・・・同様のプロセスをあと2回繰り返す。

 

 DATA[ i ] が入力する元のデータです。

2つのコードを見比べてみるとパラメータの違いはあるものの、計算方法はよく似ていることが分かります。
またTEMAが3回平滑化をするところを6回(2×3)行っているようです。

最後に

計算も簡単でスムージング結果も良好なので積極的に使っていこうと思います。

こちらからどうぞ

/Indicators/Jurik_RSX_v1_00.mq5