技術講座

MQL5インジケーター開発・EA連携完全ガイド|iCustom・CopyBuffer・OnCalculate・SetIndexBufferの基本

EAファンクラブ

MQL5でインジケーターを開発したり、既存のサインインジケーターをEAから読み取ったりする場合、OnCalculate、SetIndexBuffer、iCustom、CopyBuffer、インジケーターバッファ、shift、確定足、リペイント確認などを整理しておく必要があります。

インジケーターは、チャート上にライン、矢印、ヒストグラム、サブウィンドウ表示などを出すためのものです。一方でEAは、条件判定、注文、決済、通知、記録などを担当します。サインインジをEA化する場合は、表示されている矢印をそのまま注文条件にするのではなく、どのバッファにどの値が出ているのか、確定足で読むのか、リアルタイム足で読むのかを分けて確認する必要があります。

この記事では、MQL5インジケーターを作る側と、EAからインジケーターを読む側を分けずに、次の流れで整理します。

  • インジケーターを作る
  • バッファへ値を出す
  • EA側でiCustomとCopyBufferを使って読む
  • サインEA化、通知化、集計化へつなげる

このページは、MT5 / MQL5の技術学習記事です。投資判断、売買タイミング、利益保証、勝率保証、推奨ロット、推奨銘柄、特定ブローカー誘導を目的とした内容ではありません。

MQL5インジケーターとEA連携をまとめて学ぶ理由

MQL5インジケーター開発とEA連携は、別々に考えられがちです。

しかし、実務上はインジケーターを作るだけで終わるケースよりも、次のような相談につながることが多くあります。

  • サインインジの矢印をEAで読みたい
  • 既存インジケーターをMT5 EAから参照したい
  • 通知対応インジケーターにしたい
  • インジケーターの値をGoogle SheetsやCSVへ記録したい
  • MT4インジケーターをMQL5へ作り直したい
  • インジケーターのリペイント有無を確認したい

このような場合、チャート上に表示されている見た目だけでは不十分です。

EAから読むためには、インジケーター側がどのバッファへ値を出しているのか、バッファ番号は何番なのか、未確定足で値が変わるのか、CopyBufferで取得できる値が何を意味するのかを確認する必要があります。

確認対象インジケーター側EA側
値の出力SetIndexBufferでバッファへ値を入れるCopyBufferでバッファ値を取得する
カスタムインジの呼び出しmq5 / ex5として配置するiCustomでハンドルを作成する
サイン表示矢印、ライン、ヒストグラムなどで表示する表示ではなくバッファ値を読む
確定足判定OnCalculate内で計算するshift 1以降を読むか確認する
リペイント確認過去足の値が変わるか確認するEA化前に再現ログで確認する

EAとインジケーターの役割の違い

EAとインジケーターは、どちらもMQL5で作成できますが、役割が異なります。

インジケーターは、主に計算結果をチャート上へ表示したり、バッファとして値を出したりするために使います。EAは、価格更新やタイマーなどをきっかけに、条件判定、注文、決済、通知、記録などを行います。

項目インジケーターEA
主な役割チャート表示、ライン、矢印、サブウィンドウ、バッファ出力判定、注文、決済、通知、記録、外部連携
主なイベント関数OnInit、OnCalculate、OnDeinitOnInit、OnTick、OnTimer、OnDeinit
注文処理通常は行わないOrderSendやCTradeなどで行う
表示主目的になりやすい補助表示として使うことが多い
EA連携バッファ値を出す側iCustom / CopyBufferで読む側

サインインジをEA化する時は、インジケーターの表示とEAの注文処理を混同しないことが重要です。

チャートにBUY矢印が表示されることと、EAがBUY注文を出すことは別の処理です。EA化では、signal、execution、risk、exit、notificationを分けて確認します。

カスタムインジケーターの基本構造

MQL5のカスタムインジケーターは、主に次の要素で構成されます。

  • インジケーターのプロパティ
  • inputパラメータ
  • インジケーターバッファ
  • OnInitによる初期化
  • OnCalculateによる計算
  • OnDeinitによる終了処理

