無料でロボットをダウンロードする方法を見る
Telegram上で私たちを見つけてください。
私たちのファンページに参加してください
私たちのファンページに参加してください
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
Smoothed ADX by John Ehlers - MetaTrader 4のためのインディケータ
- ビュー:
- 2561
- 評価:
- パブリッシュ済み:
- 2015.11.24 09:58
- このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
スムージングADXは、フォーラム投稿者によってコーディングされたもので、特別難しいものではありません。しかし、ADXのスムージングアルゴリズムに関する記述はどこにもありませんでした。そのため、提供されたコードのみの掲載となります:
Inputs: {declaring inputs}
Length( 14 ),
ADXTrend( 25 ), alpha1(0.25), alpha2(0.33);
variables: {declaring variables}
DMIPlus( 0 ), DMIMinus( 0 ), DMI( 0 ), ADX( 0 ),
DIPlusLead(0), DIMinusLead(0), DIPlusFinal(0), DIMinusFinal(0),
ADXLead(0), ADXFinal(0);
DMIPlus( 0 ), DMIMinus( 0 ), DMI( 0 ), ADX( 0 ),
DIPlusLead(0), DIMinusLead(0), DIPlusFinal(0), DIMinusFinal(0),
ADXLead(0), ADXFinal(0);
{もともとあるADX関数を呼び出します。計算する必要はありません。}
Value1 = DirMovement( H, L, C, Length, DMIPlus, DMIMinus, ADX);
{この箇所が、元のADXのスムージングです。 DI+、 DI-、 ADX ラインがスムージングされます。}
DIPlusLead = 2*DMIPlus + (alpha1 - 2) * DMIPlus[1] + (1 - alpha1) * DIPlusLead[1];
DIPlusFinal = alpha2*DIPlusLead + (1 - alpha2) * DIPlusFinal[1];
DIPlusFinal = alpha2*DIPlusLead + (1 - alpha2) * DIPlusFinal[1];
DIMinusLead = 2*DMIMinus + (alpha1 - 2) * DMIMinus[1] + (1 - alpha1) * DIMinusLead[1];
DIMinusFinal = alpha2*DIMinusLead + (1 - alpha2) * DIMinusFinal[1];
DIMinusFinal = alpha2*DIMinusLead + (1 - alpha2) * DIMinusFinal[1];
ADXLead = 2*ADX + (alpha1 - 2) * ADX[1] + (1 - alpha1) * ADXLead[1];
ADXFinal = alpha2*ADXLead + (1 - alpha2) * ADXFinal[1];
ADXFinal = alpha2*ADXLead + (1 - alpha2) * ADXFinal[1];
{チャート上にプロットします}
Plot1( DIPlusFinal, "DMI+" ) ;
Plot2( DIMinusFinal, "DMI-" ) ;
Plot3( ADXFinal, "ADX" ) ;
Plot3( ADXFinal, "ADX" ) ;
ADXのスムージングを深く理解するのが面倒な場合、このスムージングは2つのステップに分けられます。連続した数Pがあり、それを最小のラグでスムージングするとします。このために、初めのステップとして、下記公式でPの連続関数V(P) を作ります:
V0 = (8*P0 - 7*P1 + 3*V1) / 4,
ただし:
- P0 は、連続数の現在値(インジケーターの値);
- P1 は、連続数のすぐ前の値;
- V1 は、オシレーターのすぐ前の値;
- V0 は、オシレーターの現在値
もしくは、他の方法:
V0 = (Vol(P) + 3*V1) / 4,
ただし:
Vol(P) = 8*P0 - 7P1 - Ehlers' burst (ここでのみ定義される単語).
2番目のステップとして、単純加重平均をします:
W0 = (1*V0 + 2*W1) / (2 + 1).
ただし:
- W0 は、連続数Pの現在の平滑化された値;
- V0 は、P連続オシレータの現在値;
- W1 は、ひとつ前の平滑化された値
MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/7072
Center of Gravity by J. F. Ehlers
センターオブグラビティは、John F. Ehlers氏によって開発され、Stocks & Commodities magazine (May 2002)で公開されたオシレーターです。
Spearman's Rank Correlationスピアマンの順位相関係数は、統計的に相関を調べる処理をするときの非パラメトリックメソッドです。今回の場合、2つ数値列の並行度合いが検出されます。