はじめに
EAを作成して「コンパイルは成功したのに、実際に動かすと一度もエントリーしない…」そんな経験はありませんか?
原因を突き止めるには ソースコードを1行ずつ確認する「デバッグ」 が有効です。
この記事では、MT4のMetaEditorを使ってEAを動かしながらコードを追いかける方法を解説します。
リアルタイムの値動きを元に、IF文の分岐や変数の値を確認できるので、EAが意図通り動かない原因を効率よく発見できます。
バックテストでは使えない機能なので、もしバックテストでのデバッグをしたい場合は、以下の記事を参考にしてみてください。
EAデバッグとは?
まず、今回の(デバッグ)機能について解説します。
通常、MT4のチャートで値動きが発生すると、コンパイル済みのEAファイル(ex4ファイル)に処理がまわってEAが動くというのが基本の仕組みです。
しかし今回の『デバッグ』では、実行ファイル側ではなくMetaEditor側に処理が回ってくるようになります。そうすることでプログラムを1行ずつ実行して挙動を確認できます。
プログラミング用語的にはこういった確認方法を
『デバッグ』
といいます。
デバッグの動きを確認
デバッグのやり方は後述していますので、まずはその動きを見てみましょう。処理が回ってくるとこんな感じで、赤枠の所に黄色➡が出てきます。

処理は今ここで止まっているという目印です。この状態で「F11」キーを押します。

IF文の中に黄色➡が移動したのがわかります。「F11」キーを押すとワンステップ実行といって、黄色➡の部分の処理を実行します。黄色➡の部分は『if(int_a == 0)』で、true(int_aは0)だったのでIF文の中に入ってきたという感じです。
もし『if(int_a == 0)』で、false(int_aは0じゃない)だった場合はこんな動きになります。

IF文の中には入らず、一気にIF文を抜けた所に黄色➡が来ました。こういった感じでIF文がtrueなのかfalseなのかも簡単に確認できます。
以上のことから、『IF文がちゃんと作れて分岐できているかとかどうか』や、『注文をちゃんとするか』等、色々な場面で使えます。
デバッグ開始前にやること
デバッグをスムーズに行うために、まず以下を準備しましょう。
1.通貨ペア・時間足の設定
デバッグは、リアルデータを元に実行されますが初期通貨が「USDCHF」の1時間足のリアルデータとなります。別にこれでもデバッグはできるのですが、自分が検証したい通貨ペアと時間足に設定しておいた方がデバッグ時のイメージもしやすいです。
まず、『ツール』→『オプション』をクリックします。

そうすると、以下の画面が出てくるので設定していきます。

指定した設定を使用にチェックをいれ、以下のような感じに設定します。

デバッグする通貨の初期設定は以上です。
2.ブレークポイントの設定
デバッグを開始する前にもう一つやっておくことあります。それは、デバッグ中に自分が見ているプログラム上ここで止めたいといった部分の行(行数の所)をダブルクリックして、停止状態『■』にしておくことです。
※主にIF文とかの条件分岐になると思います

こんな感じに停止状態『■』をいくつか作ってデバッグ時に止まってくれる場所を作っておきます。もし1つも作っていない場合は黄色➡が出てこず止まってくれませんので注意が必要です。
実際のデバッグのやり方
デバッグのやり方は簡単で、MetaEditorで『デバッグ』をクリックして『リアルデータでスタート』という項目をクリックする事でできます。

リアルデータの方で値動きがあると、メタエディター側に処理が渡ってきて以下のように黄色➡が表示されます。

こんな感じで止まったら、あとはキーボードの「F11」キーを押せば1行ずつ実行していきます。
※「F10」のステップオーバーのような機能もありますがまずは「F11」だけでデバッグに慣れましょう
変数の中身を確認したい場合
1行ずつステップ実行していると、変数の値が何になっているのか知りたくなる場合が出てきます。
そんな時は、値が知りたい変数をダブルクリックし選択状態にし右クリックしてから、『ウォッチ式の追加』をクリックします。

そうすると、画面右下に先ほど選んだ変数が表示されるので「値」の項目を見ると、現在は「3」になっている事がわかります。
なので、IF文に使われている変数等を一通り見れる状態にしておくとデバッグ中わかりやすいです。
まとめ
以上が、『EAを動かしながらソースコードを1行ずつ確認する方法』です。
- EAのデバッグは コードを1行ずつ実行しながら挙動を確認できる強力な機能
- if文や変数のチェックにより「エントリーしない原因」を突き止めやすい
- 初心者ほど活用すべきツールであり、プログラムの理解を深める最短ルート
プログラム初心者のうちは「エントリーしない=バグ探し」に時間がかかりがちですが、今回の方法を使えば効率的に原因を発見できます。
✅ 他にも多数のEAサンプルを公開中!
今回紹介した内容以外にも、当サイトではさまざまな
FX自動売買EAのサンプルコードを提供しています。
自分に合った戦略のEAを見つけたい方は、ぜひチェックしてみてください。
📊 【2025年最新】FX自動売買EAランキングも公開中!
当サイトの「どのEA(インジ)が実際に勝っているのか?」を知りたい方はこちら👇
PF(プロフィットファクター)や勝率で徹底比較した最新ランキングから、あなたに最適なEA(インジ)を見つけましょう。
EA開発初心者向けに、今後も実践的なMQL4関数を紹介していきます。
気になる機能やロジックがあれば、ぜひ他の記事もあわせてご覧ください!
コメント