{"_id":"@arong8888/tulip-mt5-trader","name":"@arong8888/tulip-mt5-trader","dist-tags":{"latest":"0.3.3"},"versions":{"0.3.3":{"name":"@arong8888/tulip-mt5-trader","version":"0.3.3","description":"郁金香自动交易MT5 - MT5 多策略自动交易系统（Python 引擎 + npm 包装，支持多策略、权重配置、监控统计、云同步）","main":"bin/tulip-trader.js","bin":{"tulip-trader":"bin/tulip-trader.js"},"scripts":{"start":"node bin/tulip-trader.js","postinstall":"node bin/postinstall.js","test":"echo \"No tests yet\" && exit 0","pack:test":"npm pack --dry-run"},"keywords":["mt5","metatrader5","trading","auto-trading","quant","strategy","自动交易","量化","外汇","黄金"],"author":{"name":"Tulip Fintech","email":"tulip@fintech.example.com"},"license":"MIT","engines":{"node":">=14"},"repository":{"type":"git","url":"git+https://github.com/tulip-fintech/tulip-mt5-trader.git"},"os":["win32"],"publishConfig":{"access":"public"},"dependencies":{},"_id":"@arong8888/tulip-mt5-trader@0.3.3","bugs":{"url":"https://github.com/tulip-fintech/tulip-mt5-trader/issues"},"homepage":"https://github.com/tulip-fintech/tulip-mt5-trader#readme","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-mogqG3VSrijltlQ04t0dSgz0HgTPMwGsa0lqgKxdbCe52DswCAE1DfS9MTdJbktnBpevx4eslLi4okhHelN/1g==","shasum":"8ff4b5d3eea43305d14341c6ace1075cdd937eb8","tarball":"https://registry.npmjs.org/@arong8888/tulip-mt5-trader/-/tulip-mt5-trader-0.3.3.tgz","fileCount":55,"unpackedSize":543066,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCF0IEfyfzCgWt0rPH2+HTO7OKtoSJSx5pXVpK0nP5IIAIhAMgc1mzAcupN5+/OXjAhksa+hIgnpZDaFe8iAT69zuxo"}]},"_npmUser":{"name":"arong8888","email":"250897939@qq.com"},"directories":{},"maintainers":[{"name":"arong8888","email":"250897939@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tulip-mt5-trader_0.3.3_1787860205730_0.21449896778088529"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-27T19:50:05.574Z","0.3.3":"2026-08-27T19:50:05.894Z","modified":"2026-08-27T19:50:06.138Z"},"maintainers":[{"name":"arong8888","email":"250897939@qq.com"}],"description":"郁金香自动交易MT5 - MT5 多策略自动交易系统（Python 引擎 + npm 包装，支持多策略、权重配置、监控统计、云同步）","homepage":"https://github.com/tulip-fintech/tulip-mt5-trader#readme","keywords":["mt5","metatrader5","trading","auto-trading","quant","strategy","自动交易","量化","外汇","黄金"],"repository":{"type":"git","url":"git+https://github.com/tulip-fintech/tulip-mt5-trader.git"},"author":{"name":"Tulip Fintech","email":"tulip@fintech.example.com"},"bugs":{"url":"https://github.com/tulip-fintech/tulip-mt5-trader/issues"},"license":"MIT","readme":"# 郁金香自动交易MT5 · tulip-mt5-trader\r\n\r\n> **Tulip Fintech** · 多策略 MT5 自动交易系统\r\n> Python 引擎 + npm 发行 · 支持多策略、权重配置、全局风控、监控统计、云同步\r\n\r\n一款开箱即用的 **MT5 多策略自动交易系统**：8 步交互式配置向导，内置 10 套精品交易策略（含真实信号逻辑），支持多品种、多策略权重投票、账户监控、交易统计与云端策略库同步。既可仅监控信号，也可实盘真实下单。\r\n\r\n> **v0.3.1 运营级升级**：在 v0.3.0 工业级风控之上，新增持仓生命周期管理（反向平仓/冷却/超时/浮亏保护）、SQLite 运营报表、持仓一致性审计、进程看门狗、旧入口废弃。全文见「生产级特性」章节。\r\n\r\n---\r\n\r\n## 🏭 生产级特性（v0.3.x）\r\n\r\n| 能力 | 说明 |\r\n|------|------|\r\n| **全局风控内核** `core/risk_manager.py` | 单策略/单品种/全局持仓数三重上限、单笔手数钳制、同向净敞口上限、保证金预检（`order_calc_margin`） |\r\n| **双熔断器** | 日最大亏损熔断（跨日自动复位）+ 权益最大回撤熔断（需人工复位），熔断期间一律拒绝新开仓 |\r\n| **强制止损** | 实盘订单缺失 SL/TP 直接拒单（投票聚合信号不再裸奔） |\r\n| **滑点保护** | 信号价与现价偏差超限拒单（`max_price_deviation_pips`） |\r\n| **断线自动重连** | MT5 连接断开指数退避重连（`reconnect_attempts/delay`） |\r\n| **SQLite 持久化** `core/storage.py` | 成交明细/账户快照/熔断事件/策略状态全部落盘（WAL 模式，线程安全），崩溃可审计、可恢复 |\r\n| **持仓生命周期** `core/position_manager.py` | 信号反转自动反向平旧仓、同向加仓拦截（可配）、开仓冷却、最大持仓时长强平、浮亏止损、仓位仅认本系统 magic/comment |\r\n| **运营报表** `core/reporter.py` | `python -m core.reporter` 一键产出：策略/月度维度的净盈利、胜率、盈亏比、权益回撤；text/json/csv 导出 |\r\n| **持仓一致性审计** `core/audit.py` | `python -m core.audit --mt5`（可选 `--fix`）比对数据库与真实 MT5 持仓：缺失/孤儿持仓/按品种净敞口，崩溃后自愈补账 |\r\n| **进程看门狗** `watchdog.py` | 心跳文件（每秒写）+ PID 双判据探测死亡/挂死，`--restart-cmd` 自动拉起；`install_watchdog.ps1` 一键注册 Windows 任务计划 |\r\n| **Webhook 告警** `core/alerts.py` | 钉钉群机器人 / Server酱，熔断、拒单、成交实时推送 + 心跳文件供外部看门狗 |\r\n| **配置中心化** | `config.yaml` 全量配置 + `TULIP_*` 环境变量覆盖 + 启动时结构化校验（快速失败） |\r\n| **密钥外置** | API Key 从环境变量/配置文件读取，**已从源码移除硬编码** |\r\n| **64 项自动化测试** | `pytest tests/` 覆盖策略引擎、风控、存储、告警、配置、云同步哈希、持仓管理、报表审计、看门狗 |\r\n\r\n### 熔断决策流（实盘模式）\r\n\r\n```\r\n实时行情 ─► 策略信号 ─► 熔断检查 ─► 持仓上限 ─► 手数钳制 ─► 净敞口 ─► 保证金预检\r\n              │            │            │            │            │            │\r\n              │            ▼            ▼            ▼            ▼            ▼\r\n              │        熔断中=拒单    超限=拒单    超限=拒单    超限=拒单    不足=拒单\r\n              └──────────────┬───────────────────────────────────────┘\r\n                             ▼\r\n                   通过 = 下单(带SL/TP) ─► 成交写入 SQLite ─► 告警推送\r\n                             │\r\n                             ├─(信号反转) 反向平旧仓 ─► 冷却期\r\n                             ├─(持仓超时) 强平\r\n                             └─(浮亏超标) 止损平仓\r\n```\r\n\r\n### 持仓生命周期（`config.yaml` `position:` 段）\r\n\r\n```yaml\r\nposition:\r\n  reverse_close: true      # 信号反向时自动平掉同品种旧仓再开新\r\n  max_hold_minutes: 0      # 最大持仓时长(分), 0=不限制\r\n  floating_loss_stop: 0    # 浮亏止损(账户币种), 0=不限制\r\n  cooldown_sec: 0          # 开仓后冷却秒数, 防止频繁开平\r\n```\r\n\r\n### 运营与运维命令\r\n\r\n```bash\r\npython -m core.reporter                # 运营报表(text), --report strategy/monthly\r\npython -m core.reporter --report strategy --out csv --out-file report.csv\r\npython -m core.reporter --prune-days 30   # 顺带清理 30 天前快照/事件\r\npython -m core.audit                   # 持仓审计(库 vs MT5)\r\npython -m core.audit --mt5 --fix       # 连终端核对并自动补平仓标记\r\npython watchdog.py --check             # 只看健康状态(exit 0=健康 1=异常)\r\npython watchdog.py --check --restart-cmd \"python start_trading.py --mode monitor\"\r\npowershell -ExecutionPolicy Bypass -File install_watchdog.ps1   # 装任务计划(管理员)\r\n```\r\n\r\n### 配置文件要点（`config.yaml`）\r\n\r\n```yaml\r\nrisk:\r\n  max_open_positions: 5           # 全局最大持仓数\r\n  max_positions_per_symbol: 2     # 单品种最大持仓数\r\n  max_positions_per_strategy: 1   # 单策略最大持仓数\r\n  min_lots_per_trade: 0.01        # 手数下限\r\n  max_lots_per_trade: 0.10        # 手数上限\r\n  max_net_exposure_lots: 1.0      # 单品种同向净敞口\r\n  max_daily_loss: 100.0           # 日亏熔断(账户币种, 0=关)\r\n  max_drawdown_pct: 15.0          # 回撤熔断(%, 0=关)\r\n  require_stop_loss: true         # 强制止损\r\n  max_price_deviation_pips: 100   # 滑点保护(0=关)\r\n\r\nalerts:\r\n  enabled: false                  # true 后外发钉钉/Server酱\r\n  dingtalk_webhook: \"\"            # 环境变量 TULIP_ALERT_DINGTALK\r\n  serverchan_sendkey: \"\"          # 环境变量 TULIP_ALERT_SERVERCHAN\r\n\r\ncloud:\r\n  base_url: \"http://106.54.204.118:5555\"\r\n  api_key: \"\"                     # 环境变量 TULIP_CLOUD_API_KEY 优先\r\n```\r\n\r\n全部可用环境变量：`TULIP_MT5_TERMINAL_PATH` / `TULIP_MT5_LOGIN` / `TULIP_MT5_PASSWORD` /\r\n`TULIP_MT5_SERVER` / `TULIP_TRADING_MODE` / `TULIP_CLOUD_BASE` / `TULIP_CLOUD_API_KEY` /\r\n`TULIP_RISK_MAX_OPEN` / `TULIP_RISK_MAX_LOTS` / `TULIP_RISK_MAX_DAILY_LOSS` /\r\n`TULIP_RISK_MAX_DRAWDOWN_PCT` / `TULIP_ALERT_DINGTALK` / `TULIP_ALERT_SERVERCHAN`。\r\n\r\n### 数据库（`data/trader.db`）\r\n\r\n```\r\ntrades             成交明细(ticket/deal/方向/手数/价格/SL/TP/利润/策略)\r\naccount_snapshots  账户快照(每轮轮询, 余额/权益/保证金比例)\r\nevents             事件日志(熔断/拒单/告警, 级别+类型)\r\nkv                 状态键值(熔断状态/权益峰值/当日起始余额, 跨进程持久)\r\n```\r\n\r\n---\r\n\r\n## 📱🤖 远程与智能端 (v0.5, 2026-08-26)\r\n\r\n| 版本 | 启动 | 说明 |\r\n|------|------|------|\r\n| **手机独立 APP** | `android-app\\TulipTrader.apk` | 传输到手机安装(需允许未知来源); 首启输入电脑地址即用; 菜单键改地址; minSdk 24 (Android 7+) |\r\n| **手机 PWA 版** | `python cli.py web` → 手机浏览器开 `http://电脑IP:8899/mobile` | 备选方案: manifest+SW 可\"添加到主屏幕\" |\r\n| **飞书 Bot 版** | `python cli.py feishu` | Webhook 推送告警 + **长连接双向命令**(无需公网IP): 状态/持仓/平仓/全平/启停引擎/查策略/让诺诺说话 |\r\n| **MCP Server 版** | `python mcp_server.py` (stdio) | Claude/opencode 等 AI 直连: 10 个工具(账户/持仓/行情/统计/平仓/引擎控制/策略名单) |\r\n| **AI 自然语言控制台** | `python cli.py ai` | DeepSeek/OpenAI 兼容 API function calling; 需环境变量 `TULIP_AI_API_KEY` |\r\n| **诺诺语音提醒** | 自动触发 + `python cli.py voice 文本` | 平仓/全平/引擎启停实时播报(异步队列); SoundPlayer 单次同步播放 |\r\n\r\n### ✨ 四端深度集成 (v0.5.1)\r\n\r\n- **CLI console**: 新增 `voice 文本`(语音播报) / `feishu test`(推送测试) / `ai 问题`(AI问答) / `services`(四服务状态总览) 命令\r\n- **TUI**: 底栏显示语音开关状态; `[V]` 键切换语音、`[F]` 键发飞书测试消息\r\n- **GUI**: 新增 **AI 助手 tab**(多轮对话) 与 **服务 tab**(语音开关/飞书测试/MCP配置一键复制)\r\n- **WebUI**: 新增 `/api/voice/say` `/api/feishu/test` `/api/ai/chat`; 仪表盘内嵌 AI 聊天卡 + \"诺诺说\"按钮\r\n- **EXE**: `dist\\TulipTraderGUI.exe` (77MB, 含全部集成模块)\r\n\r\n### 飞书配置 (`config.yaml` 末尾)\r\n```yaml\r\nfeishu:\r\n  webhook_url: \"\"     # 群机器人 Webhook → 推送通道\r\n  app_id: \"\"          # 开放平台企业自建应用 → 命令通道(长连接)\r\n  app_secret: \"\"\r\n```\r\n\r\n### MCP 接入示例 (Claude Desktop)\r\n```json\r\n{ \"mcpServers\": { \"tulip-trader\": {\r\n    \"command\": \"python\",\r\n    \"args\": [\"D:\\\\郁金香金融科技\\\\实盘MT5交易\\\\tulip_mt5_trader\\\\mcp_server.py\"] } } }\r\n```\r\n\r\n### APK 构建说明\r\n`android-app\\build_apk.ps1` — 纯 SDK 工具链(javac→jar→d8→aapt2→apksigner), 无需 gradle。\r\n注意: build-tools 34.0.0 的 d8 对 `$` 内部类名 NPE + aapt2/d8 不支持非 ASCII 路径,\r\n因此代码全用顶层类、构建输出固定在 ASCII 临时目录。\r\n\r\n---\r\n\r\n## 🖥️ 多端界面 (v0.4, 2026-08-26)\r\n\r\n新增 `interface/` 包 — **TUI / GUI / WebUI / EXE 四种形态，共用一个服务层**：\r\n\r\n```\r\nTradingService (interface/service.py)   ← 唯一数据源: MT5只读直连 + SQLite WAL多读\r\n   ├── TUI   interface/tui.py    rich Live 多面板终端台\r\n   ├── GUI   interface/gui.py    CustomTkinter 深色桌面交易台\r\n   └── WebUI interface/webui.py  FastAPI + WebSocket 实时仪表盘\r\n```\r\n\r\n| 形态 | 启动 | 特点 |\r\n|------|------|------|\r\n| TUI | `python cli.py tui` | 终端多面板实时刷新；按键 Q退出/C全平/S启停引擎/M模式切换/R刷新率 |\r\n| GUI | `python cli.py gui` | 深色金融交易台：账户卡片、持仓平仓、策略勾选名单、引擎启停、事件流 |\r\n| WebUI | `python cli.py web` | http://127.0.0.1:8899 · WS每3秒推送 · 策略搜索+勾选保存名单 · 无CDN依赖可内网 |\r\n| EXE | `dist\\TulipTraderGUI.exe` | PyInstaller 单文件 33.6MB，双击即用 (`python build_exe.py` 重新打包) |\r\n\r\n**架构原则**: 服务层独立于引擎进程 —— 引擎没运行也能看账户/行情/持仓并手动平仓；\r\n策略名单修改写回 `data/live_active.json`（下次引擎启动生效），引擎启停由服务层托管。\r\n\r\n### 服务层功能清单\r\n账户总览(余额/净值/浮盈/保证金比例) · 行情快照(8品种) · 持仓管理(单仓平/一键全平) ·\r\n策略池管理(73套搜索/勾选/保存) · 引擎控制(start/stop/PID检测/心跳判活) ·\r\n统计报表(SQLite聚合) · 风控熔断状态 · 事件流 · REST API(/api/snapshot /api/close 等)\r\n\r\n---\r\n\r\n## ✨ 核心特性\r\n\r\n| 特性 | 说明 |\r\n|------|------|\r\n| **8 步交互配置** | MT5 连接 → 品种 → 手数 → 策略 → 云同步 → 云端策略 → 均衡 → 模式 |\r\n| **10 套真实策略** | 趋势/突破/动量/回归四大类，基于 tulip-fintech-ai 策略库移植 |\r\n| **多品种支持** | XAUUSD/EURUSD/GBPUSD/AUDUSD/USDCHF/USDCAD/USDJPY，自动识别 `c`/`m` 后缀 |\r\n| **策略权重投票** | 多策略并行计算，加权聚合产出唯一决策，权重自动均衡 |\r\n| **三模式运行** | 监控信号 / 实盘执行（带二次确认警告） |\r\n| **云端策略同步** | 连接郁金香开源 API，拉取 127+ 套策略，按信号类型真实交易 |\r\n| **账户健康监控** | 保证金比例告警、最大亏损告警、定时轮询 |\r\n| **交易统计报表** | 胜率/盈亏/回撤/策略排名，JSON/CSV 导出 |\r\n| **TULIP 品牌横幅** | 橙/红/粉三色渐变，监控/实盘模式区分显示 |\r\n\r\n---\r\n\r\n## 🚀 快速开始\r\n\r\n### 方式一：npm 安装（推荐）\r\n\r\n```bash\r\n# 全局安装（自动安装 Python 依赖）\r\nnpm install -g tulip-mt5-trader\r\n\r\n# 启动\r\ntulip-trader\r\n```\r\n\r\n或作为项目依赖：\r\n\r\n```bash\r\nnpm install tulip-mt5-trader\r\nnpx tulip-trader\r\n```\r\n\r\n### 方式二：源码运行\r\n\r\n```bash\r\n# 1. 克隆/进入项目目录\r\ncd tulip_mt5_trader\r\n\r\n# 2. 安装 Python 依赖\r\npip install -r requirements.txt\r\n\r\n# 3. 启动\r\npython run_live.py\r\n```\r\n\r\nWindows 也可直接双击 `start.bat`。\r\n\r\n### 前置条件\r\n\r\n- **Python 3.9+**（含 `pip`）\r\n- **MetaTrader 5 终端**已安装并**登录交易账户**\r\n- Node.js 14+（仅 npm 安装方式需要）\r\n\r\n---\r\n\r\n## 🎮 8 步交互配置向导\r\n\r\n启动后进入交互式配置，每个步骤顶部显示品牌标识，支持方向键操作：\r\n\r\n| 步骤 | 内容 | 操作方式 |\r\n|------|------|----------|\r\n| **1/8** | MT5 终端连接 | 自动检测终端与账户，未登录则报错退出 |\r\n| **2/8** | 选择交易品种 | `↑↓` 移动 + `空格` 勾选，多选，显示实时价格 |\r\n| **3/8** | 交易手数 | 选择「内置手数 0.01」或「手动输入 0.01~0.10」 |\r\n| **4/8** | 选择交易策略 | 10 套郁金香精品默认全选，可 `空格` 增减 |\r\n| **5/8** | 云端策略同步 | 选择「是/否」；「是」输入 API Key 拉取 127+ 套策略 |\r\n| **6/8** | 选择云端策略 | 全量分页显示（`←→` 翻页），默认勾选前 3 个 |\r\n| **7/8** | 策略均衡配置 | 最大同时开启策略数（默认 10） |\r\n| **8/8** | 运行模式选择 | 「监控信号」或「实盘执行」（需输入 YES 二次确认） |\r\n\r\n### 交互按键\r\n\r\n```\r\n↑↓  移动光标       空格  勾选/取消\r\n←→  翻页（多页时）  回车  确认\r\nESC 取消/用默认值\r\n```\r\n\r\n### 模式说明\r\n\r\n| 模式 | 行为 | 适用场景 |\r\n|------|------|----------|\r\n| **监控信号** | 计算并显示策略信号，**不下单** | 首次使用、策略验证 |\r\n| **实盘执行** | 按聚合信号**真实下单**（含 SL/TP） | 充分验证后的正式交易 |\r\n\r\n> ⚠️ 实盘模式有二次确认（输入 `YES`），顶部横幅变为红色 `[WARN]` 提示。\r\n\r\n---\r\n\r\n## 📊 内置 10 套精品策略\r\n\r\n基于 `tulip-fintech-ai/strategies_lib.json` 参数移植，全部为**真实可交易的信号逻辑**（纯 Python 指标计算，无外部依赖）。\r\n\r\n### 趋势跟踪类\r\n\r\n| 策略 | 周期 | 信号逻辑 | 风控 |\r\n|------|------|----------|------|\r\n| 趋势-均线-H1-01 | H1 | MA12/35 金叉死叉 + H4 MA100 定势 | ATR×1.2 / ×2.4 |\r\n| 趋势-均线-M15-02 | M15 | MA5/20 交叉 + H1 MA50 顺势 | ATR×1.0 / ×2.0 |\r\n| 趋势-均线-H4-02 | H4 | 三重均线 8/24/72 过滤 | ATR×1.5 / ×3.0 |\r\n| 趋势-MACD-H1-12 | H1 | MACD 柱穿越 0 轴 + MA50 顺势 | ATR×1.2 / ×2.4 |\r\n\r\n### 突破类\r\n\r\n| 策略 | 周期 | 信号逻辑 | 风控 |\r\n|------|------|----------|------|\r\n| 趋势-唐奇安-H1-01 | H1 | 唐奇安 20 根高低突破 + MA50 | ATR×1.5 / ×3.0 |\r\n| 趋势-唐奇安-M30-01 | M30 | 唐奇安 15 根突破 + 美盘时段(15-24点) | ATR×1.5 / ×3.0 |\r\n\r\n### 动量类\r\n\r\n| 策略 | 周期 | 信号逻辑 | 风控 |\r\n|------|------|----------|------|\r\n| 动量-RSI动量-M30-01 | M30 | RSI14 穿越 50 + H1 MA50 | ATR×1.2 / ×2.4 |\r\n\r\n### 回归类\r\n\r\n| 策略 | 周期 | 信号逻辑 | 风控 |\r\n|------|------|----------|------|\r\n| 回归-RSI反转-M15-01 | M15 | RSI21 温和反转 35/65 | ATR×1.0 / ×1.6 |\r\n| 回归-布林-M15-01 | M15 | 布林 2.5 倍宽轨回归 | ATR×1.0 / ×2.0 |\r\n| 回归-RSI背离-M30-01 | M30 | RSI 顶/底背离反转 | ATR×1.0 / ×1.8 |\r\n\r\n### 多策略独立执行机制\r\n\r\n多策略**同时启用、并行独立交易**（不做投票聚合）：每个策略各自计算信号、各自独立下单，互不影响。\r\n\r\n```\r\n实时行情(K线) ──► RSI策略 ──► 信号(BUY)  ──► 独立下单（含 SL/TP）\r\n              ──► MACD策略 ─► 信号(SELL) ─► 独立下单（含 SL/TP）\r\n              ──► 布林策略 ─► 信号(HOLD) ─► 观望\r\n```\r\n\r\n| 特点 | 说明 |\r\n|------|------|\r\n| 并行独立 | 每个策略生成自己的信号并各自下单 |\r\n| 互不干扰 | 策略 A 触发 BUY 不影响策略 B 触发 SELL |\r\n| 信号去重 | 同一策略在同一根 K 线内只触发一次，避免重复下单 |\r\n| 独立风控 | 每个信号带各自的 ATR 止损止盈与手数 |\r\n| 权重作用 | 权重不再参与投票，仅用于统计/均衡参考 |\r\n\r\n---\r\n\r\n## ☁️ 云端策略同步\r\n\r\n连接**郁金香开源 API**（`http://106.54.204.118:5555`）拉取策略库：\r\n\r\n```\r\n服务地址  : http://106.54.204.118:5555\r\n策略库    : 127+ 套量化策略\r\n支持品种  : XAUUSD（黄金）\r\n支持周期  : M1 M5 M15 M30 H1 H4 D1 W1 MN1\r\n```\r\n\r\n- 按 `signal_type` 动态映射到真实交易逻辑（内置郁金香开源 API 信号引擎\r\n  `strategies/openapi_engine.py` + `strategies/vendor/`，支持全部 44+ 类信号\r\n  类型：`tp_pvt`/`tp_obv`/`tp_fisher`/`tp_kvo`/`tp_breakout`/`tp_stoch_rsi` 等\r\n  tulip 信号族 + `ma`/`macd`/`rsi_momentum`/`boll` 等原生族，127/127 可真实交易）\r\n- 信号判定、时段过滤（`no_trade_start/end`）、regime 过滤（`regime_*_on`）\r\n  与郁金香开源 API 回测引擎逐点位一致（1500 点交叉验证 0 差异）\r\n- 启动时打印 `品种 X: 共 N 策略, M 个可真实交易`\r\n\r\n---\r\n\r\n## 🧠 多策略加权投票工作机理\r\n\r\n勾选多个策略后，**不是每个策略独立下单**，而是加权投票 → 一票制决策：\r\n\r\n```\r\n实时行情(K线) ──► RSI策略 ──► Signal(BUY, 强度0.55, 权重1.5) ─┐\r\n              ──► MACD策略 ─► Signal(BUY, 强度0.32, 权重2.0) ─┼─► 加权聚合 ─► 决策\r\n              ──► 布林策略 ─► Signal(HOLD)                    ─┘   (一票制)\r\n```\r\n\r\n| 场景 | 结果 |\r\n|------|------|\r\n| 多策略同向且够强 | BUY / SELL 一次下单 |\r\n| 多空信号对冲 | HOLD（观望） |\r\n| 全部弱信号 | HOLD |\r\n| 信号强度 < 0.3 | 自动过滤 |\r\n\r\n---\r\n\r\n## 📁 项目结构\r\n\r\n```\r\ntulip_mt5_trader/\r\n├── package.json           # npm 包装配置\r\n├── bin/\r\n│   ├── tulip-trader.js    # npm 启动器（spawn Python 引擎）\r\n│   └── postinstall.js     # 安装后自动装 Python 依赖\r\n├── run_live.py            # 主入口：8 步交互配置 + 引擎启动\r\n├── main.py                # 备用入口（CLI 参数版）\r\n├── config.yaml            # 配置文件（MT5/品种/策略/云同步）\r\n├── requirements.txt       # Python 依赖\r\n├── setup.py               # Python 打包配置\r\n├── core/                  # 核心模块\r\n│   ├── mt5_manager.py     # MT5 连接、下单、平仓、持仓\r\n│   ├── strategy_engine.py # 策略引擎（加权投票聚合）\r\n│   ├── strategy_balancer.py # 策略均衡器（自动调权）\r\n│   ├── symbol_manager.py  # 多品种管理器\r\n│   ├── monitor.py         # 账户健康监控\r\n│   ├── statistics.py      # 交易统计报表\r\n│   └── cloud_sync.py      # 云端策略同步\r\n├── strategies/\r\n│   ├── tulip_strategies.py # 10 套真实策略 + 指标库\r\n│   ├── universal_strategy.py # 通用云端策略（全信号类型真实交易）\r\n│   ├── openapi_engine.py  # 郁金香信号引擎移植（prepare/signal/regime/时段）\r\n│   ├── vendor/            # 信号引擎依赖（indicators/tulip_signals/regime/factors，纯标准库）\r\n│   ├── base.py            # 策略基类（Signal/Stats）\r\n│   ├── formats.py         # 策略序列化格式\r\n│   └── repo.py            # 策略仓库\r\n├── utils/helpers.py       # 日志/路径工具\r\n├── data/                  # 统计/云同步数据\r\n├── logs/                  # 运行日志\r\n└── start.bat / 启动.bat    # Windows 双击启动\r\n```\r\n\r\n---\r\n\r\n## 🛠️ 开发与扩展\r\n\r\n### 添加新策略\r\n\r\n继承 `BaseStrategy` 并实现 `generate_signal`：\r\n\r\n```python\r\nfrom strategies.base import BaseStrategy, Signal\r\n\r\nclass MyStrategy(BaseStrategy):\r\n    def __init__(self, **kwargs):\r\n        config = {\"threshold\": 0.5}\r\n        config.update(kwargs)\r\n        super().__init__(name=\"MyStrategy\", config=config, weight=kwargs.get(\"weight\", 1.0))\r\n\r\n    def generate_signal(self, data) -> Signal:\r\n        price = float(data.get(\"close_price\", 0))\r\n        if price > self.config[\"threshold\"]:\r\n            return Signal(action=\"BUY\", strength=0.8, price=price,\r\n                          stop_loss=price * 0.98, take_profit=price * 1.04,\r\n                          volume_lots=self.config.get(\"lots\", 0.01), reason=\"触发买入\")\r\n        return Signal(action=\"HOLD\", strength=0, price=price, reason=\"观望\")\r\n```\r\n\r\n### 指标库\r\n\r\n`strategies/tulip_strategies.py` 内置纯 Python 指标实现：\r\n\r\n```\r\nSMA / EMA / MACD / RSI(Wilder) / ATR / 唐奇安通道 / 布林带\r\n```\r\n\r\n支持 `M15`/`M30`/`H1`/`H4` 周期（H1/H4 自动用 M15 聚合生成，无需终端历史数据）。\r\n\r\n---\r\n\r\n## ⚠️ 风险提示（必读）\r\n\r\n1. **实盘有真实资金风险**：务必先「监控信号」模式验证策略表现\r\n2. 建议单笔风险 ≤ 总资金 2%，启用止损（系统按 ATR 自动设置 SL/TP）\r\n3. 定期查看监控告警（保证金比例、最大亏损阈值）\r\n4. 云端策略全部支持真实交易（127/127，含全部信号类型与 regime 过滤），实盘前务必先用「监控信号」模式验证\r\n5. 回测/历史表现不代表未来收益，投资需谨慎\r\n\r\n---\r\n\r\n## 🔒 安全说明\r\n\r\n- 云同步 API Key 存储在本地配置，请勿公开\r\n- npm 发布 token 请妥善保管，泄露后立即撤销\r\n- 日志包含交易记录，注意隐私\r\n\r\n---\r\n\r\n## 📦 版本历史\r\n\r\n- **0.3.3** — 打磨轮2: 日志双通道落盘+5MB滚动、平仓闭环记账(强平/反向平仓自动补 closed_at+盈亏, audit 不再虚报缺失)、setup_logger 滚动化\r\n- **0.3.2** — 打磨轮: comment 截断与终端规则对齐(防超长策略名过滤失效)、看门狗重启风暴防护(冷却锁)、强平失败节流告警、快照/事件数据保留(prune)、报表维度选择器、GBK 控制台兼容\r\n- **0.3.1** — 运营级升级：持仓生命周期（反向平仓/冷却/超时/浮亏保护）、运营报表、持仓审计（--fix 自愈）、进程看门狗与任务计划、旧入口 main.py 废弃（仅 --demo 开发自检）\r\n- **0.3.0** — 生产级升级：全局风控内核（持仓上限/净敞口/双熔断/强制止损/滑点保护）、MT5 自动重连、SQLite 持久化、钉钉/Server酱 告警与心跳、配置中心化（yaml+环境变量+校验）、密钥外置、H4 深历史暖机修复、趋势过滤保守化、66 项 pytest 测试\r\n- **0.2.0** — 首次 npm 发布；10 套真实策略、云同步、8 步配置向导、多品种/权重/均衡/监控/统计\r\n- **0.1.0** — 基础框架（MT5 连接、策略引擎、监控、统计）\r\n\r\n---\r\n\r\n## 📄 License\r\n\r\nMIT © 2026 Tulip Fintech · 郁金香金融科技\r\n","readmeFilename":"README.md","_rev":"1-d4271d80c49f2d7b205b829f46ecbc33"}