例shift
の関数の両方のパラメーターの違いは何ですか? ドキュメントによると:iMA
MQL4
ma_shift
- 移動平均シフト。インディケータのライン オフセットは、時間枠ごとのチャートに関連しています。
shift
- 指標バッファから取得した値のインデックス (指定された期間前の現在のバーに対するシフト)
標準の MA インジケーターはどのパラメーターを使用しますか?
例shift
の関数の両方のパラメーターの違いは何ですか? ドキュメントによると:iMA
MQL4
ma_shift
- 移動平均シフト。インディケータのライン オフセットは、時間枠ごとのチャートに関連しています。
shift
- 指標バッファから取得した値のインデックス (指定された期間前の現在のバーに対するシフト)
標準の MA インジケーターはどのパラメーターを使用しますか?
double iMA(string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift)
パッケージ化された標準インジケーター「移動平均」の場合、「Shift」フィールドは「ma_shift」パラメーターを修正します。
パッケージ化されたカスタム指標「移動平均」の場合、「MA_Shift」フィールドは「ma_shift」パラメータを修正します。
どちらのインジケーターでも、最後の「シフト」パラメーターを修正することはできません。
グラフィカルに、標準インディケータ「移動平均」の場合、「シフト」フィールドを変更すると、整数値で定義された期間数だけ移動平均線が右 (+ve の数値) および左 (-ve の数値) にシフトします。
ma_shift = 0:
ma_shift = 4:
ma_shift = -4:
コード的には、iMA() をポーリングし、ma_shift を 4 に設定する場合、たとえば
double iMA("EURUSD", PERIOD_H1, 8, 4, MODE_SMA, PRICE_CLOSE, 0)
4 周期前の移動平均値が得られます。
これは、iMA() 値を示す単純なテキスト インジケーターであり、期間、ma_shift、およびシフト パラメーターを編集できます。それを試して、「移動平均」インジケーターに対して検証します (データ ウィンドウを表示します)。
#property indicator_chart_window
extern int period = 8;
extern int ma_shift = 0;
extern int shift = 0;
void start(){
string A1=StringConcatenate("Stat: ", DoubleToStr(MA(),5));
Comment(A1);
return (0);
}
double MA(){
return(iMA(NULL, 0, period, ma_shift, 0, 0, shift));
}
iMA() 関数の最後の 'shift' パラメータは、計算に使用される期間をシフトし、+ve 数値のみにすることができます。-ve 番号は、将来の存在しない期間を要求します。上のテキスト インジケータに -ve 番号を入力して、何が得られるかを確認できます。(0.00000) 上記のように、インジケーターは事実上同じであるため、このパラメーターを編集することはできません。
double iMA("EURUSD", PERIOD_H1, 8, 4, MODE_SMA, PRICE_CLOSE, 0)
と同じ
double iMA("EURUSD", PERIOD_H1, 8, 0, MODE_SMA, PRICE_CLOSE, 4)
では、なぜそこにあるのでしょうか。他のインジケーターとの標準化として最も可能性が高いです。たとえば、http: //docs.mql4.com/indicators/iAlligator では、「シフト」パラメーターがどの期間から計算するかを決定する包括的な決定要因であり、個別のあご_シフト、歯のシフト、唇のシフトが独立しています。描画された線をグラフィカルにシフトするパラメーター。
「ma_shift
」は、表示される「線」のグラフィカルなシフトです。これは、配列値の表示にのみ関連します。コーディングにはあまり関係ありませんEA
。
「shift
」は計算に取り入れた要素の値です。デフォルトでは、シフトの値はゼロ (ゼロ バー (最後のバー)) です。のバーのシフトはMQL4
、最後のバーから逆方向です。
例:
2 つを比較しSMA
ます。1 つは 20 ピリオド/0 シフト、もう 1 つは 10 ピリオド/4 シフトです。s間のすべての比較は、配列の最後のバーSMA
の 20 期間と配列の4 期間前の 10 期間の間で行われます。
数字で言えば...最後のバーの 20 が であるとしましょう。
10が次のようであるとしましょう: 0 バー (最後のバー) 1 バー (前のバー) 2 バー (2 バー戻る) 3 バー (3 バー戻る)SMA
SMA
SMA
1.1000
SMA
1.1050
1.1000
1.0950
1.0900
結果:である=> いいえ
で
ある=> はい20SMA( shift0 ) > 10SMA( shift0 )
20SMA( shift0 ) > 10SMA( shift3 )
要約すれば。これMA_shift
は、行の前後へのシフトです。これshift
はバー値の後方へのシフトです (0/最後のバーから)。
つまり、4 シフトはMA
4 バー前の値を表します。このオプションは、アルゴリズム構築の目的で、コーディングでのみ使用できます。コンピュータが交差を計算するとき、線自体ではなく配列の値を使用するため、 は sとma_shift
は無関係です。EA
MA
頑張ってください!