インジケーターがEAから読まれることを前提にする場合、チャート上の見た目だけでなく、バッファ設計が重要になります。

構成要素役割確認ポイント
プロパティ表示場所、バッファ数、描画形式などを定義するメインチャートかサブウィンドウか、表示バッファ数
input期間、閾値、表示ON/OFFなどを設定するEAからiCustomで渡す順番と型
バッファ計算値、サイン値、ライン値を格納するBUY / SELL / 補助値を分けるか
OnInit初期化、バッファ関連付け、描画設定SetIndexBuffer、PlotIndexSet系の設定
OnCalculateローソク足ごとの計算計算範囲、確定足、再計算、リペイント
OnDeinit終了時の処理不要なオブジェクトやハンドル管理

OnCalculateの役割

OnCalculateは、MQL5インジケーターの計算処理を担当するイベント関数です。

EAのOnTickが価格更新時の処理を担当するのに対し、インジケーターのOnCalculateは、チャートのデータに基づいてバッファへ値を入れる処理を行います。

OnCalculateでは、どのバーから再計算するか、未確定足を計算対象にするか、過去足の値を変更するかを設計します。

確認項目内容EA連携時の注意
rates_total利用可能なバー数必要本数に足りない場合は値を出さない設計にする
prev_calculated前回計算済みのバー数再計算範囲とリペイント確認に関係する
time各バーの時刻新バー判定や確定足確認に使うことがある
open / high / low / closeローソク足の価格データどの価格を条件に使うかを明確にする
tick_volume / volume出来高関連データブローカーや銘柄で意味が異なる場合がある
spreadスプレッド情報表示や補助確認には使えるが売買判断とは分ける

OnCalculateとOnTickの違い

OnCalculateはインジケーターの計算、OnTickはEAの価格更新処理で使います。

サインインジをEA化する時に注意したいのは、OnCalculateで表示されたサインを、EA側でどのタイミングで読むかです。未確定足のサインを読むのか、確定足のサインを読むのかで、EAの挙動は変わります。

特にサインが足の途中で出たり消えたりするインジケーターでは、EAがshift 0を読むと、バックテストとリアルタイムで見え方が変わる可能性があります。

SetIndexBufferの役割

SetIndexBufferは、インジケーターの配列をインジケーターバッファとして登録するために使います。

バッファは、チャートへ表示する値だけでなく、EAからCopyBufferで取得する値としても重要です。

バッファ用途EA連携時の確認
ライン表示移動平均、基準線、上下バンドどのバッファ番号がどのラインか確認する
矢印サインBUY矢印、SELL矢印BUY用とSELL用を分けているか確認する
ヒストグラム強弱、差分、状態表示正負の意味、0の意味、EMPTY_VALUEを確認する
計算補助表示しない内部値EAから読む前提か、内部専用かを確認する
状態値1=BUY、-1=SELL、0=なし値の意味を仕様として明文化する

バッファ番号を固定して管理する

EAからインジケーターを読む場合、バッファ番号の管理が重要です。

例えば、BUYサインがバッファ0、SELLサインがバッファ1、ライン値がバッファ2という設計の場合、EA側でも同じ番号でCopyBufferを呼び出す必要があります。

バッファ番号が変わると、EA側がBUYとSELLを逆に読む、サインがないのにあると判断する、ライン値をサイン値として扱うなどの不具合につながります。

PlotIndexSet系と描画設定の考え方

MQL5インジケーターでは、バッファへ値を入れるだけではなく、どのように表示するかを設定する必要があります。

PlotIndexSetInteger、PlotIndexSetDouble、PlotIndexSetStringなどの設定は、線の種類、矢印コード、表示名、空値などに関係します。

