mtdata
mtdata 是MetaTrader 5(MT5)的Windows首个研究和自动化工具包。它将正在运行的MT5终端转变为可重复的CLI命令、MCP工具和本地Web API,用于市场数据、预测、状态检测、信号处理、风险分析和报告。
使用它来探索想法,构建可重复的研究工作流程,并将MT5数据与助手或本地应用程序集成。它是一个工具包,而不是交易策略或财务建议。
这是给谁的?
- 新手交易者/学习者: 遵循指导的工作流程(不需要定量背景)。
- 系统交易者: 原型想法,快速回溯测试,并通过CLI/MCP实现自动化。
- 数据人员: 将MT5市场数据纳入可重复的分析管道。
平台支持(重要)
- 需要Windows 运行MetaTrader 5(因此运行
mtdata反对MT5)。 - 如果您使用的是macOS/Linux,请运行
mtdata在一个 Windows虚拟机或Windows计算机 并远程连接(MCP/Web API)。 - Python 3.14是支持的运行时 对于此仓库中设置的打包依赖关系。
安全第一
mtdata包括trade_*命令可以 下/修改/关闭实际订单 在当前登录MT5的帐户上。- 使用一个 模拟帐户 直到您了解工具和代理设置。
- mtdata中没有内置的“纸质交易”模式;使用MT5模拟账户进行模拟执行。
- 当交易指令支持
--dry-run true,在向MT5发送任何内容之前预览操作。 - 如果你只想做研究,坚持下去
data_*,forecast_*,regime_*,patterns_*,以及report_*命令。
能力
| 类别 | 功能 | 关键工具 |
|---|---|---|
| 数据 | 从MT5获取蜡烛、刻度、市场深度和排名市场扫描 | data_fetch_candles, data_fetch_ticks, market_depth_fetch, market_ticker, symbols_top_markets |
| 预测 | 使用经典、ML或基础模型预测价格路径 | forecast_generate, forecast_backtest_run |
| 波动性 | 估计未来价格变动幅度 | forecast_volatility_estimate |
| 政权 | 检测趋势、范围或危机市场状态 | regime_detect |
| 障碍 | 通过模拟计算TP/SL命中概率 | forecast_barrier_prob, forecast_barrier_optimize |
| 模式 | 识别烛台、图表、艾略特和分形图案 | patterns_detect |
| 指标 | 计算100+技术指标 | data_fetch_candles --indicators |
| 去噪 | 平滑的价格数据揭示趋势 | --denoise 选项 |
| 时间的 | 发现会话效果和季节模式 | temporal_analyze |
| 多资产 | 探索交叉符号相关性、协整性和领先/滞后关系 | correlation_matrix, cointegration_test, causal_discover_signals |
| 扫描 | 按点差、价格变动、交易量、RSI和SMA筛选MT5交易品种 | symbols_top_markets, market_scan |
| 策略回溯测试 | 在MT5蜡烛上回溯简单的SMA/EMA/RSI交易规则 | strategy_backtest |
| 交易 | 下订单、管理头寸、审查已实现的绩效并估算尾部风险 | trade_place, trade_close, trade_journal_analyze, trade_var_cvar_calculate |
| 异步培训 | 在后台运行重量级预测训练并重用缓存的模型 | forecast_train, forecast_task_status, forecast_task_wait, forecast_models_list, forecast_models_delete |
| 新闻 | 与某个符号相关的统一、排名的新闻+经济日历 | news |
| 基础 | 美国股市数据、筛选、新闻、日历 | finviz_fundamentals, finviz_screen, finviz_calendar |
| 选项 | 期权链和QuantLib壁垒定价 | options_chain, options_barrier_price |
笔记:
market_depth_fetch仅在以下情况下启用MTDATA_ENABLE_MARKET_DEPTH_FETCH=1您的代理提供Level 2/DOM数据。- 期权链工具取决于雅虎财经端点的可用性。纯QuantLib计算器
options_barrier_price独立于外部期权链数据工作。
快速开始
先决条件: Windows+Python 3.14+MetaTrader 5已安装并正在运行(建议使用模拟账户)。要在Windows上进行完整安装,请同时安装Visual Studio Build Tools 2022 用C进行桌面开发++ 工作量。
# Optional but recommended: create an isolated conda environment first
conda create -n mtdata python=3.14 -y
conda activate mtdata
# Lean core install
pip install -e .
# Full stable research/web install
pip install -r requirements.txt
# Verify MT5 connection (lists symbols from the running terminal)
mtdata-cli symbols_list --limit 5
# Scan the current MT5 watchlist for top markets
mtdata-cli symbols_top_markets --rank-by all --limit 5 --timeframe H1
# Fetch recent candles
mtdata-cli data_fetch_candles EURUSD --timeframe H1 --limit 50
# Generate a baseline price forecast
mtdata-cli forecast_generate EURUSD --timeframe H1 --horizon 12 --method theta这些命令工作后,在下面的学习路径中浏览文档。保持第一个会话只读,除非您使用模拟账户并有意测试交易命令。
笔记:
pip install -e .现在只安装leancore包。pip install -r requirements.txt安装package-index版本中经过验证的Python 3.14堆栈,包括Chrono、StatsForecast、sktime、mlprediction、新闻嵌入和Web API。- 基于NeuralForecast的模型(
nhits,tft,patchtst,nbeatsx)未安装requirements.txt或今天任何额外的包裹;使用手动安装pip install neuralforecast torch如果你想用它们做实验。 - Conda是一种受支持的方法,可以在运行上述pip命令之前隔离安装。
- Git支持的插件保持显式:
pip install -e .[forecast-timesfm]对于TimesFM,pip install -e .[patterns-ext]为了stock-pattern,pip install -e .[news-ycnbc]对于CNBC适配器,或pip install -e .[all-git]一次完成所有事情。 - GluonTS/Lag Llama和GluonTS
gt_*方法仍然被排除在受支持的Python 3.14环境之外,因为上游运行时约束仍然不兼容。 - 可选加速器
hnswlib和tsdownsample仍然被排除在支持的默认安装之外,但通过以下方式记录了选择加入本机/源代码构建路径requirements-optional-src.txt和 docs/SETUP.md.
文档
新来的?遵循以下学习路径: docs/SETUP.md → docs/GLOSSARY.md → docs/CLI.md → docs/SAMPLE-TRADE.md (那么 docs/SAMPLE-TRADE-ADVANCED.md 深度潜水)。
入门指南
核心主题
- 预测 --价格预测方法(Theta、ARIMA、Chronos等)
- 波动性 --估算价格变动幅度
- 制度检测 --识别市场状态(趋势与范围)
- 障碍分析 --TP/SL命中概率计算
- 技术指标 --可用指标和使用情况
- 去噪 --平滑过滤器以揭示趋势
- 模式检测 --烛台和图表图案
- 时间分析 --会话效果、星期几和季节模式
外部数据和选项
- Finviz基础 --美国股市数据、筛选、新闻、日历
- 选项和QuantLib --期权链、障碍定价、赫斯顿校准
教程
参考
配置
创建一个 .env 项目根目录中的文件:
MT5_LOGIN=12345678
MT5_PASSWORD=your_password
MT5_SERVER=your_broker_server
MT5_SERVER_TZ=Europe/Athens # Or use MT5_TIME_OFFSET_MINUTES=120
# Optional trade guardrails
MTDATA_TRADE_GUARDRAILS_ENABLED=1
MTDATA_TRADE_ALLOWED_SYMBOLS=EURUSD,BTCUSD,XAUUSD
MTDATA_TRADE_MAX_VOLUME_BY_SYMBOL=EURUSD:0.50,BTCUSD:0.03
MTDATA_TRADE_MAX_RISK_PCT_OF_EQUITY=1.5mtdata读取数十个环境变量,包括MT5连接、时区、MCP/Web API服务器设置、新闻嵌入、Finviz调整、GPU加速等。看 环境变量引用 查看完整列表,包括交易护栏变量和启动器 .env 模板。
建筑
mtdata/
├── requirements-optional-src.txt # Opt-in native/source-built accelerators
├── src/mtdata/
│ ├── bootstrap/ # Runtime startup, settings, tool loading
│ ├── core/ # Tool registry, schemas, server logic, MCP tools
│ │ ├── cli/ # Dynamic CLI (argparse) + parsing/, runtime/ subpackages
│ │ ├── data/ # `data_fetch_*` and `wait_event` tools
│ │ ├── regime/ # Regime detection (HMM, BOCPD, MS-AR)
│ │ ├── report/ # `report_generate` runtime
│ │ ├── report_templates/ # Per-style report templates
│ │ ├── reports/ # Shared report helpers
│ │ └── trading/ # `trade_*` tools, account / positions / risk modules
│ ├── forecast/ # Forecasting methods, engines, model store, task manager
│ ├── patterns/ # Pattern detection algorithms
│ ├── services/ # MT5 data access, Finviz, options/news data
│ ├── shared/ # Shared constants, schemas, validators
│ └── utils/ # Shared utilities (indicators, denoising, etc.)
├── webui/ # React + Vite frontend
├── docs/ # Documentation
└── tests/ # Test suite许可证
麻省理工学院
