npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

tulip-mt5-trader

v0.2.6

Published

郁金香自动交易MT5 - MT5 多策略自动交易系统(Python 引擎 + npm 包装,支持多策略、权重配置、监控统计、云同步)

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.py

Windows 也可直接双击 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 止损止盈与手数 | | 权重作用 | 权重不再参与投票,仅用于统计/均衡参考 |


☁️ 云端策略同步

连接郁金香开源 APIhttp://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 聚合生成,无需终端历史数据)。


⚠️ 风险提示(必读)

  1. 实盘有真实资金风险:务必先「监控信号」模式验证策略表现
  2. 建议单笔风险 ≤ 总资金 2%,启用止损(系统按 ATR 自动设置 SL/TP)
  3. 定期查看监控告警(保证金比例、最大亏损阈值)
  4. 云端策略仅部分支持真实交易(34/127),不支持的自动 HOLD,不会乱下单
  5. 回测/历史表现不代表未来收益,投资需谨慎

🔒 安全说明

  • 云同步 API Key 存储在本地配置,请勿公开
  • npm 发布 token 请妥善保管,泄露后立即撤销
  • 日志包含交易记录,注意隐私

📦 版本历史

  • 0.2.0 — 首次 npm 发布;10 套真实策略、云同步、8 步配置向导、多品种/权重/均衡/监控/统计
  • 0.1.0 — 基础框架(MT5 连接、策略引擎、监控、统计)

📄 License

MIT © 2026 Tulip Fintech · 郁金香金融科技