海外FXのEAを自作する方法【MQL4プログラミング入門】
概要:EAを自作することの意味
海外FX取引で使われるEA(Expert Advisor)。自動売買ツールとして多くのトレーダーが購入や無料配布されたものを使っていますが、「自分のロジックを形にしたい」「既存のEAが要望に合わない」という悩みを持つ人は少なくありません。
実は、プログラミング経験がなくても、基本を理解すればEAの自作は十分可能です。私が海外FX業界に携わっていた時代から、トレーダーがMQL4言語を使ってEAを自作する姿を何度も見てきました。当時と比べると、今はネット上に学習リソースも増えていますし、MetaTrader 4(MT4)の標準機能も充実しています。
本記事では、EA自作の流れ、必要な言語知識、実装時の注意点をお伝えします。これから自作にチャレンジする人の参考になれば幸いです。
詳細:EAの自作ステップと基礎知識
1. 必要な環境とツール
EA自作に必要なものは、実質的に一つだけです。
MetaTrader 4(MT4)です。
MT4には「メタエディタ」という統合開発環境が付属しており、MQL4言語でコードを書くことができます。XMTrading、Titan FX、HotForex等の海外FX業者が提供するMT4をインストールすれば、追加のソフトウェアを購入する必要はありません。
ちなみに、私が10年以上使い続けているXMTrading のMT4環境は、初心者がEA開発を学ぶのに十分な性能を備えています。プラットフォームの安定性も高く、サポートも手厚いため、学習環境として悪くない選択肢です。
2. MQL4言語の基本構造
MQL4は、C言語をベースにした比較的シンプルなプログラミング言語です。完全なプログラミング経験がなくても、以下の基本概念を理解すれば十分に書き始められます。
①関数(Function)
MQL4でEAを動かすには、以下の三つの主要な関数を覚えることが最初のステップです:
OnInit():EA起動時に一度だけ実行される初期化処理OnTick():ローソク足が更新されるたびに実行される。EAの「心臓」にあたる部分OnDeinit():EA停止時に実行される終了処理
最小限のEAは、OnTick()関数の中に売買ロジックを書くだけで動きます。
②変数と型
データを保持するために変数を使います。FX取引のEAでよく使う変数型は:
double:価格や手数料など小数点を含む数値int:ロット数やチケット番号など整数bool:真(true)or偽(false)の判定string:通貨ペア名やコメント文
③条件分岐
EA取引の根幹は「〇〇の条件なら買う、××なら売る」という条件分岐です。
if (移動平均線 > 現在の価格) {
// 買いシグナル
OrderSend(Symbol(), OP_BUY, ...);
}
このif文の組み合わせで、ほぼすべての売買ロジックを表現できます。
3. 実装の流れ
ステップ1:ロジックの明確化
プログラミングを始める前に、自分の売買ロジックを紙に書き出すことが重要です。「移動平均線がゴールデンクロスしたら買う」「RSIが70を超えたら売る」といった具合に、条件を言語化します。
曖昧な部分があると、コードに落とし込む段階で混乱します。私が海外FX業者で営業に携わっていた時代、初心者トレーダーからの相談で一番多かったのが「ロジックが明確でないまま開発を始めた」というケースでした。
ステップ2:MetaEditorで新規EAを作成
MT4を開いて、メニューから「ツール→メタエディタ」を選択します。ファイル→新規から「Expert Advisor」を選択し、ウィザードに従って基本的なテンプレートを生成します。
ステップ3:コード作成
生成されたテンプレートのOnTick()関数内に、売買ロジックを記述していきます。
例えば、シンプルな移動平均線クロスオーバーEAの場合:
void OnTick() {
double ma20 = iMA(Symbol(), PERIOD_H1, 20, 0, MODE_SMA, PRICE_CLOSE, 0);
double ma50 = iMA(Symbol(), PERIOD_H1, 50, 0, MODE_SMA, PRICE_CLOSE, 0);
if (ma20 > ma50 && !isPositionOpen()) {
OrderSend(Symbol(), OP_BUY, 0.1, Ask, 10, 0, 0, "EA Trade");
}
}
このコードは、1時間足の20日線が50日線を上抜いたら0.1ロット買う、という意味です。
ステップ4:コンパイルとエラーチェック
作成したコードを「Compile」ボタンでコンパイルします。文法エラーがあれば指摘されるので、修正します。この段階は初心者が最も時間をかける部分ですが、エラーメッセージをよく読めば対応方法は見つかります。
ステップ5:バックテストで検証
実際の取引で使う前に、過去データで動作確認することが必須です。MT4の「戦略テスター」機能を使って、1年分の過去チャートで自動売買を再現し、利益率や最大ドローダウンを調べます。
ここで重要なのは「完璧な成績を目指さない」ということです。バックテストの成績が良すぎるEAは、かえって本番で失敗することが多い(過最適化)。むしろ、安定性が高く現実的なドローダウンを許容できるEAを目指すべきです。
4. よく使うMQL4の関数
注文関連
OrderSend():新規注文を発注するOrderClose():ポジションを決済するOrderModify():注文のストップロスやテイクプロフィットを変更
テクニカル指標関連
iMA():移動平均線の値を取得iRSI():RSIの値を取得iMACD():MACDの値を取得iClose():終値を取得
ポジション管理関連
OrdersTotal():現在開いているポジションの数OrderSelect():特定のポジション情報を取得AccountBalance():アカウント残高を取得
注意点:EA自作で失敗しないために
①過最適化の罠
バックテストの成績を良くするために、パラメータを何度も調整する行為を「過最適化」と呼びます。確かに過去データでは完璧な成績になりますが、市場条件が変わると一気に失敗します。
特に「毎月50万円利益が出た」というレベルの成績が過去データで再現できたら、それは過最適化のサインです。本番で同じ成績が再現される可能性は低いと考えるべきです。
②スプレッドとスリッページの軽視
バックテストでは、スプレッドやスリッページ(実際の約定価格のズレ)を設定できます。この数値を小さすぎるまま検証すると、本番で思わぬ損失につながります。
海外FX業者のスプレッドは、業者によって異なります。XMTrading の場合、ドル円で平均1.6pips程度ですが、バックテストではこれを反映させることが重要です。
③単一指標への依存
移動平均線だけ、RSIだけといった単一の指標でEAを構築すると、特定の相場局面で連敗することが珍しくありません。複数の指標を組み合わせることで、ロジックの信頼性が高まります。
④手数料と税金
EA自動売買は、多くの場合何度も売買を繰り返すため、手数料が想定以上に必要になることがあります。また、利益が出た場合の税務申告義務も忘れずに。詳しくは税理士等に相談することをお勧めします。
⑤サーバー時間への注意
海外FX業者のMT4では、サーバー時間(通常、GMT+2またはGMT+3)を使用します。日本時間との時差を意識しておかないと、意図しない時間帯での売買が発生します。
例えば、「朝8時に新規注文を禁止する」というロジックを入れたつもりでも、サーバー時間を考慮していなければ、実際には別の時間帯になっていることもあります。
⑥事前通知義務の確認
一部の海外FX業者では、自動売買EAの使用に制限を設けている場合があります。口座開設時の利用規約を確認するか、サポートに問い合わせておくと安心です。XMTrading は自動売買を明示的に認めており、この点での心配は不要です。
自作EAのブラッシュアップ:実運用の工夫
パラメータの外部化
最初のうちは、ロット数や移動平均線の期間をコード内に直に書き込みがちです。しかし、本番運用では「パラメータを外部化」することで、コードを修正せずに値を変更できるようにすることが重要です。
input double LotSize = 0.1; // 変更可能 input int MA_Period = 20; // 変更可能 input int Risk_Percent = 2; // リスク率(%)
これにより、EA起動後のプロパティウィンドウから数値を変更でき、試行錯誤がしやすくなります。
ロギング機能の実装
EA自体がどのようなシグナルで売買を判定しているか、ログファイルに記録することで、失敗時の原因分析が容易になります。
if (ma20 > ma50) {
Print("ゴールデンクロス発生 - 買いシグナル");
}
Print()関数で出力した内容は、MT4の「ジャーナル」タブに記録されます。
まとめ:自作EAで重要なこと
EA自作は、テクニカル分析と資金管理の理解を深める絶好の機会です。単に「儲かるEAを作ること」を目指すのではなく、プロセス全体を通じて自分の売買手法を言語化し、客観的に検証することが本来の価値です。
プログラミング経験がなくても、MQL4の基本構文は実務的で習得しやすいものです。最初は移動平均線の単純クロスといったシンプルなロジックから始めて、徐々に複雑化させていくのが現実的です。
重要なのは「完璧なEAを作ること」ではなく、「ロジックをテストし、改善のサイクルを回すこと」。バックテストで有望だと判断したEAでも、本番では想定外の挙動をすることがあります。そこを柔軟に対応する姿勢が、長期的な利益につながります。
また、EA自動売買を動かすプラットフォーム選びも同じくらい重要です。信頼できる業者を選ばなければ、どんなに優れたEAでも台無しになります。海外FX業者を選ぶ際には、サーバーの安定性、スプレッドの競争力、サポート体制を総合的に判断することをお勧めします。
※本記事の情報は2026年04月時点のものです。最新情報は各公式サイトをご確認ください。本記事にはアフィリエイトリンクが含まれます。
まずは最大手のXMTradingで
実際に触れてみるのが早い
国内からの口座開設数が最も多い海外FX業者。最大1000倍レバレッジ・ゼロカット・日本語サポート。初回入金前にボーナスだけで取引感覚を掴めます。
コメント