tulip-mt5-trader
v0.2.6
Published
郁金香自动交易MT5 - MT5 多策略自动交易系统(Python 引擎 + npm 包装,支持多策略、权重配置、监控统计、云同步)
Maintainers
Readme
郁金香自动交易MT5 · tulip-mt5-trader
Tulip Fintech · 多策略 MT5 自动交易系统 Python 引擎 + npm 发行 · 支持多策略、权重配置、监控统计、云同步
一款开箱即用的 MT5 多策略自动交易系统:8 步交互式配置向导,内置 10 套精品交易策略(含真实信号逻辑),支持多品种、多策略权重投票、账户监控、交易统计与云端策略库同步。既可仅监控信号,也可实盘真实下单。
✨ 核心特性
| 特性 | 说明 |
|------|------|
| 8 步交互配置 | MT5 连接 → 品种 → 手数 → 策略 → 云同步 → 云端策略 → 均衡 → 模式 |
| 10 套真实策略 | 趋势/突破/动量/回归四大类,基于 tulip-fintech-ai 策略库移植 |
| 多品种支持 | XAUUSD/EURUSD/GBPUSD/AUDUSD/USDCHF/USDCAD/USDJPY,自动识别 c/m 后缀 |
| 策略权重投票 | 多策略并行计算,加权聚合产出唯一决策,权重自动均衡 |
| 三模式运行 | 监控信号 / 实盘执行(带二次确认警告) |
| 云端策略同步 | 连接郁金香开源 API,拉取 127+ 套策略,按信号类型真实交易 |
| 账户健康监控 | 保证金比例告警、最大亏损告警、定时轮询 |
| 交易统计报表 | 胜率/盈亏/回撤/策略排名,JSON/CSV 导出 |
| TULIP 品牌横幅 | 橙/红/粉三色渐变,监控/实盘模式区分显示 |
🚀 快速开始
方式一:npm 安装(推荐)
# 全局安装(自动安装 Python 依赖)
npm install -g tulip-mt5-trader
# 启动
tulip-trader或作为项目依赖:
npm install tulip-mt5-trader
npx tulip-trader方式二:源码运行
# 1. 克隆/进入项目目录
cd tulip_mt5_trader
# 2. 安装 Python 依赖
pip install -r requirements.txt
# 3. 启动
python run_live.pyWindows 也可直接双击 start.bat。
前置条件
- Python 3.9+(含
pip) - MetaTrader 5 终端已安装并登录交易账户
- Node.js 14+(仅 npm 安装方式需要)
🎮 8 步交互配置向导
启动后进入交互式配置,每个步骤顶部显示品牌标识,支持方向键操作:
| 步骤 | 内容 | 操作方式 |
|------|------|----------|
| 1/8 | MT5 终端连接 | 自动检测终端与账户,未登录则报错退出 |
| 2/8 | 选择交易品种 | ↑↓ 移动 + 空格 勾选,多选,显示实时价格 |
| 3/8 | 交易手数 | 选择「内置手数 0.01」或「手动输入 0.01~0.10」 |
| 4/8 | 选择交易策略 | 10 套郁金香精品默认全选,可 空格 增减 |
| 5/8 | 云端策略同步 | 选择「是/否」;「是」输入 API Key 拉取 127+ 套策略 |
| 6/8 | 选择云端策略 | 全量分页显示(←→ 翻页),默认勾选前 3 个 |
| 7/8 | 策略均衡配置 | 最大同时开启策略数(默认 10) |
| 8/8 | 运行模式选择 | 「监控信号」或「实盘执行」(需输入 YES 二次确认) |
交互按键
↑↓ 移动光标 空格 勾选/取消
←→ 翻页(多页时) 回车 确认
ESC 取消/用默认值模式说明
| 模式 | 行为 | 适用场景 | |------|------|----------| | 监控信号 | 计算并显示策略信号,不下单 | 首次使用、策略验证 | | 实盘执行 | 按聚合信号真实下单(含 SL/TP) | 充分验证后的正式交易 |
⚠️ 实盘模式有二次确认(输入
YES),顶部横幅变为红色[WARN]提示。
📊 内置 10 套精品策略
基于 tulip-fintech-ai/strategies_lib.json 参数移植,全部为真实可交易的信号逻辑(纯 Python 指标计算,无外部依赖)。
趋势跟踪类
| 策略 | 周期 | 信号逻辑 | 风控 | |------|------|----------|------| | 趋势-均线-H1-01 | H1 | MA12/35 金叉死叉 + H4 MA100 定势 | ATR×1.2 / ×2.4 | | 趋势-均线-M15-02 | M15 | MA5/20 交叉 + H1 MA50 顺势 | ATR×1.0 / ×2.0 | | 趋势-均线-H4-02 | H4 | 三重均线 8/24/72 过滤 | ATR×1.5 / ×3.0 | | 趋势-MACD-H1-12 | H1 | MACD 柱穿越 0 轴 + MA50 顺势 | ATR×1.2 / ×2.4 |
突破类
| 策略 | 周期 | 信号逻辑 | 风控 | |------|------|----------|------| | 趋势-唐奇安-H1-01 | H1 | 唐奇安 20 根高低突破 + MA50 | ATR×1.5 / ×3.0 | | 趋势-唐奇安-M30-01 | M30 | 唐奇安 15 根突破 + 美盘时段(15-24点) | ATR×1.5 / ×3.0 |
动量类
| 策略 | 周期 | 信号逻辑 | 风控 | |------|------|----------|------| | 动量-RSI动量-M30-01 | M30 | RSI14 穿越 50 + H1 MA50 | ATR×1.2 / ×2.4 |
回归类
| 策略 | 周期 | 信号逻辑 | 风控 | |------|------|----------|------| | 回归-RSI反转-M15-01 | M15 | RSI21 温和反转 35/65 | ATR×1.0 / ×1.6 | | 回归-布林-M15-01 | M15 | 布林 2.5 倍宽轨回归 | ATR×1.0 / ×2.0 | | 回归-RSI背离-M30-01 | M30 | RSI 顶/底背离反转 | ATR×1.0 / ×1.8 |
多策略独立执行机制
多策略同时启用、并行独立交易(不做投票聚合):每个策略各自计算信号、各自独立下单,互不影响。
实时行情(K线) ──► RSI策略 ──► 信号(BUY) ──► 独立下单(含 SL/TP)
──► MACD策略 ─► 信号(SELL) ─► 独立下单(含 SL/TP)
──► 布林策略 ─► 信号(HOLD) ─► 观望| 特点 | 说明 | |------|------| | 并行独立 | 每个策略生成自己的信号并各自下单 | | 互不干扰 | 策略 A 触发 BUY 不影响策略 B 触发 SELL | | 信号去重 | 同一策略在同一根 K 线内只触发一次,避免重复下单 | | 独立风控 | 每个信号带各自的 ATR 止损止盈与手数 | | 权重作用 | 权重不再参与投票,仅用于统计/均衡参考 |
☁️ 云端策略同步
连接郁金香开源 API(http://106.54.204.118:5555)拉取策略库:
服务地址 : http://106.54.204.118:5555
策略库 : 127+ 套量化策略
支持品种 : XAUUSD(黄金)
支持周期 : M1 M5 M15 M30 H1 H4 D1 W1 MN1- 按
signal_type动态映射到真实交易逻辑(支持ma/macd/donchian/rsi_mom/rsi_rev/boll/rsi_div等 8+ 类,34/127 可真实交易) - 不支持的信号类型自动降级为占位(永远 HOLD,安全不乱下单)
- 启动时打印
品种 X: 共 N 策略, M 个可真实交易
🧠 多策略加权投票工作机理
勾选多个策略后,不是每个策略独立下单,而是加权投票 → 一票制决策:
实时行情(K线) ──► RSI策略 ──► Signal(BUY, 强度0.55, 权重1.5) ─┐
──► MACD策略 ─► Signal(BUY, 强度0.32, 权重2.0) ─┼─► 加权聚合 ─► 决策
──► 布林策略 ─► Signal(HOLD) ─┘ (一票制)| 场景 | 结果 | |------|------| | 多策略同向且够强 | BUY / SELL 一次下单 | | 多空信号对冲 | HOLD(观望) | | 全部弱信号 | HOLD | | 信号强度 < 0.3 | 自动过滤 |
📁 项目结构
tulip_mt5_trader/
├── package.json # npm 包装配置
├── bin/
│ ├── tulip-trader.js # npm 启动器(spawn Python 引擎)
│ └── postinstall.js # 安装后自动装 Python 依赖
├── run_live.py # 主入口:8 步交互配置 + 引擎启动
├── main.py # 备用入口(CLI 参数版)
├── config.yaml # 配置文件(MT5/品种/策略/云同步)
├── requirements.txt # Python 依赖
├── setup.py # Python 打包配置
├── core/ # 核心模块
│ ├── mt5_manager.py # MT5 连接、下单、平仓、持仓
│ ├── strategy_engine.py # 策略引擎(加权投票聚合)
│ ├── strategy_balancer.py # 策略均衡器(自动调权)
│ ├── symbol_manager.py # 多品种管理器
│ ├── monitor.py # 账户健康监控
│ ├── statistics.py # 交易统计报表
│ └── cloud_sync.py # 云端策略同步
├── strategies/
│ ├── tulip_strategies.py # 10 套真实策略 + 指标库
│ ├── base.py # 策略基类(Signal/Stats)
│ ├── formats.py # 策略序列化格式
│ └── repo.py # 策略仓库
├── utils/helpers.py # 日志/路径工具
├── data/ # 统计/云同步数据
├── logs/ # 运行日志
└── start.bat / 启动.bat # Windows 双击启动🛠️ 开发与扩展
添加新策略
继承 BaseStrategy 并实现 generate_signal:
from strategies.base import BaseStrategy, Signal
class MyStrategy(BaseStrategy):
def __init__(self, **kwargs):
config = {"threshold": 0.5}
config.update(kwargs)
super().__init__(name="MyStrategy", config=config, weight=kwargs.get("weight", 1.0))
def generate_signal(self, data) -> Signal:
price = float(data.get("close_price", 0))
if price > self.config["threshold"]:
return Signal(action="BUY", strength=0.8, price=price,
stop_loss=price * 0.98, take_profit=price * 1.04,
volume_lots=self.config.get("lots", 0.01), reason="触发买入")
return Signal(action="HOLD", strength=0, price=price, reason="观望")指标库
strategies/tulip_strategies.py 内置纯 Python 指标实现:
SMA / EMA / MACD / RSI(Wilder) / ATR / 唐奇安通道 / 布林带支持 M15/M30/H1/H4 周期(H1/H4 自动用 M15 聚合生成,无需终端历史数据)。
⚠️ 风险提示(必读)
- 实盘有真实资金风险:务必先「监控信号」模式验证策略表现
- 建议单笔风险 ≤ 总资金 2%,启用止损(系统按 ATR 自动设置 SL/TP)
- 定期查看监控告警(保证金比例、最大亏损阈值)
- 云端策略仅部分支持真实交易(34/127),不支持的自动 HOLD,不会乱下单
- 回测/历史表现不代表未来收益,投资需谨慎
🔒 安全说明
- 云同步 API Key 存储在本地配置,请勿公开
- npm 发布 token 请妥善保管,泄露后立即撤销
- 日志包含交易记录,注意隐私
📦 版本历史
- 0.2.0 — 首次 npm 发布;10 套真实策略、云同步、8 步配置向导、多品种/权重/均衡/监控/统计
- 0.1.0 — 基础框架(MT5 连接、策略引擎、监控、统计)
📄 License
MIT © 2026 Tulip Fintech · 郁金香金融科技
