MT4ゴールドEAの週末にログがないのは、フリーズしているのか?まずクォートとタイマーイベントを区別する
OnTickはチャート銘柄の新しいクォートに依存し、OnTimerはプログラムによる購読が必要です。イベントの入口、ログの位置、再初期化の記録に沿って調査し、休場中の出力なしだけで故障と断定するのを避けてください。
著者:トーマス|MT4実務|2026年11月14日
概要:週末にターミナルを開くと、EAの画面は残っているのに長時間新しいログが出ない場合、この現象だけでプログラムがフリーズしたと判断することはできません。調査ではまず、プログラムがどのイベントで起動されるのか、その入口で本当にログが出力されるのかを明確にし、そのうえでターミナルの状態を確認します。本記事では実口座での発注でプログラムを試すことはせず、フローチャートをいずれかのEAがテストに合格した証明として扱うこともありません。
新しいクォートがなければ、クォートイベントは発生しない可能性がある
MetaQuotes公式のMQL4ドキュメントによると、EAが添付されたチャート銘柄が新しいクォートを受信したときに初めて、対応するNewTickイベントが発生し、正しく宣言されたOnTick処理関数が呼び出されます。プログラムがチェックとログの両方をこの入口内に書いている場合、新しいクォートがない時間帯には新しい実行記録が残らない可能性があります。
これは、すべてのEAがクォートを待たなければならないという意味ではありません。プログラムはタイマーやチャートイベントなどの入口を使うこともできます。したがって「週末」というだけで全ての沈黙を一律に説明することはできず、まして別の銘柄がまだ更新されている現象を、現在のゴールドチャートが必ずクォートを受信している証拠と見なすことはできません。
まずプログラムがどのイベントを待っているかを見分ける

図はオリジナルのフロー教学示意であり、実際の相場ではなく、実際の取引口座も示していません。最初の経路はチャート銘柄の新しいクォートに依存し、2番目の経路はプログラムがタイマーを正常に購読することに依存します。タイマーイベントはチェックロジックを起動できますが、現在の市場で約定できることと同じではなく、プログラムは依然として取引条件とデータの有効性を確認しなければなりません。
公式は、初期化時にタイマーを購読し、アンロード時に解除することを推奨しています。OnTimer関数を書くだけで購読がない場合、それが周期的に実行されることを示すことはできません。関数名、引数、戻り値の型もイベント処理の要件に適合している必要があり、任意の綴り間違いによって期待する入口が呼び出されない可能性があります。
一般ユーザーが段階的に調査する方法
まず口座、サーバー、チャート銘柄名、現在の接続状態を確認し、正しいターミナルを見ていることを確かめます。最後のクォート時刻とプラットフォームの取引時刻を記録し、パソコンの時計をサーバーの相場時刻の代わりにしないでください。週末の通常休場も、他の商品の取引スケジュールが完全に同じであることを意味しないため、具体的なプラットフォームの告知に基づくべきです。
次にExpertsやJournalなどの関連ログを確認し、最後の数件の初期化、アンロード、エラーの記録を保存します。ログのフィルター、日付、別のターミナルを見ていないかに注意してください。EA自体が取引条件の発生時のみ出力する場合、新しい記録がないことは出力条件が満たされていないだけの可能性もあり、これによってプログラムが一度も実行されなかったと証明することはできません。
その後、EAの説明に定時チェック、ハートビート出力、週末メンテナンス機構が含まれているかを確認します。ソースコードがない場合は、バージョン、パラメータ、チャート銘柄、最後のクォート時刻、ログを提供者に渡して照合してもらい、すべての製品が同じイベント構造を使っていると推測しないでください。
ソースコードがある場合に優先して検証すること
シミュレーション環境でOnInit、OnTick、OnTimerなどの入口の宣言と必要な購読を確認し、適度な頻度の診断ログで実際の経路を確認します。ログにはイベント種別、銘柄、データ時刻を記録し、「正常」とだけ書いて検証可能な文脈を欠くことを避けてください。口座パスワードやその他の認証情報を診断出力に書かないでください。
ターミナルの動作、チャートの読み込み、イベントの発生、取引の実行は異なる層です。タイマーが依然として出力していても、相場が新鮮であることや注文が必ず送信できることを証明することはできません。クォートイベントが発生しない場合、なおさら取引権限を緩めたり注文を重複送信したりしてプログラムが生きているかを検証すべきではありません。
周期を繰り返し切り替えると調査が妨げられる理由
公式ドキュメントによると、チャート銘柄や周期の変更、入力パラメータの変更は、アンロードと再初期化を伴います。繰り返し切り替えると、元の問題が新しい初期化プロセスに覆い隠されたり、プログラムが状態を再読み込みしたりする可能性があります。まずログとパラメータを保存し、説明に従って安全な環境で検証すべきであり、EAを何度も付け直して時々回復するかを観察するべきではありません。
EAごとにポジション復元、変数の永続化、重複発注防止の実装は異なります。本記事は再読み込みの安全性を保証せず、実際のエクスポージャーがある状態で盲目的にアンロードや再起動を行うことを推奨しません。いかなるメンテナンス操作でも、まずポジションを誰が管理するかを明確にすべきです。
調査が終了したと判断する方法
現在の銘柄に新しいクォートがなく、ロジックがクォート入口のみにあり、他のエラー証拠がないことを確認できた場合、プログラムを直したと宣言するのではなく、相場待ちとして記録できます。タイマー入口が本来動作すべきなのに出力が続かない場合は、購読、初期化結果、プログラムエラーを引き続き確認し、休場で全てを説明することはできません。
クォートが回復した後も、まずタイムスタンプと状態を確認し、プログラムが新しいイベントを期待通りに処理することを確かめるべきです。イベントの回復は取引戦略に収益優位性があることを証明せず、注文は依然としてスプレッド、スリッページ、執行リスクに直面します。調査の目的は、実口座で危険を冒して答えを得ることではなく、プログラムが実際にどの層で止まっているかを見つけることです。