FxRobotEasy 編集部 · 最終レビュー
What is MQL5?
MQL5 は MetaQuotes Software Corp(MetaTrader プラットフォームの開発元)によって開発・保守されています。MQL4(MT4 時代の言語)から進化し、オブジェクト指向プログラミングのサポート、マルチスレッドバックテスト、マルチアセット機能、改善されたパフォーマンスなど大幅な改善が加えられました。MQL5 ソースファイル(.mq5)は MT5 内で実行される .ex5 実行バイナリにコンパイルされます。MetaEditor IDE は MT5 と無料で提供され、デバッガー、プロファイラー、シンタックスチェックを含みます。
MQL5 言語の特徴
MQL5 構文は簡略化された C++ ライクです。変数、関数、クラス、継承、ポリモーフィズム — 主要な OOP 機能が存在します。メモリ管理は自動で、低レベル C++ に典型的な手動の割り当て/解放はありません。標準ライブラリは取引操作(CTrade クラス)、ヒストリカルデータアクセス、テクニカルインジケーター(95+ 組み込み)、多くのユーティリティ関数をカバーします。
組み込み関数は取引領域を包括的にカバー:OrderSend で取引送信、PositionGetTicket でオープンポジションのイテレーション、SymbolInfoDouble でマーケットデータクエリ、iMA/iRSI/iMACD でインジケーター計算、CopyRates でヒストリカルバーアクセス。トレーダーが書く必要のあるコードのほとんどは、これらのプリミティブを戦略ロジックに組み合わせることです。
実行モデル:MQL5 EA はイベント駆動型。OnInit は EA ロード時に 1 回実行;OnTick は新しい市場ティックが到着するたびに実行;OnTrade は取引イベント発生時に実行;OnDeinit は EA アンロード時に実行。戦略ロジックは通常 OnTick に存在します。
制限:MQL5 は MetaTrader 5 内でのみ実行 — スタンドアロン実行ファイルなし、ファイル I/O、名前付きパイプ、DLL 呼び出しを除き他のシステムとの統合なし。パフォーマンスはほとんどの戦略には十分ですが、超高頻度アプリケーションには低レベル C++ と競争できません。
MQL5 で何が作れるか
MQL5 は 4 つの主要なアーティファクト型をサポートします:
- • エキスパートアドバイザー(EA)— 取引を決定して実行する完全自動化された取引システム。主要なユースケース。
- • カスタムインジケーター — MetaTrader に組み込まれていないテクニカル分析インジケーター(例:独自オシレーター、機械学習予測オーバーレイ)。視覚分析のためにチャートに描画されるか、データソースとして EA に消費されます。
- • スクリプト — 手動実行時に特定のアクションを実行する 1 回限りのプログラム。例:全ポジションの一括クローズ、取引履歴の CSV エクスポート、計画中の取引のポジションサイジング計算。
- • ライブラリ — 複数の EA がインポートできる再利用可能なコードモジュール。共有機能(リスク管理、ニュース処理、共通ユーティリティ関数)に有用。
MQL5 学習
事前のプログラミング経験(C、C++、Java、C#)がある開発者向けの現実的な学習パス:
第 1-2 週:MQL5 公式ドキュメント(mql5.com/en/docs)を読む。各ティックでメッセージを出力する hello-world EA を実装。簡単なインジケーターを実装(例:「20 期間高値と安値をチャートに表示」)。MetaEditor、デバッガー、ストラテジーテスターに慣れる。
第 3-4 週:明確なルールセットに基づく簡単な取引 EA を実装(例:「50 EMA が 200 EMA を上抜けたらロング、+30 pips または -15 pips で利確/損切り」)。ストラテジーテスターでバックテスト。デモで 1 週間動作させて挙動を観察。
第 2-3 ヶ月:リスク管理プリミティブを実装 — 口座リスクパーセンテージからのポジションサイジング、ストップロス配置、マルチ EA 口座のマジックナンバー管理。経済カレンダー統合によるニュース処理を実装。
第 4-6 ヶ月:ウォークフォワード最適化、マルチペアカバレッジ、適切なエラー処理と再接続ロジック。一般的な落とし穴(オーバーフィット、ルックアヘッドバイアス、ブローカー固有の問題)についての MQL5 コミュニティ記事を読む。
6 ヶ月後:開発者は意味のある戦略を実装し、運用上の問題をデバッグできるはずです。プロダクショングレードの戦略エッジに到達するには、通常、言語学習とは無関係に、戦略開発経験のかなり多くの時間(1-2 年以上)が必要です。
事前のプログラミング経験がない場合、タイムラインはおよそ倍になり、MQL5 固有の知識が役立つようになる前に、プログラミングの基礎を学ぶための大幅な時間が費やされます。
MQL5 エコシステム
mql5.com の MQL5 コミュニティは、MQL5 開発リソースの中心ハブです:
ドキュメント:包括的な言語リファレンス、関数ごとの説明、コード例。無料。
記事:特定のトピックに関する 1000+ のコミュニティ執筆チュートリアル — インジケーターの実装、一般的なアルゴリズムパターン、パフォーマンス最適化。無料。
マーケットプレイス:商用および無料の EA/インジケーター/スクリプト。ベンダーは MetaQuotes コードレビュー付きで製品を販売;バイヤーは MT5 にワンクリックでインストール。最大の MQL5 製品配布チャネル。
シグナルサービス:MetaTrader に組み込まれたコピートレードプラットフォーム。トレードプロバイダー(多くの場合、自身の EA を運用する MQL5 開発者)は検証済み口座を公開;サブスクライバーは取引をコピー。
フォーラム:技術的な質問のためのアクティブな開発者・トレーダーコミュニティ。具体的な実装の質問には一般的に役立ちます。
フリーランス:MQL5 開発者を雇うためのマーケットプレイス。仕様書からのカスタム EA 開発は通常、複雑さに応じて $500-$5000。品質はさまざま;コミュニティプロファイルを通じて開発者の履歴を確認してください。
MQL5 コミュニティプロファイルはこれらのすべてのサービスにわたって識別可能で、評判の連続性を提供します。確立された MQL5 開発者(複数年の投稿履歴、検証済み製品、アクティブなフォーラム参加)は意味のある信頼シグナルを持っています。
よくある誤解
❌ 誤解: MQL5 は FX のためだけ。
✓ 実際: MQL5 は MetaTrader 5 が接続する場所ならどこでも、株式、CFD、先物、取引所商品をサポートします。多くの MQL5 EA はインデックス(NAS100、US30、SPX500)、コモディティ(金、原油)、暗号 CFD で動作します。言語はアセット非依存;ブローカーの MT5 提供が何を取引可能か決定します。
❌ 誤解: MQL5 の学習には何年もかかる。
✓ 実際: 事前の C/C++/Java 経験がある開発者にとって、MQL5 は数週間でアクセス可能。汎用言語と比較して言語は十分に文書化されており、表面積が小さいです。EA 開発の難しい部分は戦略設計とオーバーフィット回避であり、言語の複雑さではありません。
❌ 誤解: MQL5 EA は MetaTrader のオーバーヘッドで遅い。
✓ 実際: MQL5 のパフォーマンスは、セッションあたり 10-30 トレードのスキャルピングを含むリテールグレード戦略には十分。レイテンシは通常 VPS-ブローカー間のネットワークラウンドトリップ(1-5ms)が支配的で、MQL5 実行ではありません。サブミリ秒戦略(機関 HFT)には MetaTrader は適切なプラットフォームではありません — しかし制約は MetaTrader のアーキテクチャであり、言語としての MQL5 ではありません。
よくある質問
MQL5 は無料で使えますか?
MQL5 開発のコストモデル:言語、IDE、プラットフォーム、基本ドキュメントはゼロ。オプションの商用:MQL5 Marketplace 販売者手数料(製品販売で通常 20%)、MetaQuotes Virtual Hosting(MT5 VPS で $10-$15/月)、MQL5 コミュニティのプレミアム開発者アカウント(検証済み販売者ステータスで $10-$30 1 回)。非商用開発(自分の口座のための自分の EA)では、MQL5 は完全に無料です。
MQL4 と MQL5 のどちらを学ぶべき?
言語の違い:MQL4 は手続き型 C スタイル;MQL5 はオブジェクト指向 C++ スタイル。トレーディング API:MQL4 はチケット(注文ごとの識別子)を使用;MQL5 はポジション(シンボルごとの集約)を使用し、機関会計に近いです。バックテスト:MQL5 のストラテジーテスターは実質的により強力(マルチスレッド、マルチカレンシー、ティックレベルデータ)。新規開発の場合、MQL5 が戦略的選択。既存の MQL4 EA の保守または拡張の場合、MQL4 は引き続きサポート。両者間のポーティングには、単純な再コンパイルではなく、意味のあるコード書き換えが必要です。
MQL5 を Python や他の言語と統合できますか?
統合パターン:(1)MetaTrader 5 Python パッケージ — Python は市場データと取引のために MT5 ターミナルに接続できます。バックテスト分析と外部戦略開発に役立ちます。(2)ソケット通信 — MQL5 EA は外部 Python サービスへのソケット接続を開き、特徴ベクトルが出力され、予測が入力されます。HTTP のレイテンシは ~1-10ms、ローソケットは ~0.1-1ms。(3)名前付きパイプ — Windows のみの IPC メカニズムで、低レイテンシ MQL5-Python 通信用。(4)共有メモリまたはファイル I/O — 遅いがリアルタイムでないユースケースの統合は簡単。ほとんどのリテールトレーダーには、純粋な MQL5 がより簡単で十分;統合は MQL5 がインティックで処理できる以上の大幅な計算を必要とするプロダクション ML モデルを実行するときに価値があります。
MQL5 で収益性のある EA を書けるようになるまでどれくらい?
現実的なタイムライン:事前経験のあるプログラマーは 4-8 週間で機能的な EA を書けます。合理的な戦略でバックテストの収益性に到達するにはさらに 2-6 ヶ月かかります。ライブ収益性に到達する(オーバーフィット、スリッページ、レジーム変化のためバックテストとは実質的に異なる)にはさらに 6-18 ヶ月かかります。合計 1-2 年は「バックテストで収益性がある」と「実際にライブで収益性がある」の違いを学ぶことに支配されます — オーバーフィット回避、ウォークフォワード規律、レジーム認識。多くの開発者は動くコードを書けます;真のエッジを持つ戦略を仕様化できるのは少数です。
MQL5 EA をマーケットプレイスで販売できますか?
マーケットプレイス販売プロセス:(1)MQL5 コミュニティの評判を構築 — フォーラム投稿、無料製品の貢献、該当する場合は検証済み MQL5 Signals アカウント。新しい販売者アカウントは確立されたものより厳しいレビューに直面します。(2)製品を MetaQuotes コードレビューに提出 — 基本的な安全性(マルウェアなし、適切な API 使用)をチェックし、戦略エッジではありません。レビューは通常、提出キューと複雑さに応じて数日から数週間かかります。(3)価格を設定、製品説明を書く、レンタル vs 購入モデルを選択。(4)ライブ製品は各販売で手数料を獲得します。成功した EA 販売者は通常マーケットプレイスを通じて年間 $1K-$50K を獲得;トップ販売者は $100K/年を超えます。収入の分散は高い;ほとんどのマーケットプレイス EA は少数の単位しか販売しません。
関連する概念
参照(外部)

William Harris
FxRobotEasy 創設者兼リード開発者
米国シカゴ · 2021年より
- 12年以上のライブトレーディング
- 10年以上の MQL5 / MQL4 経験
- 3つのライブ検証済み Expert Advisor
- 2021年設立
“私は中学生の頃からコードでものづくりをしてきました。大学時代からトレードを始めました。この2つの世界の交差点 —— アルゴリズム、市場、そしてそれらを結ぶテクノロジー —— が、私が過去15年間を過ごしてきた場所です。FxRobotEasy は、思い描いたものが実際のブローカー口座で動作するまで諦めないと決めたときに生まれるものです。”
他のトピックを見る
トレーダーが AI や検索エンジンに尋ねる質問への百科事典的な回答。
すべての学習トピック →