設定対象確認することEA連携への影響
描画タイプライン、矢印、ヒストグラムなど見た目とバッファ値を混同しない
空値EMPTY_VALUEを使うか、0を使うかEA側のサイン有無判定に影響する
矢印コードBUY / SELLで見た目を分ける矢印形状ではなくバッファ値を読む
表示名データウィンドウでの名称検証時にどの値か確認しやすくなる
線幅・色視認性の調整EA判定には直接使わない

メインチャート表示とサブウィンドウ表示

インジケーターは、メインチャート上に表示するものと、サブウィンドウへ表示するものがあります。

メインチャート表示は、価格と重ねてラインや矢印を表示したい場合に使われます。サブウィンドウ表示は、オシレーター、強弱、スコア、状態値などを別枠で表示したい場合に使われます。

表示場所向いている内容確認ポイント
メインチャート矢印、ライン、バンド、価格帯価格スケール、矢印位置、ローソク足との重なり
サブウィンドウオシレーター、強弱、スコア、状態値0ライン、閾値、表示範囲、サブウィンドウ番号
非表示バッファEA連携用の補助値EAから読む前提なら仕様書に明記する

EA連携では、メインチャート表示かサブウィンドウ表示かよりも、CopyBufferで取得するバッファ値が重要です。

矢印・ライン・ヒストグラム表示の基本

インジケーターの表示形式には、矢印、ライン、ヒストグラム、ドット、塗りつぶしなどがあります。

表示形式は読者や利用者の視認性に関係しますが、EAから読む場合は見た目ではなくバッファ値を確認します。

表示形式主な用途EA化時の注意
矢印BUY / SELLサイン矢印の有無をバッファ値で確認する
ライン移動平均、基準線、上下ラインライン値とサイン条件を分ける
ヒストグラム強弱、差分、状態正負、0、EMPTY_VALUEの意味を確認する
ドット条件成立位置の表示サインなのか補助表示なのか確認する
非表示値EA連携用の内部値仕様書にバッファ番号と値の意味を残す

インジケーターバッファとは何か

インジケーターバッファは、インジケーターの計算結果をバーごとに格納するための配列です。

ラインを表示する場合も、矢印を表示する場合も、EAから値を読む場合も、基本的にはバッファに入っている値が重要になります。

EA化の相談では、「チャートに矢印が出ています」だけでは不十分です。次のような情報が必要です。

  • BUYサインは何番のバッファか
  • SELLサインは何番のバッファか
  • サインなしの時はEMPTY_VALUEか0か
  • shift 0の値は変化するか
  • 過去足の値が後から変わるか
  • EAから読む前提のバッファがあるか

バッファ番号とshiftの考え方

CopyBufferでは、どのバッファ番号から、どの位置の値を、何本分取得するかを指定します。

この時に重要になるのが、バッファ番号とshiftです。

項目意味確認ポイント
バッファ番号どの出力値を読むかBUY、SELL、ライン、補助値の対応を確認する
shift 0現在形成中の足リアルタイムで値が変わる可能性がある
shift 11本前の確定足確定足判定でよく確認対象になる
取得本数何本分の値を取得するか戻り値が想定本数か確認する
EMPTY_VALUE値なしを表すことが多い0との違いをEA側で判定する

EAからインジケーターを読む場合は、shift 0を読むのか、shift 1を読むのかを仕様として固定してください。

「サインが出た瞬間に通知したい」のか、「確定足でサインが残った時だけ処理したい」のかで、読み方は変わります。

iCustomでカスタムインジを呼び出す考え方

iCustomは、EAや別のプログラムからカスタムインジケーターのハンドルを作成する時に使います。

iCustomで重要なのは、インジケーター名、配置場所、inputパラメータの順番と型です。

確認項目内容よくある問題
インジケーター名読み込むカスタムインジのファイル名ファイル名違い、フォルダ違い、ex5未生成
配置場所MQL5\Indicators配下の配置別フォルダ、サブフォルダ指定漏れ
input順序iCustomで渡すパラメータ順順番違いで意図しない設定になる
input型int、double、bool、string、enumなど型不一致で読み込み失敗や誤動作
ハンドル作成結果がINVALID_HANDLEでないか読み込み失敗を見逃す

