EAログとは|Expertsログ・Journalログで確認する動作記録の基本
EAログとは、EAがどのように判定し、なぜ注文したか、なぜ注文しなかったか、どの理由で決済したかを確認するための動作記録です。
EAを使う時は、取引履歴だけでは分からないことがあります。たとえば、注文がない場合でも、EAが動いていないとは限りません。スプレッド超過、時間外、証拠金不足、ロット条件、ロジック不成立、最大ポジション到達などにより、EAが発注前に注文を見送っている場合があります。
MT4 / MT5では、EA側の動作を確認するExpertsログと、端末・取引サーバー側の状態を確認するJournalログを分けて見ることが重要です。
この記事では、EAログの基本と、Expertsログ・Journalログで確認したいentry_skip、order_fail、retcode、close_reason、スプレッド、時間設定、バックテスト時の確認ポイントを整理します。
なお、この記事はEAログの意味と確認方法を整理するための内容です。売買判断、推奨ロット、推奨銘柄、推奨エントリー、利益保証を行う内容ではありません。
この記事で確認すること
| 確認項目 | 内容 | EA検証で関係する場面 |
|---|---|---|
| EAログ | EAの判定、注文、決済、エラーなどの動作記録です。 | EAが動かない、注文しない、決済しない時の確認に使います。 |
| Expertsログ | EAが出力する動作ログです。 | entry_reason、entry_skip、close_reasonなどを確認します。 |
| Journalログ | MT4 / MT5端末や取引サーバー側のログです。 | 注文送信、約定、拒否、通信状態を確認します。 |
| retcode | 注文要求に対する取引サーバー側の結果コードです。 | 注文成功、拒否、価格変動、証拠金不足などを切り分けます。 |
| entry_skip | EAが発注を見送った理由です。 | スプレッド、時間、証拠金、ロジック条件などを確認します。 |
| close_reason | EAが決済した理由です。 | TP、SL、内部決済、トレーリング、手動決済との違いを確認します。 |
EAログとは
EAログとは、EAが実行中に出力する動作記録です。
EAが何を判定し、どの条件で注文を出し、どの条件で注文を見送り、どの理由で決済したかを確認するために使います。
| ログの種類 | 内容 | 確認する目的 |
|---|---|---|
| 判定ログ | エントリー条件やフィルター判定の記録です。 | ロジックが成立したか確認します。 |
| 発注ログ | 注文要求や注文結果の記録です。 | order_send、retcode、約定有無を確認します。 |
| 見送りログ | 発注しなかった理由の記録です。 | entry_skip、spread_block、time_blockを確認します。 |
| 決済ログ | 決済理由や決済結果の記録です。 | close_reason、exit_reasonを確認します。 |
| リスクログ | 証拠金、ロット、最大DDなどの安全判定です。 | risk_block、margin_levelを確認します。 |
| 診断ログ | 初期化、設定、口座状態、銘柄仕様などの記録です。 | EA設置直後や不具合確認で使います。 |
Expertsログとは
Expertsログとは、EAやインジケーターなどが出力する動作ログです。
EA側の判定、発注条件、決済条件、フィルター結果、リスク制御、設定値、エラー情報などを確認する時に使います。
| 確認項目 | 内容 | 主な用途 |
|---|---|---|
| entry_reason | エントリーした理由です。 | どのロジックで注文したか確認します。 |
| entry_skip | エントリーを見送った理由です。 | 注文しない原因を確認します。 |
| spread_block | スプレッド超過で止めた記録です。 | 最大スプレッド設定と現在値を照合します。 |
| time_block | 時間外で止めた記録です。 | 稼働時間、停止時間、サーバー時間を確認します。 |
| risk_block | リスク制御で止めた記録です。 | 証拠金、ロット、最大ポジション数などを確認します。 |
| close_reason | 決済理由です。 | TP、SL、内部決済、トレーリングを分けます。 |
Journalログとは
Journalログとは、MT4 / MT5端末や取引サーバー側の動作記録です。
EAが注文を送った後、端末やサーバー側でどのように処理されたか、通信状態、注文拒否、約定結果、接続状態などを確認する時に使います。
| 確認項目 | 内容 | 主な用途 |
|---|---|---|
| 注文送信 | 端末から注文が送られた記録です。 | EAの注文要求が端末側へ届いたか確認します。 |
| 約定結果 | 注文が成立した記録です。 | 約定価格、注文番号、決済結果を確認します。 |
| 注文拒否 | 注文が成立しなかった記録です。 | retcode、reject、trade disabledなどを確認します。 |
| 接続状態 | サーバー接続や通信状態です。 | 通信断、再接続、遅延を確認します。 |
| 端末状態 | MT4 / MT5端末側の状態です。 | ログイン、VPS、口座切替などを確認します。 |
ExpertsログとJournalログの違い
ExpertsログとJournalログは、どちらもEA確認で重要ですが、見ている対象が異なります。
| 項目 | Expertsログ | Journalログ |
|---|---|---|
| 主な対象 | EA側の判定や処理です。 | 端末・サーバー側の処理です。 |
| 確認できること | なぜ注文したか、なぜ見送ったか、なぜ決済したかです。 | 注文が送られたか、約定したか、拒否されたかです。 |
| 見る場面 | EAロジックや設定を確認する時です。 | 注文結果や通信状態を確認する時です。 |
| 代表項目 | entry_reason、entry_skip、close_reason、risk_blockです。 | order、deal、retcode、connection、trade serverです。 |
| 注意点 | EAがログを出す設計でないと情報が不足します。 | EA内部の判定理由までは分からない場合があります。 |
EAが注文しない時に見るログ
EAが注文しない場合、まず「EAが動いていない」のか、「EAは動いているが発注条件で見送っている」のかを分けて確認します。
| 原因候補 | 確認するログ | 見る項目 |
|---|---|---|
| ロジック不成立 | Expertsログ | signal、gate、score、entry_condition |
| スプレッド超過 | Expertsログ | spread_block、current_spread、max_spread |
| 時間外 | Expertsログ | time_block、server_now、time_ok |
| 証拠金不足 | Expertsログ / Journalログ | free_margin、margin_level、retcode |
| ロット条件不一致 | Expertsログ / Journalログ | volume、min_lot、lot_step、retcode |
| 取引時間外 | Journalログ | trade_allowed、market closed、session |
| EA停止 | Expertsログ / 画面表示 | init、deinit、自動売買ボタン、許可設定 |
EAが決済しない時に見るログ
EAが決済しない場合も、決済条件が成立していないのか、決済注文が失敗しているのかを分けて確認します。
| 原因候補 | 確認するログ | 見る項目 |
|---|---|---|
| 決済条件不成立 | Expertsログ | exit_signal、close_check、exit_gate |
| TP / SL未到達 | 取引履歴 / Expertsログ | tp_price、sl_price、current_price |
| 内部決済未成立 | Expertsログ | internal_close、close_reason、basket_pl |
| トレーリング未発動 | Expertsログ | trail_start、trail_update、trail_block |
| 決済注文失敗 | Expertsログ / Journalログ | close_order_fail、retcode、GetLastError |
| 対象ポジション不一致 | Expertsログ | magic、ticket、symbol、basket_scope |
retcodeとは
retcodeとは、注文要求に対して取引サーバー側から返る結果コードです。
EAが注文や決済を試みた後、成功したのか、拒否されたのか、価格が変わったのか、証拠金不足なのかを確認するために使います。
| 確認項目 | 内容 | 確認ポイント |
|---|---|---|
| retcode | 注文結果コードです。 | 数値だけでなく意味も確認します。 |
| comment | サーバー側コメントです。 | ブローカー仕様により表示が異なる場合があります。 |
| GetLastError | 端末側のエラー情報です。 | retcodeとは別に確認します。 |
| order_ticket | 注文番号です。 | 注文要求が作成されたか確認します。 |
| deal_ticket | 約定番号です。 | 実際に約定したか確認します。 |
| position_ticket | ポジション番号です。 | 保有状態と履歴を照合します。 |
発注前ブロックと注文後エラーを分ける
EAが注文していないように見える場合でも、発注前にEAが止めている場合と、注文後にサーバー側でエラーになっている場合があります。
| 区分 | 状態 | 確認するログ |
|---|---|---|
| 発注前ブロック | EAが注文を送る前に見送った状態です。 | entry_skip、spread_block、time_block、risk_block |
| 注文要求 | EAが注文を送った状態です。 | order_send、request_price、volume |
| 注文後エラー | サーバー側で注文が成立しなかった状態です。 | retcode、order_fail、GetLastError、Journalログ |
| 約定済み | 注文が成立した状態です。 | deal_ticket、fill_price、position_ticket |
| 決済済み | ポジションが閉じた状態です。 | close_reason、close_price、profit |
バックテストで見るEAログ
バックテストでは、最終損益だけでなく、EAログを確認することで、どの条件で注文し、どの条件で注文を見送り、どの理由で決済したかを確認できます。
| 確認項目 | 内容 | 確認目的 |
|---|---|---|
| 検証条件 | 銘柄、時間足、期間、スプレッドです。 | ログと結果を再現できるようにします。 |
| 初期化ログ | EA起動時の設定確認です。 | Inputs、銘柄仕様、口座状態を確認します。 |
| エントリーログ | 注文条件や発注理由です。 | entry_reason、entry_skipを確認します。 |
| 決済ログ | 決済条件や決済理由です。 | close_reason、exit_reasonを確認します。 |
| 注文結果ログ | 注文成功、失敗、約定価格です。 | retcode、fill_priceを確認します。 |
| リスクログ | 証拠金、DD、ポジション数です。 | risk_block、margin_levelを確認します。 |
バックテスト結果は、将来の結果を保証するものではありません。ログ確認は、EAが指定した条件で過去データに対してどう動いたかを確認するために行います。
運用中に見るEAログ
実運用やデモ運用では、EAログを使って、現在のEAが正常に動いているかを確認します。
| 確認項目 | 内容 | 見るログ |
|---|---|---|
| EA起動 | EAが正常に初期化されたか確認します。 | init、RUNTIME_INIT、設定確認ログ |
| 自動売買許可 | EAが注文可能な状態か確認します。 | trade_allowed、auto_trading |
| 銘柄仕様 | point、digits、lot stepなどを確認します。 | symbol_info、point、digits |
| 注文判定 | エントリー条件が成立しているか確認します。 | signal、gate、score |
| 発注結果 | 注文が成功したか確認します。 | retcode、order_send、deal_ticket |
| 決済管理 | 保有ポジションの決済管理を確認します。 | close_reason、trail_update、basket_pl |
GOLD / XAUUSDで確認したいログ
GOLD / XAUUSDでは、価格単位、スプレッド、ロット、tick valueの見方を誤ると、EAログの解釈もずれる場合があります。
| 確認項目 | 内容 | ログで見る項目 |
|---|---|---|
| point | 最小価格変動単位です。 | point、_Point |
| digits | 価格表示の小数桁数です。 | digits |
| スプレッド | BidとAskの差です。 | spread_points、spread_price |
| SL / TP幅 | 損切り・利確幅です。 | sl_points、tp_points、sl_price、tp_price |
| ナンピン幅 | 追加ポジションまでの距離です。 | distance_points、next_entry_price |
| 損益 | 価格差による損益です。 | floating_pl、basket_pl、profit |
ナンピンEAで確認したいログ
ナンピンEAでは、初回エントリー、追加ポジション、平均建値、バスケット損益、証拠金維持率をログで確認します。
| 確認項目 | 内容 | ログで見る項目 |
|---|---|---|
| 初回エントリー | 最初の注文です。 | first_entry、entry_reason、magic |
| 追加判定 | ナンピン条件です。 | add_check、nanpin_check、distance_points |
| 追加注文 | ナンピン注文の結果です。 | add_order_send、retcode、fill_price |
| 平均建値 | 複数ポジションの平均価格です。 | avg_price、basket_scope |
| バスケット損益 | 複数ポジション全体の損益です。 | basket_pl、basket_close_reason |
| リスク状態 | 含み損や証拠金維持率です。 | floating_pl、margin_level、risk_block |
コピーEAで確認したいログ
コピーEAでは、コピー元とコピー先のログを分けて確認します。
コピー元で注文が出ていても、コピー先で同じように成立するとは限りません。コピー対象判定、送信、受信、発注、約定、失敗理由を分けて確認します。
| 確認項目 | 内容 | ログで見る項目 |
|---|---|---|
| コピー元注文 | コピー元で発生した注文です。 | source_ticket、source_magic、source_time |
| コピー対象判定 | コピー対象に含めるかどうかです。 | copy_filter、include_magic、exclude_magic |
| 送受信 | コピー情報の送信・受信です。 | seq、heartbeat、receive_time |
| コピー先注文 | コピー先で注文した結果です。 | dest_order_send、dest_retcode、dest_ticket |
| ロット変換 | コピー先でのロット調整です。 | source_volume、dest_volume、lot_ratio |
| 価格差 | コピー元とコピー先の約定差です。 | source_price、dest_price、slippage |
ログ量が多い時の注意点
EAログは詳細であるほど確認しやすくなりますが、ログ量が多すぎると重要な情報を見つけにくくなります。
バックテストでは、必要に応じて詳細ログと簡易ログを分けると確認しやすくなります。
| ログ設定 | 内容 | 使う場面 |
|---|---|---|
| 詳細ログ | 判定や状態を細かく出力します。 | 不具合確認、初回検証、原因調査で使います。 |
| 簡易ログ | 重要な結果だけ出力します。 | 長期バックテストや通常確認で使います。 |
| エラーログ | 失敗や異常だけ出力します。 | 注文失敗、通信不良、設定ミス確認で使います。 |
| 集計ログ | 一定間隔で状態をまとめて出力します。 | 証拠金、ポジション数、損益確認で使います。 |
| 初期化ログ | 起動時の設定や環境を出力します。 | 設置直後、setファイル確認で使います。 |
ログ確認で保存するもの
| 保存項目 | 保存する内容 |
|---|---|
| EA名 | 使用したEA名を記録します。 |
| EAバージョン | 使用したEAのバージョンを記録します。 |
| 銘柄 | 検証した銘柄を記録します。 |
| 時間足 | EAを設置した時間足を記録します。 |
| 検証期間 | バックテストや確認期間を記録します。 |
| setファイル | 使用したEA設定を保存します。 |
| Expertsログ | EA側の判定ログを保存します。 |
| Journalログ | 端末・サーバー側のログを保存します。 |
| 取引履歴 | 注文、約定、決済の記録を保存します。 |
ログ設計とCSV保存を詳しく確認するページ
EAログの意味を確認した後は、実際にどの形式でログを出すか、どの場面でログを残すか、CSVとして保存するかを分けて確認すると、開発依頼や不具合調査がしやすくなります。
| 確認したい内容 | 関連ページ | 確認ポイント |
|---|---|---|
| ログファースト設計 | MQL5ログファースト設計を実コードで解説 | event、side、reason、detailを使って、あとから追跡できるログ構造を確認します。 |
| 発注・決済ログ | MQL5でEAのログ設計を行う方法 | OrderSend、retcode、GetLastErrorを分けて記録する考え方を確認します。 |
| CSVログ保存 | MQL5ファイル操作・CSVログ出力完全ガイド | CSV出力、保存先、文字コード、ファイル肥大化、バックテスト時の保存先を確認します。 |
確認順
| 順番 | 確認項目 | 確認内容 |
|---|---|---|
| 1 | EA起動ログ | EAが正常に初期化されたか確認します。 |
| 2 | 設定ログ | Inputs、銘柄仕様、口座状態を確認します。 |
| 3 | 判定ログ | entry_reason、entry_skip、signal、gateを確認します。 |
| 4 | 発注ログ | order_send、request_price、volumeを確認します。 |
| 5 | 注文結果ログ | retcode、GetLastError、deal_ticketを確認します。 |
| 6 | 決済ログ | close_reason、close_price、profitを確認します。 |
| 7 | Journalログ | 端末・サーバー側の注文結果や通信状態を確認します。 |
| 8 | 取引履歴 | 実際の注文・約定・決済結果と照合します。 |
実務チェック表
| チェック項目 | 確認内容 |
|---|---|
| Expertsログを確認した | EA側の判定、発注、決済理由を確認します。 |
| Journalログを確認した | 端末・取引サーバー側の注文結果や通信状態を確認します。 |
| EA起動ログを確認した | EAが正常に初期化されているか確認します。 |
| 発注見送り理由を確認した | entry_skip、spread_block、time_block、risk_blockを確認します。 |
| 注文結果を確認した | order_send、retcode、GetLastError、deal_ticketを確認します。 |
| 決済理由を確認した | close_reason、TP、SL、内部決済、トレーリングを確認します。 |
| 取引履歴と照合した | 注文、約定、決済、損益とログを照合します。 |
| setファイルを保存した | 確認時のEA設定を保存します。 |
| ログ量を確認した | 詳細ログ、簡易ログ、エラーログを使い分けます。 |
FAQ
EAログとは何ですか?
EAログとは、EAがどのように判定し、なぜ注文したか、なぜ注文しなかったか、どの理由で決済したかを確認するための動作記録です。
Expertsログとは何ですか?
Expertsログとは、EA側が出力する動作ログです。entry_reason、entry_skip、spread_block、time_block、risk_block、close_reasonなどを確認します。
Journalログとは何ですか?
Journalログとは、MT4 / MT5端末や取引サーバー側のログです。注文送信、約定、拒否、通信状態、接続状態などを確認します。
EAが注文しない時はどのログを見ればよいですか?
まずExpertsログでentry_skip、spread_block、time_block、risk_blockを確認します。注文要求が出ている場合は、Journalログやretcodeも確認します。
EAが決済しない時はどこを確認しますか?
Expertsログでclose_reason、exit_signal、trail_update、basket_plを確認します。決済注文を送っている場合は、retcode、GetLastError、Journalログも確認します。
バックテストでもEAログは確認した方がよいですか?
確認してください。最終損益だけでなく、entry_reason、entry_skip、close_reason、retcode、リスク制御ログを確認すると、EAがどの条件で動いたかを把握しやすくなります。
関連ページ
| 関連ページ | 確認目的 |
|---|---|
| FX用語辞典 | EA・MT4/MT5を使う前に確認したいFX用語全体を確認します。 |
| EAが動かない時に見る基本用語 | EAが動かない時に確認する自動売買、認証、スプレッド、ログ確認の基本を整理します。 |
| EAの取引履歴とは | EAログと取引履歴を照合し、注文・決済・約定の記録を確認します。 |
| バックテストとは | Strategy Testerやバックテスト時のログ確認に使います。 |
| スリッページ・約定拒否・リクオートとは | retcode、order_fail、約定失敗などのログ確認に使います。 |
| 経済指標・取引時間・時間帯とは | time_block、news_block、spread_blockなど、相場環境に関するログ確認に使います。 |
まとめ
EAログは、EAがなぜ注文したか、なぜ注文しなかったか、なぜ決済したかを確認するための重要な動作記録です。
Expertsログでは、EA側の判定、発注見送り、決済理由、リスク制御を確認します。Journalログでは、端末・取引サーバー側の注文送信、約定、拒否、通信状態を確認します。
EAが動かない、注文しない、決済しない、履歴と結果が合わない場合は、発注前ブロック、注文要求、注文後エラー、約定結果、決済理由を分けて確認してください。
実運用前には、デモ環境やバックテストで、Expertsログ、Journalログ、取引履歴、setファイル、EAバージョン、銘柄、時間足、検証条件を保存しておくことが重要です。
