MT5-Quant

io.github.masdevid由 GitHub 账号 masdevid 发布v1.34.3更新于 Oct 24, 2026

MT5 strategy development with 87 tools. Backtest, optimize, debug MQL5 EAs on macOS/Linux.

概览

AI 生成的概览

本地 MCP 服务器,让助手在 macOS 或 Linux 上编译、回测、优化并分析 MetaTrader 5 的 MQL5 智能交易系统。

可以做什么
  • 编译、列出并搜索 MQL5 专家顾问、指标和脚本,并生成新项目模板
  • 运行回测与遗传优化,查询任务状态并与基线结果对比
  • 分析报告与逐笔交易:月度盈亏、回撤、连胜连亏、持仓时长、成本、手数与加仓层表现
  • 搜索、归档、标注并导出回测报告与历史记录,清理旧报告目录
  • 读取、写入、修改、比对并生成 .set 参数文件
  • 诊断 Wine、MT5 日志、进程与系统资源,并管理测试器缓存
适用场景
适合在 macOS 或 Linux 上开发或调优 MetaTrader 5 智能交易系统,希望助手自动完成编译—回测—分析流程并深入查看逐笔交易结果的场景。
运行要求
以本地二进制形式运行于 macOS 或 Linux,可通过 Cargo 或预编译发布包安装并放入 PATH;安装脚本会自动探测 Wine 与 MT5 路径。需要基于 Wine 的 MetaTrader 5 安装(含 MetaEditor 与终端数据)。可选环境变量 MT5_MCP_HOME 指定配置目录。
安装前请注意
多个工具会写入、修改或删除数据:写入 .set 文件、删除报告目录与测试器缓存、归档历史记录,并可结束 MT5 进程。它会读取 MT5 账户会话信息,并与 MetaTrader 5、Wine 等第三方软件交互,须遵守其许可条款。回测结果为历史模拟,不构成投资建议,交易存在亏损风险。

安装

在 SourceWeft 中

  1. 打开 控制台中的 MT5-Quant,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

MT5-Quant

[OpenSSF Scorecard] [CII Best Practices] [Rust CI] [crates.io] [License: MIT] [CodeQL]

MCP server for MT5 strategy development on macOS/Linux. 89 tools to compile, backtest, analyze, optimize, debug crashes, and manage MQL5 Expert Advisors — no Windows required.

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×

Why MT5-Quant

Focus: Backtest organization, reporting, and analytics — capabilities MT5 itself doesn't provide.

MT5-QuantOthers
PlatformmacOS/Linux nativeWindows only
Backtest pipeline✅ Full (compile → run → analyze)✅ Via MT5 Python package
Deal-level analytics✅ 19 dimensions, DB-backed❌
Report organization✅ SQLite (reports + deals) + search + history❌
MQL5 compilation✅ Headless (MetaEditor via Wine, no GUI)⚠️ Via GUI or terminal
Optimization✅ Background + results parsing + .set generation⚠️ Terminal only, no parsing
Crash debugging✅ Wine/MT5 diagnostics❌

Others typically run on Windows using the MetaTrader5 Python package, providing full terminal operations. MT5-Quant fills the gap: organizing backtest reports, extracting deal-level insights, and managing optimization workflows — none of which MT5 or its Python API expose natively.

Quick Start

Install MT5-Quant

Option A — Cargo (recommended, needs Rust toolchain)
bash
cargo install mt5-quant --locked
Option B — Pre-built binaries (no toolchain)
bash
# macOS Apple Siliconcurl -LO https://github.com/masdevid/mt5-quant/releases/latest/download/mcp-mt5-quant-macos-arm64.tar.gztar xzf mcp-mt5-quant-macos-arm64.tar.gz   # → mcp-mt5-quant-macos/mt5-quant
# Linux x64curl -LO https://github.com/masdevid/mt5-quant/releases/latest/download/mcp-mt5-quant-linux-x64.tar.gztar xzf mcp-mt5-quant-linux-x64.tar.gz     # → mcp-mt5-quant-linux/mt5-quant

Move the binary somewhere on your PATH (e.g. /usr/local/bin or ~/.local/bin) so clients can launch it as mt5-quant.

Option C — Register with your LLM client (copy-paste)

Claude Code

bash
claude mcp add mt5-quant -- mt5-quant --stdio

Claude Desktop — ~/Library/Application Support/Claude/claude_desktop_config.json

json
{ "mcpServers": { "mt5-quant": { "command": "mt5-quant", "args": ["--stdio"] } } }

Cursor — .cursor/mcp.json (same JSON shape as Claude Desktop)

json
{ "mcpServers": { "mt5-quant": { "command": "mt5-quant", "args": ["--stdio"] } } }

opencode — .opencode/opencode.jsonc

jsonc
{ "mcp": { "mt5-quant": { "type": "local", "command": ["mt5-quant", "--stdio"], "enabled": true } } }

Codex CLI — ~/.codex/config.toml

toml
[mcp_servers.mt5-quant]command = "mt5-quant"args = ["--stdio"]