iCustomで読み込めない場合は、EA側だけでなく、インジケーター側が正しくコンパイルされているか、Indicatorsフォルダへ配置されているか、必要なincludeや依存ファイルが揃っているかを確認してください。

CopyBufferで値を取得する考え方

CopyBufferは、インジケーターのバッファ値をEA側で取得する時に使います。

CopyBufferの戻り値は、実際に取得できたデータ数です。戻り値を確認せずに配列を参照すると、データ不足や取得失敗時に誤判定につながります。

確認項目内容EA側の確認
handleiCustomやiMAなどで作成したハンドルINVALID_HANDLEでないか確認する
buffer_num取得するバッファ番号BUY / SELL / ライン値の対応を確認する
start_pos取得開始位置shift 0かshift 1かを明確にする
count取得本数必要本数を取得できたか確認する
戻り値取得できたデータ数0以下なら処理を進めない

サインインジをEA化する場合は、CopyBufferで取得した値が、サインあり、サインなし、補助値、無効値のどれを意味するかを必ず整理してください。

IndicatorReleaseとハンドル管理

iCustomや標準インジケーター関数で作成したハンドルは、不要になったらIndicatorReleaseで解放する設計にします。

ハンドル管理が曖昧だと、時間足変更、チャート変更、EA再読み込み、長時間稼働時に不安定になることがあります。

場面確認すること注意点
OnInitハンドル作成結果INVALID_HANDLEならログを出す
OnTick / OnTimerCopyBufferの戻り値取得失敗時は判定を進めない
OnDeinitハンドル解放解放後の再利用を避ける
時間足変更再初期化時の作成・解放古いハンドル参照を残さない

確定足とリアルタイム足の違い

サインインジのEA化で特に重要なのが、確定足で読むのか、リアルタイム足で読むのかです。

shift 0は現在形成中の足であり、値が変わる可能性があります。shift 1は1本前の確定足です。

読み方特徴向いている確認
shift 0現在足。値が変わる可能性があるリアルタイム通知、点灯確認
shift 11本前の確定足確定足サイン、EA化、再現性確認
複数本確認過去数本の値を比較するリペイント確認、サイン継続確認

どちらが良いという話ではなく、目的に応じて決める必要があります。

通知インジであればshift 0の点灯を通知したい場合があります。一方、EA化して注文条件に使う場合は、確定足のサインを読む方が再現性を確認しやすい場合があります。

リペイント確認

リペイントとは、過去に表示されたサインやラインが後から変わることを指します。

すべての再計算が問題というわけではありませんが、EA化や検証では、過去足のサインが後から消える、移動する、別方向へ変わる場合に注意が必要です。

確認項目確認内容記録する情報
shift 0の変化現在足のサインが出たり消えたりするか発生時刻、銘柄、時間足
shift 1以降の変化確定足の値が後から変わるか変更前後のスクリーンショット
再起動後の変化MT5再起動や時間足変更で過去表示が変わるか再起動前後の状態
バックテストとの差リアルタイム表示とテスター表示に差があるかテスト条件、期間、ログ
EA取得値との差画面表示とCopyBuffer取得値が一致するかバッファ番号、shift、取得値

リペイントするインジケーターでも、用途によっては通知や確認補助として使える場合があります。ただし、EA化する場合は、どの時点の値を採用するのかを明確にする必要があります。

サインインジをEA化する前に整理すること

サインインジをEA化する場合、まずは「サインが出る」ことではなく、「EAが機械的に読める値があるか」を確認します。

確認項目内容資料として必要なもの
対象インジケーターファイル名、バージョン、mq5 / ex5の有無対象ファイル
BUYサインどのバッファに出るかバッファ番号、値の例
SELLサインどのバッファに出るかバッファ番号、値の例
サインなしEMPTY_VALUEか0か取得ログ
確定タイミングshift 0かshift 1か仕様メモ、スクリーンショット
リペイント過去足の値が変わるか前後比較、ログ
EAの動作範囲通知だけか、注文まで行うか要件メモ

