关于 viper-strategy
viper-strategy 是面向 Senpi 交易环境的区间交易技能,扫描高未平仓量资产并按支撑位、阻力位信号开仓。它规定了严格的入场筛选、风险限制及 High Water Mode 止损管理。
主要功能
- 01每 5 分钟扫描区间机会
- 02结合布林带、RSI、成交量筛选
- 03按支撑位做多、阻力位做空
- 04High Water Mode 动态止损
- 05设置仓位与每日风险上限
适用场景
- 01寻找低波动区间市场的交易机会
- 02依策略信号执行多空入场
- 03管理持仓止盈、止损与风险
MCP 相关
技能要求验证 Senpi MCP,并通过其辅助脚本中的 MCP helpers 处理相关操作;输入未说明具体暴露的工具。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ senpi-ai/ senpi-skills --skill viper-strategy安装后在 Claude Code 中输入/viper-strategy确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdruntime.yamlconfig/viper-config.jsonreferences/skill-attribution.mdscripts/viper-scanner.pyviper_config.py详细介绍
VIPER v2.1 — 区间边界流动性狙击手
震荡行情的捕食者。当所有动量策略都因市场没有趋势而按兵不动时,VIPER 正在行动。
ROI 达 +6.2%,还在持续攀升。在 Senpi Predators 追踪榜上表现排名第二。
VIPER 的功能
VIPER 每 5 分钟扫描按 USD 加权未平仓合约量排名前 25 的资产,寻找陷入区间震荡的资产——价格在支撑位和阻力位之间来回波动——并在边界处入场:
- 在支撑位做多:价格处于布林带窄幅区间底部、RSI 超卖且成交量下降(卖方力量耗尽)
- 在阻力位做空:价格处于窄幅区间顶部、RSI 超买且成交量下降(买方力量耗尽)
优势:区间震荡的市场具有可预测性。支撑位守得住,阻力位守得住,反弹走势也有规律可循。VIPER 捕捉这种反弹。
强制要求:DSL High Water Mode
VIPER 必须使用 DSL High Water Mode。这不是可选项。
为任何 VIPER 持仓创建 DSL 状态文件时,必须包含:
{
"lockMode": "pct_of_high_water",
"phase2TriggerRoe": 5,
"tiers": [
{"triggerPct": 5, "lockHwPct": 30, "consecutiveBreachesRequired": 3},
{"triggerPct": 10, "lockHwPct": 50, "consecutiveBreachesRequired": 2},
{"triggerPct": 15, "lockHwPct": 70, "consecutiveBreachesRequired": 2},
{"triggerPct": 20, "lockHwPct": 85, "consecutiveBreachesRequired": 1}
]
}
如果状态文件缺少 tiers 或 lockMode,DSL 引擎会回退到固定 1.5% 回撤,且 High Water Mode 会在不提示的情况下被禁用。创建后务必确认状态文件包含这些字段。
**回退方案(在 DSL 引擎支持 pct_of_high_water 之前):**使用配置中的 tiersLegacyFallback。
入场要求
| 信号 | 要求 |
|---|---|
| 布林带宽度 | < 4%(窄幅区间) |
| ATR | < 1.5%(低波动) |
| RSI | 多单需超卖(< 35),空单需超买(> 65) |
| 成交量 | 下降(卖方/买方力量耗尽) |
| OI(USD 加权) | ≥ $5M(流动性足以交易) |
| 最低评分 | 5 |
所有过滤条件都必须通过。任何一项不满足,都跳过。VIPER 会严格筛选——大多数扫描都不会产生信号。
DSL 配置
阶段 1 — 仅结构性失效
| 设置 | 值 |
|---|---|
| 硬性超时 | 禁用(0) |
| 弱峰值止损 | 禁用(0) |
| 滞涨止损 | 禁用(0) |
| 底线基准 | 名义价值的 1.5% |
不设时间退出。如果区间被突破,底线会兜住风险。如果区间维持不变,耐心就会带来收益。
阶段 2 — High Water Mode
| 档位 | 触发 ROE | 锁定(高水位的百分比) | 越界次数 |
|---|---|---|---|
| 1 | 5% | 30% | 3 |
| 2 | 10% | 50% | 2 |
| 3 | 15% | 70% | 2 |
| 4 | 20%+ | 85% | 1(无限跟踪) |
阶段 2 在 ROE 达到 +5% 时触发(低于动量类技能的触发点——区间交易的利润较小,因此要更早开始保护收益)。
停滞止盈
ROE 达到 5% 后停滞 30 分钟 → 平仓。区间反弹通常很快完成。如果利润停滞,就及时落袋。
保证金与持仓规模
| 设置 | 值 |
|---|---|
| 每笔交易保证金 | 账户的 28% |
| 最大持仓数 | 3 |
| 杠杆 | 默认 10x |
3 个仓位 × 28% = 84% 的资金使用率。VIPER 会积极部署资金,因为区间入场的胜率更高。
风险管理
| 规则 | 值 |
|---|---|
| 每日最大入场次数 | 8 |
| 每日亏损限额 | 8% |
| 最大回撤 | 18% |
| 单笔最大亏损 | 账户的 5% |
| 连续亏损上限 | 4 次 → 冷却 20 分钟 |
Cron 架构
| Cron | 间隔 | 会话 | 用途 |
|---|---|---|---|
| Scanner | 5 分钟 | 隔离 | 区间检测 + 入场信号 |
| DSL v5 | 3 分钟 | 隔离 | High Water Mode 跟踪止损 |
两者都必须使用带有 agentTurn 的隔离会话。空闲周期使用 NO_REPLY。
通知策略
**仅发送通知:**持仓已开仓(资产、方向、支撑/阻力位、评分)、持仓已平仓(DSL 或结构性退出)、触发风险限制、严重错误。
**绝不发送通知:**扫描未发现信号、DSL 常规操作、任何推理过程。
所有 Cron 均为隔离会话。空闲周期使用 NO_REPLY。
Bootstrap Gate
每次会话都检查 config/bootstrap-complete.json。如果该文件不存在:
- 验证 Senpi MCP
- 创建扫描器 cron(5 分钟,隔离运行)和 DSL cron(3 分钟,隔离运行)
- 写入
config/bootstrap-complete.json - 发送:“🐍 VIPER 已上线。正在扫描区间震荡形态。没有消息 = 当前没有区间震荡行情。”
可选:交易策略变体
VIPER 按原样运行已证明可实现 +6.2% ROI。另有一个变体可供选择:
| 策略 | 变更内容 | 考虑使用的时机 |
|---|---|---|
| MAMBA | VIPER 入场 + 更宽档位的 High Water Mode | 想要捕捉突破区间并演变为趋势行情的走势时 |
从原版 VIPER 开始。MAMBA 是升级路径,可从突破交易中获取更多收益。
预期表现
| 指标 | 预期值 |
|---|---|
| 每日交易数 | 3-8 |
| 胜率 | ~60-65%(区间入场的走势具有可预测性) |
| 平均盈利单 | 5-15% ROE |
| 平均亏损单 | -8 至 -12% ROE |
| 每日手续费拖累 | $8-20 |
| 盈利因子 | 目标 1.2-1.5 |
文件
| 文件 | 用途 |
|---|---|
scripts/viper-scanner.py | 区间检测 + 入场信号 |
scripts/viper_config.py | 共享配置、MCP 辅助工具、状态 I/O |
config/viper-config.json | 所有可配置变量,包含 DSL High Water 档位 + 旧版回退方案 |
| DSL v5(共享) | 移动止损引擎——必须配置为 High Water Mode |
许可证
MIT — 由 Senpi 构建(https://senpi.ai)。 来源:https://github.com/Senpi-ai/senpi-skills
技能归属
创建策略时,在调用中包含 skill_name 和 skill_version。详情请参阅 references/skill-attribution.md。