关于 mantis-strategy
MANTIS 是一套交易策略,用于发现 BTC 显著波动后尚未跟进的相关山寨币,并按信心度发出入场信号。它还设置领涨资产反转退出、时间边界和风险控制。
主要功能
- 01检测 BTC 波动后滞后的资产
- 02按跟随率和信心度筛选信号
- 03按信心等级确定入场规模
- 04在领涨资产反转或超时后退出
- 05执行持仓与亏损限制
适用场景
- 01寻找可能跟随 BTC 补涨的山寨币
- 02依据历史滞后与跟随数据建立交易
- 03在领涨资产走势反转时平仓
MCP 相关
Producer 通过 `SenpiClient.mcp_call()` 调用 Senpi 市场和账户工具,并可在领涨资产反转时调用 `close_position`。Runtime 使用 `create_position` 和 DSL 退出工具。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ senpi-ai/ senpi-skills --skill mantis-strategy安装后在 Claude Code 中输入/mantis-strategy确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdruntime.yamlconfig/mantis-config.example.jsonreferences/cross-asset-flow-guide.mdskill-attribution.mdscripts/mantis_config.pymantis_state.pymantis-producer.py详细介绍
🦎 MANTIS v6.0.0 — Slipstream
螳螂兼具耐心与速度。静待,然后出击。
v6.0.0 (2026-05-12) — 仅迁移底层基础设施
策略主张没有变化。v5.0 的入场过滤条件、按信心等级调整仓位、动态 hard_timeout 和反向领头资产否决逻辑均原样保留。底层基础设施有六项切换:
- MCP 传输:从
mcporter子进程(冷启动需 2.5-5s)切换为进程内 HTTPSSenpiClient.mcp_call()(约 280ms)。 - 信号发送:扫描器过去会直接调用
create_position;现在生产端通过push_signal()向运行时/signals发送信号。运行时通过 LLM 门控的mantis_entry操作,使用 FEE_OPTIMIZED_LIMIT 开仓,并从信号数据中传入leverage和marginUsd,以按等级调整仓位。 - 反向领头资产否决逻辑现已生效。 v5.0 会输出
VETO_CLOSEstdout JSON,但没有运行时操作消费该 JSON,因此实际上什么也没发生。v6.0 将其接入生产端权威操作——当领头资产从入场值反向变动超过 1% 时,触发cfg.mcp_call("close_position", ...)。运行时无法表达“如果另一种资产的 4h 变动反向达到 X%,就平掉此仓位”;这一策略主张由生产端负责。 - 调度器:从 openclaw cron(60s)切换为
producer_daemon(interval_seconds=60)。采用长驻进程;scanner_lock支持过期 PID 自动恢复。 - 风险门控:Python
MAX_DAILY_ENTRIES和asset-cooldowns.json替换为声明式risk.guard_rails块。已删除state/asset-cooldowns.json(运行时的per_asset_cooldown_minutes: 240为权威配置)。 - 退出手续费:DSL 平仓从 MARKET(吃单,0.045%)切换为 FEE_OPTIMIZED_LIMIT(优先挂单,0.015%,ALO 超时 60s,超时后回退为吃单)。
保留的状态文件(由生产端负责,不泄漏到运行时):
state/position-metadata.json— 每种资产的leader_pct_at_entry(否决检查必需)state/entry-log.jsonl— 仅用于可观测性(不再用于每日上限计数)
Mantis 的功能
Mantis 每 60 秒监控一次 market_get_cross_asset_flows。当领头资产(目前为 BTC)出现显著的 4h 变动时,该工具会找出与之相关、历史上通常跟随该领头资产但尚未响应的替代币。Mantis 根据严格标准筛选这些滞后资产,选出信心最高的一种,并发出信号,以领头资产变动的方向买入该滞后资产——仓位大小由信心决定,硬性超时则根据该替代币的典型滞后分布进行校准。
策略主张
纯统计优势,时间边界明确:
- 优势:85% 以上时间跟随领头资产且时间波动较低的替代币,在领头资产变动后很可能会补涨或补跌
- 时机:替代币历史
avg_lag_minutes决定交易窗口 - 退出:要么在
avg_lag × 1.5分钟内完成追赶,要么就不会发生 - 否决:如果持仓期间领头资产反转,整个策略主张即告失效,Mantis 会立即平仓(由生产端调用
close_position)
入场标准(必须全部通过——沿用 v5.0)
| 过滤条件 | 阈值 | 确保事项 |
|---|---|---|
follow_rate | ≥ 0.85 | 替代币历史上有 85% 以上的变动会跟随领头资产 |
confidence | ≥ 0.75 | 由相关性、跟随率、滞后时间和 SM 一致性综合得出 |
gap_pct | ≥ 1.5%(绝对值) | 追赶机会有实际意义 |
sm_starting_to_rotate | true | 聪明钱正在确认追赶走势 |
lag_stddev_minutes | ≤ 90 | 时机足够可预测,适合交易 |
| 资产 | 尚未开仓 | 不对同一种资产加倍开仓 |
| 资产 | 不在 per_asset_cooldown_minutes 范围内 | 由运行时强制执行(240min) |
仓位大小 — 信心等级(沿用 v5.0)
仓位大小直接随 confidence 分数调整。生产端计算基于等级的 marginUsd 和 leverage,并将其写入信号 data;LLM 将两者传入运行时的 OPEN_POSITION 负载。
| 信心 | 保证金占比 | 杠杆 |
|---|---|---|
| ≥ 0.92 | 75% | 8x |
| ≥ 0.85 | 50% | 7x |
| ≥ 0.75 | 25% | 5x |
硬性上限:8x 杠杆,可用保证金名义金额的 75%。
方向
跟随领头资产:领头资产 4 小时涨幅为正 → 做多滞后资产,涨幅为负 → 做空。Mantis 绝不会逆着领头资产的方向操作;整个策略的核心是“山寨币将追上领头资产的走势”。
退出逻辑 — 按优先级排列的三层机制
-
领头资产反转否决(生产端,v6.0 已正确接入)——每 60s 一次,Mantis 会检查当前领头资产的 4 小时涨跌幅与入场时的涨跌幅。如果领头资产相较入场时反转超过 1.0%,Mantis 会直接调用
close_position,参数为orderType: FEE_OPTIMIZED_LIMIT+ensureExecutionAsTaker: true,ALO 超时设为 30s。策略依据是领头资产的走势;如果走势失效,交易也就失效——但优先使用 Maker,并保证在超时后回退到 Taker,可为每笔以 Maker 成交的平仓节省 0.030%。否决机制比基于回撤的 DSL 退出略微更依赖时效,因此超时时间为 DSL 退出的一半(30s,而非 60s)。 -
动态硬超时(生产端,通过信号数据传递)——
avg_lag_minutes × 1.5,限制在 [30, 240] 分钟内,并通过信号data.hardTimeoutMinutes传递。如果山寨币在该时间窗口内尚未追上,追涨可能就不会发生——DSLhard_timeout: 240的上限作为兜底。 -
DSL 跟踪退出——对窗口期内的盈利仓位使用标准的 Phase 1 / Phase 2 跟踪逻辑:
- Phase 1 最大亏损:12%
- Phase 2 跟踪档位:5/30、10/60、15/75、25/85
- 峰值疲弱时平仓:20 min,最小价值 1.5%
- 使用 FEE_OPTIMIZED_LIMIT 退出(v6.0 的成果)
风险控制
| 控制项 | v6.0 来源 | 数值 |
|---|---|---|
| 最大并发仓位数 | strategy.slots | 2 |
| 单资产冷却时间 | risk.guard_rails.per_asset_cooldown_minutes | 240 min |
| 每日入场上限 | risk.guard_rails.max_entries_per_day | 6 |
| 最大仓位名义价值 | 生产端上限 | 可用保证金的 75% |
| 每日亏损限额 | risk.guard_rails.daily_loss_limit_pct | 10% |
| 最大连续亏损次数 | risk.guard_rails.max_consecutive_losses | 3 |
| 亏损后冷却时间 | risk.guard_rails.cooldown_minutes | 60 min |
| 回撤暂停阈值 | risk.guard_rails.drawdown_halt_pct | 20% |
| 每日切换时重置 | risk.guard_rails.drawdown_reset_on_day_rollover | false |
使用的 MCP 工具
生产端(进程内通过 SenpiClient.mcp_call 调用):
market_get_cross_asset_flows— 主要信号来源strategy_get_clearinghouse_state— 当前仓位 + 账户价值close_position— 领头资产反转否决触发时直接调用
运行时(senpi-trading-runtime 响应信号时调用):
create_position(通过mantis_entry操作使用 FEE_OPTIMIZED_LIMIT 入场)- 通过 FEE_OPTIMIZED_LIMIT 平仓执行 DSL 跟踪退出
Cron 调度频率
生产端守护进程每 60 秒运行一次。跨资产流数据本身每天在 00:00 UTC 由 hyperliquid-cross-asset-flow-cron 作业刷新;Mantis 使用其实时输出。
用户对话 Claude 会话的硬性规则
用户对话 Claude 会话不得调用以下任何工具:
create_position、close_position、edit_position、
ratchet_stop_add、ratchet_stop_edit、ratchet_stop_delete、
cancel_order、strategy_close、strategy_close_positions。
这些工具仅供生产端守护进程 → 运行时操作路径(入场)、DSL ratchet 引擎(DSL 退出),以及生产端领头资产反转否决流程(唯一由生产端直接调用 close_position 的位置,且严格限于 position-metadata.json 中已跟踪领头资产发生反转的资产)。用户对话会话只能只读。
操作者安装
全新安装和从 v5.0 迁移的命令请参阅 README.md。
状态
v6.0.0 — helpers-native 迁移。 目前仅使用 BTC 作为领头资产。等这些资产的预计算滞后数据发布后,只需在 mantis_config.py 中修改一行配置,即可将 ETH/SOL/HYPE 添加为领头资产。
许可证
MIT — Copyright 2026 Senpi (https://senpi.ai)。