Then finish setup (auto-detects Wine + MT5 paths):

bash
bash scripts/setup.sh

Tip: you can also just ask your LLM coding agent to do all of the above: "Please install mt5-quant from https://github.com/masdevid/mt5-quant — download or build it, run its scripts/setup.sh to auto-detect Wine and MT5 paths, and register it as an MCP server."

First Backtest

Run a backtest on MyEA from 2025.01.01 to 2025.03.31

The AI runs the full pipeline: compile → clean cache → backtest → extract → analyze.

MCP Tools (89)

Core workflow

ToolDescription
run_backtestFull pipeline: compile → clean → backtest → extract → analyze
run_backtest_quickQuick backtest using pre-compiled EA (skip compile)
run_backtest_onlyBacktest only - just extract raw trades, no analysis
launch_backtestFire-and-forget: launch MT5 backtest, poll for completion
get_backtest_statusPoll running backtest status (MT5 running, report found, elapsed time)
run_optimizationGenetic optimization (background, returns immediately)
get_optimization_resultsParse optimization results after MT5 finishes
list_jobsList all optimization jobs with status
analyze_reportRead analysis.json from any report directory
compare_baselineCompare report vs baseline, return winner/loser verdict
compile_eaCompile MQL5 EA via MetaEditor
list_expertsList all EAs in MQL5/Experts directory
list_indicatorsList all indicators in MQL5/Indicators directory
list_scriptsList all scripts in MQL5/Scripts directory
healthcheckQuick server health check
list_symbolsList all available symbols in MT5 terminal

Granular Analytics (individual analysis)

ToolDescription
analyze_monthly_pnlMonthly P/L breakdown only
analyze_drawdown_eventsDrawdown events and causes only
analyze_top_lossesWorst losing deals only
analyze_loss_sequencesConsecutive loss patterns only
analyze_position_pairsPosition hold time and P/L pairs
analyze_direction_biasBuy vs Sell performance
analyze_streaksWin/loss streak analysis
analyze_concurrent_peakPeak simultaneous positions

Use these for targeted analysis, or analyze_report to run all at once.

Deal-Level Analytics (New)

ToolDescription
list_dealsList individual deals with filters (type, profit range, volume, dates)
search_deals_by_commentFull-text search in deal comments (e.g., "Layer #3")
search_deals_by_magicFilter deals by EA magic number
analyze_profit_distributionProfit histogram: small/medium/large wins and losses
analyze_time_performancePerformance by hour of day and day of week
analyze_hold_time_distributionHold time buckets + correlation with profit
analyze_layer_performanceGrid/martingale layer analysis from comments
analyze_volume_vs_profitVolume correlation + performance by lot size
analyze_costsCommission and swap impact on profitability
analyze_efficiencyProfit per hour/day, annualized return, trade frequency

Monitoring

ToolDescription
verify_setupCheck Wine/MT5 paths, Wine version, and EA/set file counts
get_optimization_statusCheck live state of a background optimization job
list_jobsAll optimization jobs with compact status in one call

Reports & logs

ToolDescription
list_reportsCompact table of all runs with key metrics — no full analysis needed
get_latest_reportGet most recent report with optional equity chart
search_reportsFind reports by EA, symbol, date range, or profit criteria
get_report_by_idGet specific report by ID with equity chart
get_reports_summaryAggregate stats: counts, averages, pass rates
get_best_reportsTop N reports sorted by any metric (profit factor, drawdown, etc.)
search_reports_by_tagsFind reports by tags
search_reports_by_date_rangeQuery by backtest date range
search_reports_by_notesFull-text search in report notes
get_reports_by_set_fileFind all reports using a specific .set file
get_comparable_reportsFind comparable reports (same EA/symbol/timeframe)
tail_logRead last N lines of any log; filter=errors to see only failures
prune_reportsDelete old report directories, keep last N (skips _opt dirs)
promote_to_baselineWrite a history entry or report to baseline.json for compare_baseline

History & baseline

ToolDescription
archive_reportConvert one report dir → compact JSON entry in backtest_history.json, optionally delete source
archive_all_reportsBulk-archive all report dirs then optionally delete them; keeps N newest safe
get_historyQuery history with filters (EA, symbol, verdict, profit, DD) and sort options
annotate_historyAttach verdict / notes / tags to any history entry

Cache management

ToolDescription
cache_statusMT5 tester cache size breakdown by symbol — check before cleaning
clean_cacheDelete tester cache files; supports per-symbol and dry_run

Pre-flight & Validation

ToolDescription
get_active_accountGet current MT5 account session (login, server, available symbols)
check_symbol_data_statusValidate symbol has sufficient history data for date range
check_mt5_statusCheck if MT5 terminal is installed and ready
validate_ea_syntaxPre-compile syntax check without running full compilation

Debugging & Diagnostics (New)

