mcpField
M
mql-developer

mql-developer

github.com/thomaspraun開発55437 回インストール37 週間前に更新
リポジトリ

mql-developer について

mql-developerは、MetaTrader向けのMQL4・MQL5開発を支援するリファレンス兼開発ガイドです。Expert Advisor、インジケーター、取引処理、外部通信、テストに取り組む開発者向けに、分野別資料と実践上の注意点をまとめています。

主な機能

  1. 01MQL4・MQL5リファレンスの案内
  2. 02EAアーキテクチャと設計パターンの選択
  3. 03注文、ポジション、リスク管理の解説
  4. 04インジケーターとチャートUIの説明
  5. 05API通信とバックテストの解説

活用シーン

  1. 01Expert Advisorプロジェクトの設計
  2. 02取引処理とリスク制御の実装
  3. 03カスタムインジケーターやチャートパネルの開発
  4. 04Strategy Testerの設定と検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/thomaspraun/mql-developer --skill mql-developer

インストール後、Claude Code で/mql-developerを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE
README.md
references/
trading-operations.md
external-communication.md
mql5-reference.md
architecture-patterns.md
mql4-reference.md
backtesting.md
indicators-and-ui.md
security-licensing.md

詳細

MQL 開発者

MetaTrader プラットフォームでプロフェッショナルな MQL4/MQL5 開発を行うためのガイドです。

クイックリファレンスのナビゲーション

タスクに応じて適切なリファレンスファイルを読み込んでください。

タスクリファレンスファイル
MQL4 の構文、型、関数、定義済み変数references/mql4-reference.md
MQL5 の構文、OOP、CTrade、標準ライブラリreferences/mql5-reference.md
プロジェクト構成、EA アーキテクチャ、設計パターンreferences/architecture-patterns.md
注文、ポジション、リスク管理、トレーリングストップreferences/trading-operations.md
カスタムインジケーター、UI パネル、スクリプト、チャートオブジェクトreferences/indicators-and-ui.md
WebRequest、JSON、REST API、Node.js 連携references/external-communication.md
ストラテジーテスター、最適化、ウォークフォワード、モンテカルロreferences/backtesting.md
コード保護、ライセンス、逆コンパイル対策references/security-licensing.md
大きなリファレンスでの検索パターン

大きなファイルから目的の情報を検索するには、次のセクション見出しを grep してください。

mql4-reference.md: Data Types、Variables、Operators、Arrays、Strings、Program Types、Predefined Variables、Technical Indicator Functions、Order Management、Market Information、Account Functions、Preprocessor、Error Handling、Common Gotchas、File Operations、WebRequest、Utility Functions、Global Terminal Variables

architecture-patterns.md: Project Structure、Simple Single-File、Modular EA、State Machine、Multi-Timeframe、Multi-Symbol、Singleton、Strategy Pattern、Observer、Include File Design、Complete Templates

mql5-reference.md: OOP Features、Trade Functions、CTrade、Native Trade、Event Handlers、Standard Library、Key Enumerations、SQLite、Sockets、Resources、OpenCL

MQL4 と MQL5 の主な違い

項目MQL4MQL5
パラダイム手続き型(C に類似)完全な OOP(C++ に類似)
取引モデル注文のみ(OrderSend)注文+約定+ポジション(CTrade)
口座モデルヘッジのみネッティング+ヘッジ
インジケーターバッファー最大 8最大 512
描画スタイル基本 6 種類18 種類(基本+カラー)
標準ライブラリ最小限包括的
データベースなしSQLite を組み込み
ソケットなしTCP+TLS
OpenCLなしあり

基本的なワークフロー

