关于 grizzly-strategy
grizzly-strategy 是面向 Senpi 运行时、仅交易 BTC 趋势延续的策略技能。Producer 对市场与聪明资金方向一致的信号评分,运行时和 DSL 负责入场、风险控制及退出。
主要功能
- 01BTC 趋势延续信号
- 02四时间周期一致性评分
- 03聪明资金反向时硬性阻止
- 04运行时风险控制与 DSL 退出
- 05低流动性时段过滤并允许高分信号通过
适用场景
- 01扫描多时间周期一致的 BTC 趋势
- 02阻止与聪明资金方向相反的入场
- 03应用运行时回撤和每日限额控制
- 04通过 DSL 追踪退出管理持仓
MCP 相关
Producer 使用 Senpi 运行时辅助库向运行时发送信号,由运行时审核并执行入场,DSL 管理退出。技能通过 MCP 市场和策略调用获取信号数据。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ senpi-ai/ senpi-skills --skill grizzly-strategy安装后在 Claude Code 中输入/grizzly-strategy确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdruntime.yamlconfig/grizzly-config.jsonreferences/skill-attribution.mdscripts/grizzly_config.pygrizzly-producer.py详细介绍
🐻 GRIZZLY v7.0.0 — BTC Alpha Hunter (senpi_runtime_helpers)
BTC 趋势延续,原生支持 v2-runtime。架构与 Wolverine / Polar / Kodiak 同属 Kodiak 系列。生产器发出信号,运行时通过 LLM 闸门执行,DSL 使用 maker 优先的 FEE_OPTIMIZED_LIMIT 管理退出。
顺势交易,并与聪明资金同向交易。 不做逆势交易。 与聪明资金意见相反是硬性拦截条件。
⛔ 关键 Agent 规则
规则 1:安装路径为 /data/workspace/skills/grizzly-strategy/
规则 2:扫描器不会退出仓位——只能由 DSL 处理。
规则 3:最多持有 1 个仓位(仅限 BTC)
规则 4:每次会话开始时验证运行时
规则 5:未经全系列审查,不得修改参数
规则 6:HARD_STOP 熔断器在回撤达到 -25% 时触发
规则 7 (FP-002):与用户对话的 Claude 会话不得交易
这是硬性规则,不是启发式规则。 在回复用户消息时(Telegram 提醒、状态检查、“告诉我你的交易情况”等),Claude Code 会话不得调用以下任何工具:
create_positionclose_positionedit_positionratchet_stop_add/ratchet_stop_edit/ratchet_stop_deletecancel_orderstrategy_close/strategy_close_positions
这些工具仅供生产器守护进程(grizzly-producer.py) 和 DSL ratchet 引擎使用。守护进程是唯一的入场路径。DSL 是唯一的退出路径。用户对话会话只能读取数据。
如果用户提出暗示采取行动的问题(“是否有即将触发的信号?”、“我应该进行这笔交易吗?”),应读取当前状态并作答——不得执行操作。如果存在真实信号,生产器会在下一次轮询时触发。整个系统中都观察到这种模式:由于对话会话具有 MCP 写入权限,Agent 会在用户发来消息后立即开仓。本规则旨在消除此漏洞。
规则 8 (FP-001):低流动性时段的静默时段
默认情况下,生产器会跳过 00:00-04:00 UTC 时段,不发出信号。Apex 设置
(分数 >= quietHoursApexBypassScore,默认值为 14)不受此限制——高置信度的
BTC 趋势可在任何时段触发;常规的非 Apex 入场则需等到 04:00 UTC。
可通过 grizzly-config.json 中的 quietHoursStartUtc、
quietHoursEndUtc 和 quietHoursApexBypassScore 配置。将开始时间设为与结束时间相同即可禁用。
理由:整个系统都观察到了每日上限重置后于 00:00 UTC 集中入场的模式。 对 Grizzly 而言,BTC 在夜间的流动性在此时段最为稀薄,入场滑点可能会侵蚀低置信度交易的优势。
交易理念
只做 BTC 趋势延续,绝不逆势交易。
根据 Kodiak 生命周期内表现最好的 3 笔 SOL 交易(+$133 / +$87 / +$78):
“判断大幅方向性波动的最高可靠指标是:4H、1H、15m 和 5m 的价格动量完全统一指向同一方向,并且聪明资金排行榜中有明显多数(>65%)对同一方向达成共识。”
Grizzly v5.0 将这一理念原样应用于 BTC。BTC 的走势比 SOL 更慢、更沉重,因此会收紧阈值,但形态完全相同。
v5.0 — 完全重写
v4.x 是一个逆向 SM 反转策略。4 月 10 日的反转测试将“如果我们反转方向,就会有 81.8% 的胜率”解读为 SM 在 BTC 上失效的证据。正确的解读应该是:扫描器进场太晚,在走势耗尽之后才入场。反转方向确实让这些相同的迟到入场暂时盈利,但也让 Grizzly 陷入与每个真正趋势对抗的局面。
v4.x 亏损了 $245。Grizzly 是唯一一个交易方向与家族意图相反的成员。
v5.0 回归家族模式:
- 已移除: CONTRARIAN_FLIP — Grizzly 现在跟随 SM 共识方向交易
- 已移除: CONTRARIAN_EXHAUSTION_GATE — 逆向行为门控
- 已添加: 3 种模式状态机(HUNTING / RIDING / STALKING)
- 已添加: 4 个时间框架对齐(5m + 15m + 1h + 4h)
- 已添加: 4TF_aligned 额外评分
- 已添加: SM 强烈倾斜加分(共识 >65%)
- 已添加: SM 反向时硬性拦截
- 已添加: 走势耗尽 + 趋弱惩罚
- 已添加: RSI 过滤器(针对 BTC 调优的 70/30)
- 已添加: 成交量趋势 + OI 代理增长信号
- 已添加: STALKING 模式 — DSL 出场后逢跌重新入场
- 保留: 动态每日上限(根据盈亏调整的断路器)
- 保留: has_resting_orders,并自动取消过期订单
- 保留: 10x MAX_LEVERAGE 上限
硬性门槛(必须全部通过)
- 4h 趋势结构 ≠ NEUTRAL(BULLISH 或 BEARISH,higher-lows 或 lower-highs 的比例 >60%)
- 1h 趋势方向与 4h 一致
- 15m 动量确认方向(沿该方向 >0.05%)
- SM 反向 = 硬性拦截(leaderboard_get_markets)
- RSI 过滤器 — LONG 要求 RSI ≤ 70,SHORT 要求 RSI ≥ 30
针对 BTC 的调优,与 Kodiak(SOL)对比
BTC 在 4h 内波动约 0.6%;SOL 波动 2–4%。阈值收紧约 3 倍:
| 参数 | Kodiak(SOL) | Grizzly(BTC) | 原因 |
|---|---|---|---|
| min_mom_15m | 0.10% | 0.05% | BTC 走势较慢 |
| rsi_max_long | 74 | 70 | BTC 很少升至 74 |
| rsi_min_short | 26 | 30 | BTC 很少降至 26 |
| move_exhaustion | 4.0% | 2.5% | BTC 在较低百分比时就会耗尽 |
| move_tiring | 2.5% | 1.5% | |
| 4h_strong | 4.0% | 2.0% | |
| vol_ratio_min | 1.2 | 1.1 | BTC 的成交量始终充足 |
| funding_extreme | 0.005 | 0.003 | BTC 的量级较低 |
MIN_SCORE = 10(家族标准)。动态每日上限与家族相同。
评分(最高约 18 分,MIN_SCORE = 10)
| 信号 | 分数 |
|---|---|
| 4h 趋势结构 | +3 |
| 1h 趋势一致 | +2 |
| 15m 动量强度 | +1 |
| 4TF_aligned(5m 一致) | +1 |
| SM 一致 | +2 |
| SM 强烈倾斜(>65%) | +1 |
| 15m 速度较新(>0.5) | +1 |
| 15M_STALE_PENALTY(cc ≤ 0) | -3 |
| 资金费率有利于交易方向 | +2 |
| 资金费率与交易方向相反且拥挤 | -1 |
| 成交量比 ≥ 1.1x | +1 |
| 成交量上升 >15% | +1 |
| OI 增长 >10% | +1 |
| RSI 空间 | +1 |
| 4h 趋势强劲(>2%) | +1 |
| MOVE_EXHAUSTION(>2.5%) | -2 |
| MOVE_TIRING(>1.5%) | -1 |
仓位规模
| 分数 | 杠杆 | 保证金 % |
|---|---|---|
| 10-11 | 10x(限制为 HL 最大值) | 30% |
| 12-13 | 10x | 37.5% |
| 14+ | 10x | 45% |
通过 strategy_get_asset_trading_limits 自动将杠杆限制为 BTC 在 Hyperliquid 上的最大值。
出场(DSL)——根据 RatchetStop Timing Guide 针对 BTC 调优
| 机制 | 数值 | 原因 |
|---|---|---|
| hard_timeout | 360 min(6h) | BTC 趋势需要时间 |
| weak_peak_cut | 120 min @ 2% min | BTC 峰值缓慢盘整 |
| dead_weight_cut | 90 min | BTC 可能在趋势中平静盘整 |
| Phase 1 max_loss | 15% | 与 Kodiak 相同 |
| Phase 1 retrace | 8% | |
| Phase 2 tier 1 | +5% → 锁定 25% | 首次锁定利润 |
| Phase 2 tier 2 | +10% → 45% | |
| Phase 2 tier 3 | +15% → 65% | |
| Phase 2 tier 4 | +20% → 80% | |
| Phase 2 tier 5 | +30% → 90% | 锁定顶峰利润 |
| Phase 2 tier 6 | +50% → 94% | 追踪超额盈利 |
生命周期(v6.0 — 由运行时管理)
producer.py → [all gates pass, score >= MIN_SCORE] → client.push_signal()
runtime LLM → [pass-through gate, min_confidence 7] → OPEN_POSITION
runtime DSL → [tracks position, ratchets through Phase 2 ladder] → exit
runtime risk → [enforces daily caps + drawdown halt + cooldowns] → block next entry
**Producer(HUNTING):**扫描器每 3 分钟评估一次 BTC。所有硬性门槛都必须通过。不保留任何 Python 状态——发出信号后退出。
**运行时(RIDING):**position_tracker 扫描器通过
POSITION_OPENED 检测到持仓开启,触发
ON_POSITION_OPENED,DSL 引擎开始追踪止盈。Producer 的持有资产检查会在
持仓开启期间阻止重复发出信号。
**运行时(POST-EXIT):**DSL 平仓后,per_asset_cooldown_minutes
门槛会阻止 60 分钟内新的 BTC 入场。v5.x 的 STALKING 模式和
下跌时重新加载逻辑已移除——DSL 管理持仓生命周期,Producer 不会加仓现有持仓。
v5.x Python 状态机(HUNTING/RIDING/STALKING)已移除。所有状态均由运行时管理。不会有 Python 状态文件被破坏。
系列关系
所有四个单资产专用 Agent 都采用相同的架构:
| Agent | 资产 | MIN_SCORE | DSL 配置 |
|---|---|---|---|
| Kodiak | SOL | 10 | 中等波动率(240/60/90min) |
| Wolverine | HYPE | 9 | 高波动率,禁用时间止损(v4.0+) |
| Polar | ETH | 10 | 中等波动率(240/60/90min) |
| Grizzly | BTC | 12 | 低波动率,禁用时间止损(v6.0) |
Bug 修复和信号改进会在整个系列中同步。如果其中一个发现优势,四个都能受益。如果其中一个出现亏损,四个都会接受审查。
安装
**前提条件:**插件必须是已发布的 @senpi-ai/runtime >= 1.1.0。此主机上还必须安装 senpi-trading-runtime 技能——它包含此 Producer 导入的 Python Producer SDK(senpi_runtime_helpers)。请参阅 README 中的安装步骤。
mkdir -p /data/workspace/skills/grizzly-strategy/{config,scripts,state}
curl -s https://raw.githubusercontent.com/Senpi-ai/senpi-skills/main/grizzly/runtime.yaml -o /data/workspace/skills/grizzly-strategy/runtime.yaml
curl -s https://raw.githubusercontent.com/Senpi-ai/senpi-skills/main/grizzly/SKILL.md -o /data/workspace/skills/grizzly-strategy/SKILL.md
curl -s https://raw.githubusercontent.com/Senpi-ai/senpi-skills/main/grizzly/config/grizzly-config.json -o /data/workspace/skills/grizzly-strategy/config/grizzly-config.json
curl -s https://raw.githubusercontent.com/Senpi-ai/senpi-skills/main/grizzly/scripts/grizzly-producer.py -o /data/workspace/skills/grizzly-strategy/scripts/grizzly-producer.py
curl -s https://raw.githubusercontent.com/Senpi-ai/senpi-skills/main/grizzly/scripts/grizzly_config.py -o /data/workspace/skills/grizzly-strategy/scripts/grizzly_config.py
配置
编辑 config/grizzly-config.json,设置 wallet、startingBudget,以及可选的 minScore / quietHours* 覆盖项。运行时会从环境中解析
${WALLET_ADDRESS}、${TELEGRAM_CHAT_ID}、${GRIZZLY_DECISION_MODEL}。
安装运行时并启动 Producer 守护进程
openclaw senpi runtime create --path /data/workspace/skills/grizzly-strategy/runtime.yaml
openclaw senpi runtime list
SENPI_AUTH_TOKEN=<your-token> \
GRIZZLY_WALLET=0x... \
nohup python3 -u /data/workspace/skills/grizzly-strategy/scripts/grizzly-producer.py \
> /tmp/grizzly-producer.log 2>&1 &
senpi-helpers list # daemon visible with recent LAST_TICK
senpi-helpers health grizzly-<wallet-suffix> # exit 0 = healthy
<wallet-suffix> = 策略钱包地址中 0x 之后的前 8 个十六进制字符(与守护进程的 LOCK_NAME 一致)。
更新日志
v6.0.0(2026-05-06)— v2 原生运行时重写
- **架构:**从 v1 完全由 Python 管理的扫描器(1073 行)改为 v2 Producer + LLM 门控 + 原生风险管理 + DSL 制定退出策略
- Producer:
grizzly-producer.py通过SenpiClient.push_signal()(直接 HTTP POST)发出信号。不包含任何执行代码。 - **LLM 门控:**直通(min_confidence 7);除非 Producer 信号在结构上存在问题,否则均予以采纳
- **risk.guard_rails:**声明式每日上限 / 回撤暂停 / 连续亏损 / 单资产冷却——取代 Python 的
get_dynamic_daily_cap、set_cooldown等功能 - **DSL:**入场和退出均使用
FEE_OPTIMIZED_LIMIT(每次 Maker 平仓约回收 0.020-0.030% 手续费) - **交易链数据库:**每笔交易均记录
LIFECYCLE_RUNTIME_STARTED → DECISION_EXECUTED → ACTION_RESULT → DSL_CREATED → DSL_CLOSED - **已移除:**三模式状态机(HUNTING/RIDING/STALKING)、
evaluate_reload、has_resting_orders、create_position、get_safe_leverage、get_dynamic_daily_cap - **原样保留:**全部 6 个入场门槛(4h 趋势 != NEUTRAL、4h 结构 ≥ 0.75、1h 与 4h 一致、15m 动量、基础技术指标下限、v5.5 宏观 V 型复苏)、SM 硬性阻止、RSI 70/30 硬性门槛、多因子评分(最高约 17 分)、MIN_SCORE 12、针对 BTC 调整的阈值、杠杆等级、DSL 预设
- **可观测性修复:**取证日志模式——
INGEST_FAILED/INGEST_REJECTED/INGEST_EXCEPTION均记录 rc、stderr、stdout 和 payload
v5.0 (2026-04-16) — 完全重写
- 方向逻辑从 v4.x 的反向操作改回趋势跟随
- 移植 Kodiak 的完整 3 模式状态机(HUNTING/RIDING/STALKING)
- 新增 4 个时间框架的对齐逻辑,并加入 4TF_aligned 加分
- 新增 SM 反向时的硬性拦截
- 新增走势耗尽和动能衰退惩罚
- 新增 RSI 筛选器(针对 BTC 调整为 70/30)
- 新增成交量趋势和 OI 代理增长信号
- 新增 STALKING 回落后重新入场模式
- 根据 RatchetStop 的 BTC 时序指南重新调整 DSL 配置(低 Beta)
- 将 MIN_SCORE 从 8 提高至 10(系列标准)
- 重建保证金档位,并根据置信度调整(30/37.5/45%)
- 在 execute_entry 中验证内部订单是否成功
- get_safe_leverage() 将杠杆限制在 BTC 的 HL 上限以内
v4.x(已弃用)——逆势操作
- 方向与系列设计意图相反
- 在真实趋势中逆势操作,亏损 $245
- 已由 v5.0 取代
v3.2 ——趋势跟随(逆势版本之前)
技能归属
创建策略时,请在调用中包含 skill_name 和 skill_version。详情请参阅 references/skill-attribution.md。
许可证
MIT — 由 Senpi 构建(https://senpi.ai)。 来源:https://github.com/Senpi-ai/senpi-skills