ToolDescription
diagnose_wineCheck Wine installation, version, and prefix health
get_mt5_logsGet MT5 terminal, tester, or MetaEditor logs with filtering
search_mt5_errorsSearch logs for error patterns (crash, exception, access violation)
check_mt5_processCheck if MT5 processes are running, get PID, CPU, memory usage
kill_mt5_processKill stuck MT5 processes (force=true for wineserver)
check_system_resourcesCheck disk space, memory, CPU availability
validate_mt5_configValidate terminal.ini and tester configuration files
get_wine_prefix_infoGet Wine prefix details: Windows version, installed programs, registry
get_backtest_crash_infoInvestigate backtest failures: incomplete markers, missing deals.csv, errors
check_updateCheck if a newer version of MT5-Quant is available
updateUpdate MT5-Quant to latest release

Project Management

ToolDescription
init_projectScaffold new MQL5 project with templates (scalper/swing/grid/basic)
create_set_templateGenerate .set parameter file from EA input variables
export_reportExport backtest report to CSV, JSON, or Markdown

History & Comparison

ToolDescription
get_backtest_historyList all backtests for EA/symbol with summary metrics
compare_backtestsCompare 2+ backtest results side-by-side with analysis

.set file — read / write

ToolDescription
list_set_filesAll .set files in tester profiles dir with sweep stats and combination counts
read_set_fileParse UTF-16LE .set file → structured JSON params
write_set_fileWrite full params dict → UTF-16LE .set with chmod 444
patch_set_fileUpdate specific params in-place, return diff — replaces read→edit→write
clone_set_fileCopy .set to new path with optional overrides in one call

.set file — analysis & generation

ToolDescription
describe_sweepSwept params, value counts, and total optimization combinations
diff_set_filesSide-by-side diff of two .set files — only changed params returned
set_from_optimizationGenerate a clean backtest .set from get_optimization_results params; optionally narrow sweep

Search & Discovery

ToolDescription
search_expertsSearch EAs by name pattern across all directories
search_indicatorsSearch indicators by name pattern
search_scriptsSearch scripts by name pattern
copy_indicator_to_projectCopy indicator to project directory
copy_script_to_projectCopy script to project directory

Full schema: docs/MCP_TOOLS.md

Troubleshooting

Run verify_setup from your LLM first — it checks all paths and returns actionable hints.

For crashes or unexplained failures during backtest/compile/optimization:

  • diagnose_wine — Check Wine installation and prefix health
  • search_mt5_errors — Find crash causes in logs
  • check_mt5_process + kill_mt5_process — Detect and kill stuck processes
  • get_backtest_crash_info — Investigate failed backtest reports

Full Troubleshooting Guide →

Documentation

DocDescription
QUICKSTARTStep-by-step install, setup, and first backtest
MCP_TOOLSFull input/output schemas for all 90 tools
CONFIGConfiguration reference (config/mt5-quant.yaml)
ARCHITECTUREDesign principles and internal module layout
REMOTE_AGENTSDistribute optimization across Linux agents via Wine
TROUBLESHOOTINGPlatform-specific fixes for Wine, MT5, and backtests

Full index with reading order: docs/INDEX.md


Acknowledgements

MT5-Quant stands on the shoulders of exceptional open-source projects:

  • Rust — The language that makes zero-cost abstractions, memory safety, and fearless concurrency practical
  • Tokio — The async runtime powering all concurrent operations
  • Wine — Making MT5 execution possible on macOS and Linux without Windows licensing
  • MetaTrader 5 — MetaQuotes' trading platform (trademark of MetaQuotes Software Corp.)
  • rusqlite — Ergonomic SQLite bindings for Rust
  • serde — The serialization framework making config and report handling painless
  • scraper — HTML parsing for MT5 report extraction
  • tempfile — Secure temporary file handling

Special thanks to the Model Context Protocol (MCP) team at Anthropic for defining the standard that makes AI-powered development workflows possible.

Disclaimer

Not Financial Advice. MT5-Quant is a development and analysis tool for algorithmic trading strategies. It does not provide investment advice, trading recommendations, or guarantee profitability. All backtest results are historical simulations and do not guarantee future performance.

Use at Your Own Risk. Trading financial instruments carries substantial risk of loss. The authors and contributors of MT5-Quant accept no liability for:

  • Trading losses incurred using strategies developed or tested with this tool
  • Data loss or corruption from backtest operations
  • Bugs, errors, or incorrect analysis results
  • System crashes, Wine compatibility issues, or MT5 failures

Software Warranty. This software is provided "as-is" without warranty of any kind, express or implied, including but not limited to warranties of merchantability, fitness for a particular purpose, or non-infringement. See LICENSE for full terms.

Third-Party Software. MT5-Quant interacts with MetaTrader 5, Wine, and other third-party software. Users are responsible for complying with all applicable licenses and terms of service for these dependencies. MetaTrader is a trademark of MetaQuotes Software Corp. MT5-Quant is not affiliated with, endorsed by, or sponsored by MetaQuotes.

Regulatory Compliance. Users are responsible for ensuring their trading activities comply with applicable financial regulations in their jurisdiction. Automated trading may be restricted or require licensing in some regions.

License

MIT


来源:README.md,提交 62987f0

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v1.34.3最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分