ソースコード
MQL5 CopyBuffer: インジケーターハンドルと確定足シグナル
MQL5 では、インジケーターハンドルはインジケーター計算を識別します。 CopyBuffer はその値を取得します。これら 2 つのステップを分離しておくと、インジケーターベースの EA ロジックが読みやすく、テストしやすくなります。
ハンドルを作成して検証する
一般的な EA は、初期化中にインジケーターハンドルを作成し、INVALID_HANDLE をチェックします。ハンドルを使用してインジケーターの設定と時間枠を記録します。受信ティックごとに同じインジケーターを再作成すると、不必要な作業が追加され、エラー処理に従うのが難しくなります。
値が利用可能であることを確認する
BarsCalculated は、計算されたインジケーター データの量を報告します。 CopyBuffer は、コピーされた要素の数またはエラー結果を返します。宛先の値を使用する前に、要求されたカウントが実際に返されたことを確認してください。準備ができていないバッファが黙って取引シグナルになるべきではありません。
価格キャンドルを慎重に選択する
CopyBuffer 取引ポジションベースのリクエストの場合、取引開始ポジション 0 は現在の価格のローソク足を指します。確定足ルールでは通常、取引ポジション 1 が要求されます。 1 要素の宛先の場合、この区別は簡単です。複数の要素を使用する場合は、配列の順序も確認します。コピーされたバッファがプログラム内の別の配列と同じインデックス付け規則を持つと想定しないでください。
小さな診断ケースを作成する
- 1 つのインジケーターと 1 つの既知の時間枠を使用します。
- 価格のローソク足の時間と選択された値を制御された頻度で記録します。
- 端子インジケータの表示と値を比較してください。
- 履歴をまだ読み込んでいる状態で起動をテストし、その後は通常の価格キャンドルを実行します。
MQLume で自分のものにしましょう
MQLume は、ソースの読み取りを実践的な学習パスに変えます。探検するMy AI Gold MT5、次に、別の作業コピーを使用して、理解したインジケーターのロジックを研究し、改良します。