稼働中のEAが接続されていても、取引記録が不完全なことはあります。利益を解釈する前に、EAの判断、送ったリクエスト、ブローカーが実際に記録した内容を照合します。利益が出た決済済み取引のスクリーンショットだけでは、このつながりを証明できません。
判断の証拠、約定の証拠、口座の会計記録は、照合できるまで分けて扱います。このガイドは再現可能な監査例であり、監視EA、自動復旧コントローラー、収益性の証明を提供するものではありません。稼働監視にはハートビートとアラートのガイドを参照してください。
1. 口座とEA実行の対象範囲を固定する
ブローカーサーバー、口座、本番・デモの区分、口座通貨、標準単位・セント単位を記した管理台帳を作ります。EAのビルド、入力ファイルのバージョン、実行識別子、実際の銘柄接尾辞、時間足、評価期間、基準時点も記録します。共有レポートに認証情報を含めないでください。
この架空例では、識別済みのEA実行がUSD口座でEURUSD H1を取引します。期間は明示したブローカー時計の08:00–12:00です。開始残高と有効証拠金は$10,000で、開始時に未決済ポジションはありません。取引主体は実行台帳で確認済みで、口座には別の識別済み主体の取引も認めています。これは会計検証用データであり、戦略の売買ルールではありません。
2. 同じ基準時点の証拠を保存する
EAの判断・リクエストの生ログ、ExpertsとJournal、必要期間の口座履歴、未決済注文と口座のスナップショットを保存します。収集時刻と元データの対象期間を記録します。元のエクスポートは変更せず、修正や後日のスナップショットには別バージョンを付けます。端末ファイルはログのガイドで説明しています。
時計は、文書化された時間基準と時差がある場合だけ正規化します。発生元のイベント時刻と収集側の受信時刻を別々に保存します。近い時刻だけでは因果関係や遅延を証明できません。変化するライブ口座の収集は不可分な一括取得ではありません。収集中に変化した記録を明記し、宣言した基準時点に対して再照合します。
3. MT4の注文プールと項目を正しく読む
MODE_TRADESには未決済の成行注文と待機注文、MODE_HISTORYには決済済み注文と取消済み待機注文が含まれます。決済時刻がゼロというだけでは、未決済の市場エクスポージャーと待機注文を区別できません。注文種別を確認します。取引を数える前に、成行のBUYとSELLを明示的に抽出してください。読み込まれる履歴は端末のAccount Historyの期間設定に依存します。
OrderSelect()は注文データをプログラムにコピーします。最新の項目に依存する前に再選択してください。履歴の行位置は時系列順を保証しません。明示的な時刻と識別子でエクスポートを並べ、同時刻の記録や出典を残します。端末の行順から判断の順序を推測しないでください。
4. 判断・試行・ブローカー注文を対応付ける
表は対象EAのみを扱います。D000は08:00の判断で、注文500は08:30に決済。D001は09:00の判断で、注文501は10:15に決済します。10:00のD002はシグナルなしと明記されています。11:00のD003で注文502が成立し、12:00の基準時点でも未決済です。この例では各エントリー試行に、対応を一意に確認できるブローカー注文があります。
| 判断 | 記録されたシグナル | ローカルのリクエスト証拠 | ブローカーのチケット | 監査上の分類 |
|---|---|---|---|---|
| D000 | SELL | Q0 · 確認応答あり | 500 | 照合済み · 決済済み |
| D001 | BUY | Q1 · タイムアウト128 | 501 | 照合済み · 決済済み |
| D002 | シグナルなし | リクエストなし | — | 記録のある見送り |
| D003 | SELL | Q3 · 確認応答あり | 502 | 照合済み · 未決済 |
記録済み判断は4件、エントリー試行は3件、照合済み注文は3件で、決済済み2件と未決済1件です。未決済注文を欠落扱いにせず、シグナルなしの判断を拒否された注文として扱わないでください。分母が異なります。例示の時刻と売買方向は、エントリー戦略を定義していません。
5. 次の試行の前にタイムアウトを解消する
エラー128は取引タイムアウトを意味し、ブローカーによる拒否を確認するものではありません。下の架空の時系列では、ローカルのタイムアウトが返る前にBUY注文501が存在します。宣言した口座で、リクエストと一意に対応する証拠を使い、現在の成行注文、待機注文、履歴を照合してから、再試行が許されるか判断します。
同時に複数注文がある場合、時刻と銘柄だけの一致は弱い根拠です。結果を一意に確定できなければ、未解決と記録し、場当たり的な重複エントリーを防ぎます。エスカレーションと既存ポジションの保護は、既存の口座リスク方針に従います。監査そのものは全決済やリスク上限の緩和を許可しません。
6. 取引主体と注文の派生関係を確認する
ブローカー口座、チケット、銘柄、実行記録、文書化したMagic Numberの規約を照合します。Magic NumberはEAバージョンの刻印ではなく、チケットもブローカーや口座を超える共通識別子ではありません。衝突、台帳の欠落、手動介入は調査対象であり、都合よく対象EAに割り当てません。共用口座ではポートフォリオの帰属分析も確認してください。
履歴の一行が独立した戦略判断に対応するとは限りません。部分決済、残量の記録、close-by処理では、ブローカーが実際に記録した派生関係を確認します。元数量と決済数量を二重計上せずに追跡し、関連と訂正を保存し、帰属未解決の記録を明示します。この例には部分決済や待機注文はありません。
7. 計上済みコストを符号付きで一度だけ加える
表の金額はすべてUSDです。選択済みの決済注文でコストがこの項目に記録されている場合、計上済み純損益はOrderProfit() + OrderCommission() + OrderSwap()です。価格変動損益には手数料とスワップを含みません。実際の符号付き値を足し、負の費用を再び引かないでください。注文602は別の識別済み取引主体に属し、11:30に決済します。
| チケット | 取引主体 | 価格変動損益 | 手数料 | スワップ | 計上済み純損益 |
|---|---|---|---|---|---|
| 500 | 対象EA | −25.00 | −2.00 | 0.00 | −27.00 |
| 501 | 対象EA | +40.00 | −2.00 | −1.00 | +37.00 |
| 602 | 別の取引主体 | +8.00 | −1.00 | 0.00 | +7.00 |
対象EAの決済済み純損益は+$10、別主体は+$7です。実約定価格には執行とスプレッドの影響がすでに含まれるため、仮定のスプレッドやスリッページ枠を計上済み結果から再控除しません。別途計上される費用は専用の台帳行に一度だけ記し、注文合計にも重ねて含めないでください。取引コストのガイドを参照してください。
8. 台帳から残高と有効証拠金へつなぐ
08:45の$500入金は外部資金フローです。出金、クレジット、追加費用がなければ、終了残高は開始$10,000に入金と決済済み純損益+$10、+$7を加えた$10,517です。12:00の注文502の価格変動損益は−$18で、現時点の手数料とスワップはともにゼロです。他の未決済ポジションや調整はなく、観測した有効証拠金は$10,499です。
入金を除いた口座全体の金額損益は−$1です。対象EAの時価評価損益は、決済済み+$10と未決済−$18を合わせて−$8。他主体の+$7を足すと同じ口座損益−$1になります。これは金額の照合であり、パーセント収益率や時間加重収益率ではありません。実口座では手数料の計上、クレジット、有効証拠金の扱いがサーバーごとに異なります。簡略式が常に成立すると仮定せず、実際の有効証拠金と内訳を確認します。
任意:符号付きUSD台帳を再計算する
決済注文の計算:40 − 2 − 1 = +37、−25 − 2 + 0 = −27、8 − 1 + 0 = +7。対象EAの決済済み純損益:37 − 27 = +10。残高:10,000 + 500 + 10 + 7 = 10,517。有効証拠金:10,517 − 18 = 10,499。口座全体の金額損益:10,499 − 10,000 − 500 = −1。対象EAの時価評価損益:10 − 18 = −8。すべてUSDで、小数点と桁区切りのカンマは英語式の数値表記です。
9. 証拠の欠落を不明のまま明示する
空の取引履歴は、シグナルがなかった証拠にはなりません。見送りを文書化するには、EAが実際に出力する判断レベルの証拠が必要です。EX4ファイルや外部監視プログラムから、内部で見送った判断を自動的に読み取れるわけではありません。提供元に該当ログがなければ網羅性の限界を報告します。監視プログラムを追加するためだけに、取引EAをチャート上で置き換えないでください。
欠けた履歴、古いスナップショット、未照合リクエスト、説明できない残高差は、調査すべき不明点です。損失ゼロや正常な執行を意味しません。元の精度を保ち、丸めるのは表示だけにします。口座通貨単位で差を照合し、説明、情報源、訂正版を記録します。比較の追加的な限界はデモとライブのガイドを参照してください。
10. 成績評価前に証拠を承認する
完全な照合は、その後の有効証拠金とドローダウンの評価を支えますが、EAの優位性は検証しません。きれいな少数標本も少数のままです。信頼できるフォワード成績を確立する普遍的な日数や取引数はありません。戦略や設定を変えたら実行バージョンを分け、過去を書き換えないでください。
- 口座、実行、通貨、時間基準、基準時点は明確か。
- 情報源の対象期間は完全で、判断・リクエスト・ブローカー記録がすべて照合済み、または未解決と明示されているか。
- 取引主体、数量の派生関係、符号付きコストを重複なく帰属させたか。
- 資金フロー、計上残高、未決済リスク、観測した有効証拠金は一致するか。
- 証拠が不足・曖昧な箇所では、成績評価への承認を保留したか。
管理台帳、生のエクスポート、照合台帳、網羅性の欠落、評価判断をまとめて保存します。運用監視は既存のリスク方針に従って続けます。この監査は注文の自動管理、アラート配信保証、損失上限を提供せず、新たな本番資金配分も許可しません。
11. ライブ照合についての質問
タイムアウトは注文失敗を意味しますか。
いいえ。執行状態が不明なままという意味です。再試行前に、ブローカーの未決済・待機・履歴記録をリクエストと照合してください。重複注文はエクスポージャーを増やす可能性があります。
履歴の注文件数は完了取引数ですか。
それだけでは判断できません。読み込み期間が不完全な場合があり、取消済み待機注文も含まれます。注文種別を抽出し、部分決済の派生関係を再構築してから取引数を定義します。
EAの決済済み利益がプラスなら口座も利益ですか。
いいえ。未決済損失、他主体、コスト、外部資金フローで解釈が変わります。この例では対象EAの決済済み損益は+$10でも、時価評価損益は−$8、入金を除く口座全体の金額損益は−$1です。
完全に照合した台帳は将来の収益性を証明しますか。
いいえ。対象期間と情報源に関する追跡可能な会計を確立するだけです。フォワード検証には固定した手順、十分で関連性のある証拠、不確実性と戦略変更の誠実な扱いが引き続き必要です。
12. 情報源と対象範囲
公式資料:MQL4 OrderSelectの注文プールとコピーされる項目、MQL4 OrderProfitと除外コスト、MQL4 OrdersHistoryTotalと読み込み履歴。確認日:2026-10-18。仕様書は項目と動作を説明しますが、この監査やEAを認証するものではありません。
判断、チケット、時刻、金額はすべて架空の学習用数値です。図は仮定を正確に示しますが、元のテスターレポートや検証済みライブ成績ではありません。収益性、適切なリスク水準、執行保証、将来の結果を主張しません。