EA化では、signalとexecutionを分けて考えます。

インジケーターのサインを読む部分がsignalです。注文を出す部分はexecutionです。さらに、ロット、スプレッド、時間帯、最大ポジション数、損切り、決済条件、通知条件は別責務として整理します。

通知対応インジ・集計インジへの応用

インジケーターの値は、EA化だけでなく、通知や集計にも使えます。

例えば、サインが出た時にDiscordへ通知する、一定期間のサイン回数を集計する、CSVへ記録する、Google Sheetsへ送信するなどの応用があります。

応用例関係する処理確認ポイント
通知対応インジサイン検出、通知条件、通知抑制同一足で何度も通知しないか
Discord通知WebRequest、Webhook、payloadWebhook URLを共有しない
Google Sheets連携WebRequest、GAS URL、書き込み形式GAS URLやAPIキーを共有しない
CSV記録FileOpen、FileWrite、FileClose保存先、文字コード、列順
サイン集計履歴バー、バッファ値、時刻重複カウントやリペイントを確認する

通知や外部連携を行う場合でも、通知成功と売買成功を混同しないでください。通知はnotification層であり、EAの注文処理とは別責務です。

外部連携の基本は、MT5外部連携・通知セキュリティガイドも参考にしてください。

よくあるエラーと確認ポイント

MQL5インジケーター開発やEA連携では、iCustomで読み込めない、CopyBufferで値が取れない、バッファ番号が違う、サインがEAで読めないなどの問題が出ることがあります。

症状原因候補最初に確認すること
iCustomで読み込めないファイル名違い、配置違い、コンパイル未完了Indicatorsフォルダ、ex5生成、ファイル名
INVALID_HANDLEになるインジ作成失敗、パラメータ不一致input順序、型、GetLastError
CopyBufferが0以下を返すデータ不足、handle不正、バッファ番号違い戻り値、BarsCalculated、バッファ番号
BUYとSELLが逆に見えるバッファ番号の取り違えBUY / SELLバッファ仕様
サインがEAで出ないshift違い、EMPTY_VALUE判定ミスshift 0 / 1、値なし表現
バックテストと表示が違うリペイント、未確定足、履歴不足確定足、再計算範囲、テスト条件
通知が連続する同一足重複通知の抑制不足last alert bar、通知間隔

エラーコードやリターンコードの整理は、MQL5エラーコード辞典も確認してください。

EA利用者向けの確認ポイント

EA利用者がサインインジEA化や通知化を相談する場合、ソースコードの詳細を理解していなくても、必要な情報を整理できます。

  • どのインジケーターを使いたいか
  • BUYサインとSELLサインがどのように表示されるか
  • サインが出るタイミングは足の途中か、足確定後か
  • 過去のサインが後から変わるか
  • 通知だけしたいのか、EA注文まで行いたいのか
  • 対象銘柄と時間足
  • 使用しているsetファイル
  • ExpertsログとJournalログ

インジケーターのソースがない場合でも、ex5からEA連携できる可能性はあります。ただし、バッファ番号や値の意味が分からない場合、確認用EAやログ取得が必要になることがあります。

MQL5開発者向けの確認ポイント

MQL5開発者は、インジケーターをEAから読む前提で作る場合、表示用バッファとEA連携用バッファを分けることを検討してください。

設計項目確認ポイント理由
バッファ設計BUY、SELL、補助値を分けるEA側で誤読しにくくするため
EMPTY_VALUEサインなしの表現を固定するEA側の条件判定を安定させるため
確定足shift 0 / 1の意味を仕様化する再現性を確認しやすくするため
リペイント過去足更新の有無を説明するEA化時の誤解を防ぐため
ログ初期化、handle、CopyBuffer結果を確認できるようにする不具合調査をしやすくするため
表示と判定見た目とバッファ値を混同しない表示変更でEA判定が崩れないようにするため

