教育目的のコンテンツです。 本記事はエキスパートアドバイザーを定義し、Vantoのフィードの数値を用いて、MetaTrader 5での自動売買の仕組みを解説します。投資助言や特定のEAの推奨を構成するものではありません。CFD取引には大きな損失リスクが伴い、すべての投資家に適しているとは限りません。
エキスパートアドバイザー(EA)は、MetaTrader 5のターミナル内で動作し、ルールに従って取引するプログラムです。チャート上の市場データを読み取り、コードを適用して、注文を自動的に発注、変更、決済します。MQL5言語で書かれ、ターミナルが動いている間だけ有効です。EAはルールを正確に守りますが、それは悪いルールであっても同じです。
本記事では、EAとは何か、インジケーターやスクリプトとの違い、どのように動くか、動作を左右する制約、そしてリスクの面で重要な失敗パターンを解説します。数値は算術とフィードのデータであり、予測ではありません。
MetaTrader 5におけるエキスパートアドバイザーとは?
エキスパートアドバイザーとは、MetaTrader 5の1つのチャートに取り付けられる自動売買プログラムで、MQL5で書かれ、拡張子.ex5のファイルにコンパイルされます。名前はMetaTraderに由来します。EAが「エキスパート」なのは、決まった手順を適用するという意味であり、判断力があるという意味ではありません。
EAはイベントに反応します。ターミナルは、新しい価格ティックが届いたとき、タイマーが作動したとき、取引が約定したとき、チャートイベントが発生したときにそのコードを呼び出します。各呼び出しで、プログラムは口座を読み取り、保有ポジションを確認し、サーバーに取引リクエストを送ることができます。プラットフォーム、銘柄、口座モードについてはMT5におけるヘッジングとネッティングの違いで説明しています。
この概念を定める点は2つあります。
- 表示するだけでなく、行動します。 インジケーターは線を描きますが、EAはそれに基づいて取引できます。
- チャートと銘柄に結び付いています。 1つのEAは1つのチャートで動きます。同じロジックで5銘柄を取引するには、トレーダーが5回取り付けるか、複数銘柄を扱うように書かれたEAを使います。
エキスパートアドバイザーとインジケーター、スクリプトの違い
EAは自力で繰り返し取引し、スクリプトは1回実行されて終了し、インジケーターは計算して描画するだけで注文は出せません。3つはいずれもMQL5のプログラムで、ナビゲーターパネルに並んでいるため混同されがちです。
| プログラムの種類 | 役割 | 実行 | 注文の送信 |
|---|---|---|---|
| エキスパートアドバイザー | データを読み、ルールを適用し、ポジションを管理する | 取り外すまで、イベントのたびに継続的に | 可能 |
| スクリプト | 全ポジションの決済など、1つの作業を実行する | 1回で終了 | 可能 |
| インジケーター | 値を計算してチャートに描画する | 価格の更新に合わせて継続的に | 不可 |
この違いは実務で重要です。全取引を決済するスクリプトは、1回きりの操作です。全取引を決済してから新しい取引を建てるEAは、戦略です。移動平均線のインジケーターは数値を示しますが、それをクロスしたら買うEAは、結果を伴うルールです。
EAは順を追ってどう動くのか?
EAはループに従います。イベントを受け取り、市場と口座の状態を読み取り、条件を判定し、条件が真なら取引リクエストを送ります。このループに裁量が入る余地はありません。
単純なEAを平易な手順にすると次のようになります。
- EURUSDに新しいティックが届きます。
- EAは価格と、たとえば移動平均線の直近2本の終値を読み取ります。
- すでにポジションがあるかを、記憶ではなくポジション一覧で確認します。
- エントリー条件が真でポジションがなければ、ロットサイズを計算します。
- ストップロスとテイクプロフィットを付けた成行注文を送ります。
- サーバーが、約定、拒否、または異なる価格での約定のいずれかを返します。EAはそれぞれに対応しなければなりません。
多くのプログラムが失敗するのは手順6です。送信した価格と約定した価格は異なることがあり、これはすべての成行注文が負うスリッページです。応答を確認しないEAは、リクエストが拒否されたのに、ポジションが建っていると思い込むことがあります。
EAが動くために必要なものは?
EAが動くのは、4つの条件が同時に満たされている間だけです。ターミナルが起動している、サーバーに接続されている、ターミナルで自動売買がオンになっている、EA自体の設定で取引が許可されている、の4つです。どれか1つが欠けると、EAは取引できません。
| 必要条件 | 欠けた場合に起きること |
|---|---|
| コンピューターでターミナルを起動している | ターミナルを閉じるか、コンピューターがスリープするとEAは止まる |
| 取引サーバーへの接続 | EAは価格を読めず、注文も送れない。保有ポジションはサーバー上に残る |
| ツールバーの自動売買ボタンが有効(MetaTrader 5ヘルプの表記) | EAは読み込まれるが、取引は許可されない |
| EA自体のプロパティで取引許可にチェックを入れている | 他のEAが取引していても、そのEAだけは取引しない |
EAが建てたポジションは、プログラムではなく口座に属します。EAが止まっても、ポジションは建ったままで、そのストップロスとテイクプロフィットの水準はサーバーに残ります。また、ブローカーは取引サーバー側で、口座の自動売買を無効にすることもできます(MQL5ドキュメント、取引許可)。EAが止まったときに止まるのは、コードが動かすトレーリングのような、EA自身が行っていた管理です。これはトレーリングストップとはで説明している、ターミナルへの依存と同じものです。
戦略を1日中動かしたいトレーダーは、自宅のコンピューターを切ってもEAが動き続けるように、仮想専用サーバー(VPS)上にターミナルを置くことがよくあります。VantoはFX VPSのページで、これを説明しています。これが解決するのは稼働時間の問題だけで、EAが行うことを変えるものではありません。
EAにはどんな制約があるか?ロットサイズと銘柄のルール
EAは人間と同じ注文ルールに従わなければなりません。銘柄ごとの最小数量、数量の刻み、最大数量、そしてロットをエクスポージャーに変える契約サイズです。これらの範囲外の注文は拒否されるため、コードは取引するすべての銘柄でこれらを確認する必要があります。
下の表はVantoのフィードに基づきます。最小注文の想定元本は、最小数量に契約サイズを掛けたものです。
| 銘柄 | 契約サイズ | 最小数量 | 数量の刻み | 最大数量 | 最小注文の想定元本 |
|---|---|---|---|---|---|
| EURUSD | 100,000 EUR | 0.01 | 0.01 | 200 | 1,000 EUR |
| USDJPY | 100,000 USD | 0.01 | 0.01 | 200 | 1,000 USD |
| XAUUSD | 100 oz | 0.01 | 0.01 | 20 | 1 oz |
| UKOIL | 100 bbl | 0.1 | 0.1 | 100 | 10 bbl |
| US30 | 1 | 0.01 | 0.01 | 100 | 0.01 インデックス単位 |
| BTCUSD | 1 BTC | 0.01 | 0.01 | 5 | 0.01 BTC |
出典:Vantoフィードのスナップショット、2026年10月10日。契約サイズと数量の上限は変更されることがあります。最新の仕様をご確認ください。
ここから2つのことが言えます。第一に、数量の刻みを0.01に固定したEAは、刻みが0.1のUKOILで無効なサイズを送ってしまいます。第二に、同じロット数でも銘柄ごとにエクスポージャーは異なります。FX用のEAの「0.1ロット」という設定をゴールドにそのまま移すとリスクが変わるのは、このためです。契約サイズとその影響は取引における契約サイズとはで、最小注文は取引における最小ロットサイズとはで扱っています。
EAはどうやって取引サイズを決めるのか?計算例
ほとんどのEAは、2つのサイズ決定方法のどちらかを使います。固定ロットか、トレーダーがその取引で許容する損失額から計算したロットです。後者にはストップ距離と1 pipの価値が必要です。
EURUSDでは、1ロットの1 pipの価値はUSD 10(100,000 x 0.0001)です。口座がUSD 5,000、1取引あたりのリスクが1%、ストップロスが25 pipsの場合を考えます。
- リスク金額:5,000 x 0.01 = USD 50
- 1ロットあたりのリスク:25 pips x USD 10 = USD 250
- ロットサイズ:50 / 250 = 0.20ロット
固定ロット0.20の場合、口座がUSD 5,000の間は同じ25 pipsのストップで常にUSD 50のリスクですが、口座がUSD 3,333に減ると1.5%、USD 7,143に増えると0.7%のリスクになります。計算する方法は、ロットを変えることで割合を一定に保ちます。固定する方法は、ロットを一定に保ち、割合が変動するに任せます。ストップとリワードの関係はリスクリワード比率とはにあります。
計算したロットが数量の刻みの倍数でない場合、EAは刻みに合わせて切り捨てなければなりません。そうしないと注文は拒否されます。切り捨てるとリスクがわずかに変わりますが、より大きな刻みでのバックテストでは現れないことがあります。
バックテストは何を示し、何を見落とすのか?
バックテストは、MT5のストラテジーテスターに保存された価格履歴でEAを動かし、EAが何をしたかを報告します。そのため、ロジックを過去に照らして検証することはできますが、将来については何も証明しません。結果は、データの質と、テストが仮定するコストに左右されます。
テストと実際の取引の間に生じる、よくある差は次のとおりです。
- スプレッド。 テストはモデル化されたスプレッドを使います。実際のスプレッドは、取引におけるスプレッドとはで説明しているように、ニュースの前後やロールオーバー時に広がります。
- スリッページと拒否。 テスターは約定の遅延を再現できます(MetaTrader 5ヘルプ、ストラテジーテスター)が、実際の注文は実際の流動性に対して約定し、別の価格で約定したり、約定しなかったりすることがあります。
- スワップ。 ポジションを持ち越すEAはスワップを支払うか受け取り、週のうち1日は3倍で課されます。テストのスワップは、口座の現在のレートと一致しないことがあります。取引におけるスワップとはをご覧ください。
- 過剰最適化。 履歴の特定の期間に合うまで調整したEAは、その期間では優れて見えても、新しいデータでは失敗することがあります。その期間のノイズを学習してしまったためです。
テストはコードのストレステストであり、バグを見つけるのに役立ちます。将来の利益の証拠としては弱く、証明として扱うトレーダーは、レポートが示すより大きなリスクを取ることになります。
EAはいつ失敗するのか?よくある間違い
EAは予測しやすい形で失敗し、その大半は技術ではなくルールに由来します。以下の最初の4つが、最も大きな損失につながるものです。
1. 負けた後の倍掛け。 負けるたびにロットを増やすルール(マーチンゲール)は、口座が尽きる前に勝ちが来ることに依存します。0.01ロットから始めて負けるたびに2倍にすると、10回目の取引のロットは0.01 x 2^9 = 5.12ロットで、10回の取引の合計は0.01 x (2^10 - 1) = 10.23ロットになります。各取引がEURUSDで20 pips負けると、累積損失は10.23 x 20 x USD 10 = USD 2,046で、これはUSD 2のリスクで始めた最初の取引から生じます。この連続は、各段階で使用済み証拠金も増やし、ストップアウトを近づけます。水準はストップアウト水準とは、証拠金の仕組みは取引における証拠金とはにあります。
2. 上限のないナンピン。 含み損のポジションに買い増しし続けるEAには、ストップがありません。同じ警告は、スケールトレーディングで扱うグリッド型やスケール型のEAにも当てはまります。
3. コードにストップロスがない。 自身のシグナルでのみ取引を決済するプログラムは、その決済をターミナルと接続に頼っています。サーバー上に置いたストップロスは、切断されても残ります。
4. 銘柄ごとにポジションは1つと思い込む。 ヘッジング口座では1つの銘柄に複数のポジションを持てるため、ネッティング向けに書かれたコードは、決済するつもりで反対ポジションを建ててしまうことがあります。詳細はMT5におけるヘッジングとネッティングの違いにあります。
5. ニュースの間も放置して稼働させる。 主要な発表の前後ではスプレッドが広がり、スリッページが増えます。EAは、カレンダーを確認するように書かれていない限り、発表が近いことを知りません。
6. レバレッジの軽視。 レバレッジは利益と同様に損失も拡大し、余剰証拠金を読まずにロットを決めるEAは、口座が持ちこたえられる以上のエクスポージャーを建てることがあります。最大レバレッジは資産クラスごとに異なり、FXと金属は1:500、株価指数とエネルギーは1:100、暗号資産は1:10です。マージンコールは100%、ストップアウトは50%です。
EAはどこから入手するのか?
EAの入手元は3つです。トレーダー自身がコードを書く、完成したプログラムを購入またはダウンロードする、開発者に依頼する、のいずれかです。それぞれリスクが異なり、どの場合でも、プラットフォームが戦略を審査することはありません。
| 入手元 | 得られるもの | 主なリスク |
|---|---|---|
| MetaEditorで自作する | ルールとソースコードを完全に管理できる | バグと、MQL5を学ぶ時間 |
| マーケットやダウンロード | コンパイル済みの.ex5ファイル。ソースコードがない場合もある | 販売者の成績は第三者に検証されていない |
| フリーランスの開発者 | 仕様に沿ったカスタムコード | 品質にばらつきがあり、仕様にエラー処理を含める必要がある |
ソースコードのないコンパイル済みファイルは、中身を調べられません。それを動かすトレーダーは、ストップロスを使っているか、負けた後に倍掛けするか、口座モードを無視していないかを確認できません。ルールの説明を読み、先にデモ口座でテストするのが最低限です。
VantoはEAを提供していません。MT5ではプラットフォームがEAを許可し、口座ではヘッジングが許可されています。戦略、そのソース、そのリスクはトレーダーのものです。ある戦略が特定の口座に適しているかどうかは、トレーダーが判断することであり、小さなサイズで実際の条件下でテストされていないEAは、未検証のものです。
自動化する前に数値を計算する
EAを動かす前に、使うロットサイズで、1回の取引と負けが続く場合のコストを計算してください。Vantoの取引計算ツールは、フィードにあるすべての銘柄のpip値、証拠金、想定元本を示すため、EAのロット設定を、トレーダーが許容する損失額と照らして確認できます。
よくある質問
エキスパートアドバイザーは、取引ロボットやボットと同じですか?
はい、日常的な使い方では同じです。「ロボット」「ボット」「EA」はいずれも、ルールに従って取引する自動プログラムを意味します。「エキスパートアドバイザー」はMetaTraderの用語で、MT4またはMT5のチャートに取り付けられるプログラムを特に指します。
EAは自動でお金を稼ぎますか?
いいえ。EAは与えられたルールを実行するだけで、結果はそのルール、コスト、市場環境に左右されます。利益が出るのと同じ速さで損失も出ることがあり、バックテストでうまくいった戦略が実際の取引で失敗することもあります。
パソコンの電源が切れていてもEAは取引できますか?
ターミナルが別の場所、たとえば仮想専用サーバー上で動いている場合に限ります。保有ポジションにすでに置いたストップロスとテイクプロフィットの水準はサーバーに残りますが、EA自身が行うロジックは、ターミナルが閉じると止まります。
エキスパートアドバイザーは何の言語で書かれていますか?
MetaTrader 5のEAは、プラットフォームに含まれるMetaEditorで、C++に似た言語であるMQL5を使って書かれます。コンパイルされたプログラムは.ex5ファイルです。MetaTrader 4は旧来のMQL4言語を使い、そのプログラムはMT5と互換性がありません。
EAはヘッジング口座で動きますか?
はい。ただし、コードは口座モードに合わせて書かれていなければなりません。ヘッジングモードでは1つの銘柄に複数のポジションを持てるため、銘柄名だけでポジションを選ぶEAは、誤ったポジションを管理してしまうことがあります。堅牢なEAは、起動時に口座モードを読み取ります。
いきなり実口座でEAを使っても安全ですか?
まずデモ口座で始め、その後に小さなロットサイズで実運用するほうが安全です。デモでは、バックテストでは再現されない実際のスプレッド、スリッページ、拒否のもとでEAがどう動くかが分かります。ただし、デモの約定は実口座の約定と同一ではありません。
リスク警告。 証券、先物、オプション、および差金決済取引は、知識と理解を要する複雑な金融商品です。価格は大きく変動することがあり、証券が無価値になることもあります。投資家は利益の可能性を上回る損失を被ることがあります。証拠金を用いた取引では、当初預け入れた金額を上回る損失が生じることがあります。過去の成績は必ずしも将来の成績を示すものではありません。本記事の情報は教育目的のみのものであり、投資助言、推奨、または金融商品の売買の申し出を構成するものではありません。CFD取引がご自身の状況に適しているかをご検討いただき、必要に応じて独立した助言を求めてください。