エキスパートアドバイザーの作成
  1. ストラテジーのシグナルロジック(エントリー/エグジット条件)を定義します
  2. アーキテクチャを選択します。シンプル(単一ファイル)またはモジュール型(Signal + Trade + Risk + Filter)です
  3. 適切なエラー処理と再試行を含めて、注文/ポジション管理を実装します
  4. リスク管理(ポジションサイズ、ドローダウン制御)を追加します
  5. フィルター(時間、スプレッド、ボラティリティ)を追加します
  6. ストラテジーテスターでバックテストを行います(まず Open Prices、その後 Every Tick)
  7. ウォークフォワード検証とモンテカルロテストを行います
カスタムインジケーターの作成
  1. ウィンドウを選択します。indicator_chart_window または indicator_separate_window です
  2. バッファーとプロットを定義します(MQL5 では indicator_buffers、indicator_plots)
  3. prev_calculated を使った効率的な再計算を行う OnCalculate() を実装します
  4. 描画スタイル、色、ラベルを設定します
  5. 必要に応じてマルチタイムフレームデータを処理します
外部 API との通信
  1. Tools > Options > Expert Advisors で URL をホワイトリストに登録します
  2. REST 呼び出し(POST/GET)には WebRequest() を使います
  3. JSON を手動で構築します(MQL にネイティブ JSON 機能はありません)
  4. 文字列関数でレスポンスを解析します
  5. ポーリングパターンには EventSetTimer() を使います
  6. ネットワークエラーには再試行で対処します

重大な注意点

  • 浮動小数点数の比較:浮動小数点数に == を使用しないでください。NormalizeDouble() または許容誤差を使用してください
  • 4桁ブローカーと5桁ブローカー:1ピップは、4桁では1ポイント、5桁では10ポイントです。必ず検出してください
  • 注文を決済する際の逆順ループ:注文を決済する場合は、OrdersTotal()-1 から 0 まで反復してください(MQL4)
  • ECNブローカー:2段階の処理が必要な場合があります。OrderSend() を SL/TP なしで呼び出してから、OrderModify() を呼び出してください
  • 注文のフィリング方式(MQL5):必ず SYMBOL_FILLING_MODE で検出し、FOK をハードコードしないでください
  • WebRequest の制限:同期処理でブロックされます。インジケーターやストラテジーテスターでは利用できません
  • 取引コンテキストがビジー状態(MQL4):端末ごとに、同時に取引できる EA は1つだけです
  • 配列のインデックス:シリーズ配列では、インデックス 0 が最新のバーです。ArraySetAsSeries() を使用して制御してください

プロジェクト構成(推奨)

MQL5/                          (or MQL4/)
├── Experts/
│   └── MyEA/
│       └── MyEA.mq5           // EA entry point
├── Indicators/
│   └── MyIndicator.mq5
├── Scripts/
│   └── MyScript.mq5
├── Include/
│   ├── Core/
│   │   ├── CTradeManager.mqh  // Order execution + retries
│   │   ├── CRiskManager.mqh   // Position sizing + drawdown
│   │   └── CSignalBase.mqh    // Signal interface
│   ├── Communication/
│   │   ├── CHttpClient.mqh    // WebRequest wrapper
│   │   └── CJsonHelper.mqh    // JSON build/parse
│   ├── UI/
│   │   └── CPanel.mqh         // Trading panel
│   └── Utils/
│       ├── CTimeFilter.mqh    // Session/time filters
│       └── CSymbolHelper.mqh  // Multi-market helpers
└── Libraries/

よりシンプルなプロジェクトであれば、関数をインラインで記述した単一ファイルの EA でも問題ありません。

コードスタイルの規約

  • メンバー変数には m_ を付けます(例:m_magicNumber)
  • グローバル変数には g_ を付けます(例:g_isInitialized)
  • ユーザーパラメーターには extern ではなく input を使用します
  • MQL4 では必ず #property strict を使用します
  • サーバーへ送信する前に、すべての価格を正規化します:NormalizeDouble(price, Digits)
  • OrderSelect()、OrderSend()、取引操作の戻り値を必ず確認します
  • マジックナンバーにはコメントを付け、分かりにくい取引ロジックを説明します

公式ドキュメント

コメント