検証担当者向けの確認ポイント

検証担当者は、チャート上の見た目だけでなく、EAが取得しているバッファ値を確認する必要があります。

  • サイン表示とCopyBuffer値が一致しているか
  • shift 0とshift 1で値の出方が違うか
  • 時間足変更後に値が変わるか
  • MT5再起動後に過去サインが変わるか
  • バックテストとリアルタイム表示に差があるか
  • 通知やEA注文が同一足で重複しないか
  • インジケーターのinputを変更した時にEA側も同じ設定になっているか

検証では、スクリーンショット、Expertsログ、Journalログ、setファイル、対象銘柄、時間足、発生時刻をセットで残してください。

開発依頼前に送る情報

MQL5インジケーター開発、EA連携、サインEA化、通知対応、集計対応を相談する場合は、次の情報を整理してください。

情報必要性注意点
対象インジケーター名対象ファイルの特定ファイル名と表示名が違う場合がある
mq5 / ex5の有無改修可否、EA連携可否の確認ソースがない場合は制約がある
バージョン差分確認古い版と混在しないようにする
対象銘柄・時間足再現条件MT5上の銘柄名をそのまま記録する
setファイル入力条件の再現個人情報や認証情報がないか確認する
サインのスクリーンショット見た目と発生条件の確認口座番号などを隠す
ExpertsログEA・インジ側の状態確認エラー前後を含める
JournalログMT5端末側の状態確認接続やテスター関連に有効
希望する動作通知だけかEA注文までかを判断signalとexecutionを分けて書く

開発依頼前の資料整理は、MT5開発依頼前に用意する資料まとめも参考にしてください。

送ってはいけない情報

インジケーターやEAの相談では、ログやスクリーンショットが重要です。ただし、次の情報はそのまま送らないでください。

  • 口座番号の全桁
  • 投資家パスワード
  • マスターパスワード
  • Webhook URLの実値
  • GAS URLの実値
  • APIキー
  • 認証トークン
  • 個人情報
  • 第三者の個人情報が入ったログ

問い合わせが必要な場合は、必要情報を整理したうえで、不具合報告・サポート依頼を確認してください。

MQL5インジケーター開発・EA連携チェック表

  • □ インジケーター名とバージョンを確認した
  • □ mq5ソースの有無を確認した
  • □ ex5ファイルの有無を確認した
  • □ BUYサインのバッファ番号を確認した
  • □ SELLサインのバッファ番号を確認した
  • □ サインなしの値がEMPTY_VALUEか0か確認した
  • □ shift 0とshift 1の違いを確認した
  • □ リペイントの有無を確認した
  • □ iCustomで読み込めるか確認した
  • □ CopyBufferの戻り値を確認した
  • □ 確定足で読むかリアルタイム足で読むか整理した
  • □ 通知だけかEA注文まで行うか整理した
  • □ Expertsログを保存した
  • □ Journalログを保存した
  • □ setファイルを保存した
  • □ 口座番号や認証情報をマスクした

次に読む技術講座

この講座とあわせて確認すると、MT5・MQL5開発、検証、不具合調査の流れを整理しやすくなります。

No講座確認できること
LEARN-006MQL5関数辞書関連関数の全体像を確認する
LEARN-010MQL5時系列データ・価格取得完全ガイド時系列データと価格取得を確認する
LEARN-019MQL5チャートオブジェクト・パネルUI完全ガイドパネルUI・Object表示を確認する
LEARN-020MQL5イベント処理完全ガイドOnCalculateとイベント処理の違いを確認する

次に確認するページ

技術講座を確認した後、導入・商品確認・開発相談・不具合報告へ進む場合は、以下のページも確認してください。

