MT5-Quant について
MT5-Quant は macOS と Linux で MT5 の戦略開発を行う MCP サーバーで、Windows を使わずに MQL5 エキスパートアドバイザーのコンパイル、バックテスト、最適化、分析を行えます。バックテストレポートの整理、約定単位の分析、クラッシュ診断を必要とする量子取引の開発者向けです。
主な機能
- 01GUI を使わない MQL5 のコンパイルと一連のバックテスト
- 02レポートと約定データの SQLite 保存と検索
- 03複数の観点からの約定データ分析
- 04結果解析を伴うバックグラウンドの遺伝的最適化
- 05パラメータファイル (.set) の読み書きと比較
- 06Wine と MT5 プロセスの診断
活用シーン
- 01バックテスト期間中のドローダウンの原因を調査
- 02複数のバックテスト結果を比較し、パラメータを選定
- 03macOS や Linux での MT5 バックテストのクラッシュ診断
MCP 対応
MCP サーバーとして、コンパイル、バックテスト、レポート検索、パラメータファイル、診断などの 89 のツールをクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MT5-Quant
macOS/Linux での MT5 戦略開発向け MCP サーバーです。 コンパイル、バックテスト、分析、最適化、クラッシュのデバッグ、MQL5 エキスパートアドバイザーの管理を行う 89 個のツールを備えています。Windows は不要です。
You: "Backtest MyEA Jan-Mar, what caused the February drawdown?"
Claude: [compile → clean → backtest → analyze 1,847 deals]
→ Feb 14: BUY grid at L6, locking lot 1.75× base
→ Cutloss fired 17 points later
→ Recommendation: cap locking multiplier to ≤1.2×
MT5-Quant を選ぶ理由
重点分野: バックテストの整理、レポート作成、分析です。これらは MT5 自体にはない機能です。
| MT5-Quant | その他 | |
|---|---|---|
| プラットフォーム | macOS/Linux ネイティブ | Windows のみ |
| バックテストのパイプライン | ✅ 完全対応(コンパイル → 実行 → 分析) | ✅ MT5 Python パッケージ経由 |
| 取引単位の分析 | ✅ 19 の切り口、DB に保存 | ❌ |
| レポートの整理 | ✅ SQLite(レポート + 取引)+ 検索 + 履歴 | ❌ |
| MQL5 のコンパイル | ✅ ヘッドレス(Wine 経由の MetaEditor、GUI 不要) | ⚠️ GUI またはターミナル経由 |
| 最適化 | ✅ バックグラウンド実行 + 結果の解析 + .set の生成 | ⚠️ ターミナルのみ、解析機能なし |
| クラッシュのデバッグ | ✅ Wine/MT5 の診断 | ❌ |
その他のツールは、通常 Windows 上でMetaTrader5 Python パッケージを使って実行され、ターミナルの全操作に対応しています。MT5-Quant はそのギャップを埋めます。バックテストレポートの整理、取引単位の分析情報の抽出、最適化ワークフローの管理を行います。これらの機能は、MT5 にもその Python API にも標準ではありません。
クイックスタート
MT5-Quant をインストールする
オプション A — Cargo(推奨、Rust ツールチェーンが必要)
cargo install mt5-quant --locked
オプション B — ビルド済みバイナリ(ツールチェーン不要)
# macOS Apple Silicon
curl -LO https://github.com/masdevid/mt5-quant/releases/latest/download/mcp-mt5-quant-macos-arm64.tar.gz
tar xzf mcp-mt5-quant-macos-arm64.tar.gz # → mcp-mt5-quant-macos/mt5-quant
# Linux x64
curl -LO https://github.com/masdevid/mt5-quant/releases/latest/download/mcp-mt5-quant-linux-x64.tar.gz
tar xzf mcp-mt5-quant-linux-x64.tar.gz # → mcp-mt5-quant-linux/mt5-quant
クライアントが mt5-quant として起動できるよう、バイナリを PATH 上の場所(例:/usr/local/bin または ~/.local/bin)に移動します。
オプション C — LLM クライアントに登録する(コピー&ペースト)
Claude Code
claude mcp add mt5-quant -- mt5-quant --stdio
Claude Desktop — ~/Library/Application Support/Claude/claude_desktop_config.json
{ "mcpServers": { "mt5-quant": { "command": "mt5-quant", "args": ["--stdio"] } } }
Cursor — .cursor/mcp.json(Claude Desktop と同じ JSON 形式)
{ "mcpServers": { "mt5-quant": { "command": "mt5-quant", "args": ["--stdio"] } } }
opencode — .opencode/opencode.jsonc
{ "mcp": { "mt5-quant": { "type": "local", "command": ["mt5-quant", "--stdio"], "enabled": true } } }
Codex CLI — ~/.codex/config.toml
[mcp_servers.mt5-quant]
command = "mt5-quant"
args = ["--stdio"]
次に、セットアップを完了します(Wine と MT5 のパスを自動検出します)。
bash scripts/setup.sh
ヒント: 上記の作業をすべて LLM コーディングエージェントに依頼することもできます。 「https://github.com/masdevid/mt5-quant から mt5-quant をインストールしてください。ダウンロードまたはビルドし、
scripts/setup.shを実行して Wine と MT5 のパスを自動検出し、MCP サーバーとして登録してください。」
最初のバックテスト
Run a backtest on MyEA from 2025.01.01 to 2025.03.31
AI がパイプライン全体を実行します:コンパイル → キャッシュのクリア → バックテスト → 抽出 → 分析。
MCP ツール(89 個)
コアワークフロー
| ツール | 説明 |
|---|---|
run_backtest | 一連のパイプライン:コンパイル → クリーンアップ → バックテスト → 抽出 → 分析 |
run_backtest_quick | コンパイル済み EA を使用したクイックバックテスト(コンパイルをスキップ) |
run_backtest_only | バックテストのみ実行します。生の取引データを抽出するだけで、分析は行いません |
launch_backtest | 実行後は待機せずに MT5 バックテストを起動し、完了まで状態を確認します |
get_backtest_status | 実行中のバックテストの状態を確認します(MT5 の実行状況、レポートの有無、経過時間) |
run_optimization | 遺伝的最適化(バックグラウンドで実行し、すぐに戻ります) |
get_optimization_results | MT5 の終了後に最適化結果を解析します |
list_jobs | すべての最適化ジョブを状態とともに一覧表示します |
analyze_report | 任意のレポートディレクトリから analysis.json を読み込みます |
compare_baseline | レポートとベースラインを比較し、勝者/敗者の判定を返します |
compile_ea | MetaEditor で MQL5 EA をコンパイルします |
list_experts | MQL5/Experts ディレクトリ内のすべての EA を一覧表示します |
list_indicators | MQL5/Indicators ディレクトリ内のすべてのインジケーターを一覧表示します |
list_scripts | MQL5/Scripts ディレクトリ内のすべてのスクリプトを一覧表示します |
healthcheck | サーバーの簡易ヘルスチェックを行います |
list_symbols | MT5 ターミナルで利用可能なすべてのシンボルを一覧表示します |
詳細分析(個別分析)
| ツール | 説明 |
|---|---|
analyze_monthly_pnl | 月別の損益内訳のみ |
analyze_drawdown_events | ドローダウンのイベントと原因のみ |
analyze_top_losses | 損失額が最も大きい取引のみ |
analyze_loss_sequences | 連続損失のパターンのみ |
analyze_position_pairs | ポジションの保有時間と損益の組み合わせ |
analyze_direction_bias | 買いと売りのパフォーマンス |
analyze_streaks | 勝ち負けの連続記録を分析します |
analyze_concurrent_peak | 同時保有ポジション数のピーク |
対象を絞った分析にはこれらを使用するか、すべてを一度に実行するには analyze_report を使用してください。
取引単位の分析(新機能)
| ツール | 説明 |
|---|---|
list_deals | 条件(タイプ、利益範囲、数量、日付)で絞り込み、個々の取引を一覧表示します |
search_deals_by_comment | 取引コメントを全文検索します(例:「Layer #3」) |
search_deals_by_magic | EA のマジックナンバーで取引を絞り込みます |
analyze_profit_distribution | 利益のヒストグラム:小・中・大の利益と損失 |
analyze_time_performance | 時刻および曜日別のパフォーマンス |
analyze_hold_time_distribution | 保有時間の区分と利益との相関 |
analyze_layer_performance | コメントからグリッド/マーチンゲールのレイヤーを分析します |
analyze_volume_vs_profit | 数量との相関とロットサイズ別のパフォーマンス |
analyze_costs | 収益性に対する手数料とスワップの影響 |
analyze_efficiency | 時間/日あたりの利益、年率換算リターン、取引頻度 |
モニタリング
| ツール | 説明 |
|---|---|
verify_setup | Wine/MT5 のパス、Wine のバージョン、EA/set ファイル数を確認します |
get_optimization_status | バックグラウンド最適化ジョブの現在の状態を確認します |
list_jobs | すべての最適化ジョブの簡潔な状態を1回の呼び出しで表示します |
レポートとログ
| ツール | 説明 |
|---|---|
list_reports | 主要な指標をまとめた、すべての実行結果の簡潔な表を取得します。詳細な分析は不要です |
get_latest_report | オプションで損益曲線を含め、最新のレポートを取得します |
search_reports | EA、シンボル、期間、または利益条件でレポートを検索します |
get_report_by_id | IDを指定して、損益曲線を含む特定のレポートを取得します |
get_reports_summary | 件数、平均値、合格率などの集計統計を取得します |
get_best_reports | 任意の指標(プロフィットファクター、ドローダウンなど)で並べ替えた上位N件のレポートを取得します |
search_reports_by_tags | タグでレポートを検索します |
search_reports_by_date_range | バックテストの期間を指定して検索します |
search_reports_by_notes | レポートのメモを全文検索します |
get_reports_by_set_file | 特定の.setファイルを使用するすべてのレポートを検索します |
get_comparable_reports | 比較可能なレポート(同じEA/シンボル/時間足)を検索します |
tail_log | 任意のログの末尾N行を読み込みます。filter=errorsを指定すると失敗のみを表示します |
prune_reports | 古いレポートディレクトリを削除し、最新N件を保持します(_optディレクトリは除外されます) |
promote_to_baseline | baseline.jsonに履歴エントリーまたはレポートを書き込み、compare_baselineで使用できるようにします |
履歴とベースライン
| ツール | 説明 |
|---|---|
archive_report | レポートディレクトリ1つを、backtest_history.json内の簡潔なJSONエントリーに変換します。必要に応じて元のデータを削除します |
archive_all_reports | すべてのレポートディレクトリを一括でアーカイブし、必要に応じて削除します。安全な最新N件は保持します |
get_history | フィルター(EA、シンボル、判定、利益、DD)と並べ替えオプションを指定して履歴を検索します |
annotate_history | 任意の履歴エントリーに判定/メモ/タグを追加します |
キャッシュ管理
| ツール | 説明 |
|---|---|
cache_status | シンボル別にMT5テスターのキャッシュサイズの内訳を表示します。削除前の確認に使用します |
clean_cache | テスターのキャッシュファイルを削除します。シンボル別指定とdry_runに対応しています |
事前確認と検証
| ツール | 説明 |
|---|---|
get_active_account | 現在のMT5アカウントセッション(ログイン、サーバー、利用可能なシンボル)を取得します |
check_symbol_data_status | 指定期間に必要な履歴データがシンボルに十分あるか検証します |
check_mt5_status | MT5ターミナルがインストールされ、使用可能な状態か確認します |
validate_ea_syntax | コンパイル全体を実行せずに、コンパイル前の構文チェックを行います |
デバッグと診断(新規)
| ツール | 説明 |
|---|---|
diagnose_wine | Wineのインストール状況、バージョン、プレフィックスの状態を確認します |
get_mt5_logs | MT5ターミナル、テスター、またはMetaEditorのログをフィルター付きで取得します |
search_mt5_errors | クラッシュ、例外、アクセス違反などのエラーパターンをログから検索します |
check_mt5_process | MT5のプロセスが実行中か確認し、PID、CPU、メモリ使用量を取得します |
kill_mt5_process | 停止したMT5プロセスを終了します(wineserverにはforce=trueを指定します) |
check_system_resources | ディスク容量、メモリ、CPUの利用状況を確認します |
validate_mt5_config | terminal.iniとテスターの構成ファイルを検証します |
get_wine_prefix_info | Windowsのバージョン、インストール済みプログラム、レジストリなど、Wineプレフィックスの詳細を取得します |
get_backtest_crash_info | 不完全マーカー、欠落したdeals.csv、エラーなどを調べ、バックテストの失敗原因を確認します |
check_update | MT5-Quantの新しいバージョンが利用可能か確認します |
update | MT5-Quantを最新リリースに更新します |
プロジェクト管理
| ツール | 説明 |
|---|---|
init_project | テンプレート(スキャルパー/スイング/グリッド/基本)を使用して、新しいMQL5プロジェクトのひな型を作成します |
create_set_template | EAの入力変数から.setパラメーターファイルを生成します |
export_report | バックテストレポートをCSV、JSON、またはMarkdown形式でエクスポートします |
履歴と比較
| ツール | 説明 |
|---|---|
get_backtest_history | EA/シンボルのすべてのバックテストを、概要指標とともに一覧表示します |
compare_backtests | 2件以上のバックテスト結果を横並びで比較し、分析します |
.set ファイル — 読み取り/書き込み
| ツール | 説明 |
|---|---|
list_set_files | テスターのプロファイルディレクトリ内にあるすべての .set ファイルと、スイープ統計および組み合わせ数 |
read_set_file | UTF-16LE の .set ファイルを解析し、構造化された JSON パラメーターに変換 |
write_set_file | パラメーターの完全な辞書を書き込み、chmod 444 を適用した UTF-16LE の .set ファイルを作成 |
patch_set_file | 特定のパラメーターをその場で更新し、差分を返します。読み取り→編集→書き込みの代わりに使用できます |
clone_set_file | オプションの上書きを指定して、1 回の呼び出しで .set を新しいパスにコピー |
.set ファイル — 分析と生成
| ツール | 説明 |
|---|---|
describe_sweep | スイープ対象のパラメーター、値の数、最適化の組み合わせ総数 |
diff_set_files | 2 つの .set ファイルを並べて比較し、変更されたパラメーターのみを返します |
set_from_optimization | get_optimization_results のパラメーターからクリーンなバックテスト用 .set を生成します。スイープ範囲を絞り込むこともできます |
検索と検出
| ツール | 説明 |
|---|---|
search_experts | すべてのディレクトリから名前のパターンで EA を検索 |
search_indicators | 名前のパターンでインジケーターを検索 |
search_scripts | 名前のパターンでスクリプトを検索 |
copy_indicator_to_project | インジケーターをプロジェクトディレクトリにコピー |
copy_script_to_project | スクリプトをプロジェクトディレクトリにコピー |
完全なスキーマ:docs/MCP_TOOLS.md
トラブルシューティング
まず LLM から verify_setup を実行してください。すべてのパスを確認し、対応に役立つヒントを返します。
バックテスト/コンパイル/最適化中にクラッシュや原因不明のエラーが発生した場合:
diagnose_wine— Wine のインストールとプレフィックスの状態を確認しますsearch_mt5_errors— ログからクラッシュの原因を検索しますcheck_mt5_process+kill_mt5_process— 停止したプロセスを検出して終了しますget_backtest_crash_info— 失敗したバックテストレポートを調査します
ドキュメント
| ドキュメント | 説明 |
|---|---|
| QUICKSTART | インストール、セットアップ、最初のバックテストを順を追って説明します |
| MCP_TOOLS | 90 種類すべてのツールの完全な入力/出力スキーマ |
| CONFIG | 設定リファレンス(config/mt5-quant.yaml) |
| ARCHITECTURE | 設計原則と内部モジュールの構成 |
| REMOTE_AGENTS | Wine を使って Linux エージェント間で最適化を分散 |
| TROUBLESHOOTING | Wine、MT5、バックテストに関するプラットフォーム別の解決策 |
閲覧順を含む完全な目次:docs/INDEX.md
謝辞
MT5-Quant は、優れたオープンソースプロジェクトの成果の上に成り立っています。
- Rust — ゼロコスト抽象化、メモリー安全性、そして安心して使える並行処理を実現する言語
- Tokio — すべての並行処理を支える非同期ランタイム
- Wine — Windows のライセンスなしで macOS と Linux 上で MT5 を実行可能にします
- MetaTrader 5 — MetaQuotes のトレーディングプラットフォーム(MetaQuotes Software Corp. の商標)
- rusqlite — Rust 向けの使いやすい SQLite バインディング
- serde — 設定やレポートの処理を容易にするシリアライゼーションフレームワーク
- scraper — MT5 レポートの抽出に使用する HTML パーサー
- tempfile — 安全な一時ファイル処理
AI を活用した開発ワークフローを可能にする標準を定義してくださった、Anthropic の Model Context Protocol(MCP)チームに特別な感謝を申し上げます。
免責事項
投資助言ではありません。 MT5-Quant は、アルゴリズム取引戦略の開発および分析ツールです。投資助言や取引の推奨を行うものではなく、利益を保証するものでもありません。バックテストの結果はすべて過去のデータに基づくシミュレーションであり、将来の運用成績を保証するものではありません。
自己責任でご利用ください。 金融商品の取引には、重大な損失が発生するリスクがあります。MT5-Quant の作成者および貢献者は、以下について一切の責任を負いません。
- このツールで開発またはテストした戦略を使用したことによる取引損失
- バックテストの実行によるデータの損失または破損
- バグ、エラー、または不正確な分析結果
- システムクラッシュ、Wine の互換性問題、または MT5 の障害
ソフトウェア保証。 このソフトウェアは「現状有姿」で提供され、明示または黙示を問わず、商品性、特定目的への適合性、非侵害性などを含め、いかなる種類の保証もありません。詳細な条件については LICENSE をご覧ください。
サードパーティソフトウェア。 MT5-Quant は、MetaTrader 5、Wine、その他のサードパーティソフトウェアと連携します。ユーザーは、これらの依存関係に適用されるすべてのライセンスおよび利用規約を遵守する責任を負います。MetaTrader は MetaQuotes Software Corp. の商標です。MT5-Quant は MetaQuotes と提携、承認、または後援関係にありません。
規制の遵守。 ユーザーは、自身の取引活動が管轄地域で適用される金融規制を遵守していることを確認する責任を負います。一部の地域では、自動取引が制限されているか、ライセンスが必要な場合があります。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。