ページ確認できること
技術講座一覧MT5・MQL5・EA開発に関する技術講座を順番に確認できます。
導入ガイドEA、インジケーター、補助ツールを導入する前の確認事項を整理できます。
商品一覧EAファンクラブで扱う補助ツール、インジケーター、コピーEAなどを確認できます。
開発代行ページEA、インジケーター、補助ツールの新規作成・改修相談を確認できます。
不具合報告・サポート依頼ログ、スクリーンショット、再現手順を整理して相談する場合に確認できます。

よくある質問

OnCalculateとOnTickは何が違いますか?

OnCalculateはインジケーターの計算処理、OnTickはEAの価格更新処理で使います。インジケーターはOnCalculateでバッファへ値を出し、EAは必要に応じてiCustomとCopyBufferでその値を読みます。

CopyBufferで取得するshiftは何を意味しますか?

shiftは取得するバーの位置を意味します。shift 0は現在形成中の足、shift 1は1本前の確定足です。EA化では、どちらを読むかを仕様として明確にする必要があります。

サインインジはそのままEA化できますか?

場合によります。EAから読めるバッファがあり、BUY / SELLサインのバッファ番号や値の意味が確認できればEA化しやすくなります。ただし、表示だけでバッファ仕様が不明な場合は追加確認が必要です。

リペイントするインジはEA化できますか?

技術的には可能な場合がありますが、どの時点の値を採用するかを明確にする必要があります。過去足のサインが後から変わる場合、バックテストやリアルタイム運用で見え方が変わる可能性があります。

SetIndexBufferは何に使いますか?

SetIndexBufferは、インジケーターの配列をバッファとして登録するために使います。ライン表示、矢印表示、ヒストグラム表示、EA連携用の値出力などに関係します。

iCustomで読み込めない時は何を確認しますか?

インジケーター名、ファイル配置、ex5生成、inputの順番、inputの型、必要なincludeや依存ファイル、INVALID_HANDLEの有無、GetLastErrorを確認してください。

インジケーターのソースがない場合でもEA化できますか?

ex5からiCustomとCopyBufferで値を取得できる場合は、EA連携できる可能性があります。ただし、バッファ番号や値の意味が不明な場合は、確認用ログや調査が必要です。

矢印が見えているのにEAでサインが読めないのはなぜですか?

矢印表示とEAが読むバッファ値が一致していない可能性があります。バッファ番号、EMPTY_VALUE、shift、CopyBufferの戻り値、表示用オブジェクトかバッファ描画かを確認してください。

通知対応インジとEA化は同じですか?

同じではありません。通知対応インジはサインや状態を通知する機能であり、EA化は注文や決済などのexecution層を含む場合があります。通知成功と売買成功は分けて確認します。

EA化前に最低限必要な情報は何ですか?

対象インジケーター名、バージョン、mq5またはex5の有無、BUY / SELLバッファ番号、サインなしの値、shift 0 / 1の扱い、リペイント有無、対象銘柄、時間足、setファイル、ログが必要です。

まとめ

MQL5インジケーター開発とEA連携では、チャート上の見た目だけでなく、バッファ設計、OnCalculate、SetIndexBuffer、iCustom、CopyBuffer、shift、確定足、リペイント確認を整理することが重要です。

インジケーターは、ライン、矢印、ヒストグラム、状態値などを表示・出力する側です。EAは、必要に応じてその値を読み、signal、execution、risk、exit、notificationなどの責務に分けて処理します。

サインインジをEA化する場合は、BUY / SELLのバッファ番号、サインなしの値、shift 0とshift 1の違い、過去足の値が変わるかどうかを必ず確認してください。

通知対応やGoogle Sheets連携、CSV記録へ応用する場合も、Webhook URL、GAS URL、APIキー、認証トークン、口座番号などの実値は共有しないようにしてください。

開発や改修を相談する場合は、対象インジケーター、バージョン、対象銘柄、時間足、setファイル、Expertsログ、Journalログ、スクリーンショットを整理しておくと、確認が進めやすくなります。

MT4/MT5 技術講座へ戻る

ABOUT ME
記事URLをコピーしました