grizzly-strategy について
grizzly-strategyは、Senpiランタイム向けのBTC専用トレンド継続取引スキルです。プロデューサーが市場とスマートマネーの整合シグナルを採点し、ランタイムとDSLがエントリー、リスク制御、決済を管理します。
主な機能
- 01BTCのトレンド継続シグナル
- 024時間軸の整合性スコアリング
- 03スマートマネーに逆行する場合の強制ブロック
- 04ランタイムによるリスク制御とDSL決済
- 05高スコア時に例外を認める低流動性時間帯フィルター
活用シーン
- 01複数時間軸が一致するBTCトレンドの検出
- 02スマートマネーに逆行するエントリーの阻止
- 03ランタイムによるドローダウンと日次上限の適用
- 04DSLのトレーリング決済によるポジション管理
MCP 対応
プロデューサーは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 アルファハンター(senpi_runtime_helpers)
BTC のトレンド継続型、v2-runtime ネイティブです。Wolverine / Polar / Kodiak と同じ Kodiak ファミリーのアーキテクチャです。プロデューサーがシグナルを生成し、ランタイムが LLM ゲートを介して実行し、DSL が maker-first の FEE_OPTIMIZED_LIMIT で決済を管理します。
トレンドとスマートマネーに追随します。 逆張りではありません。 スマートマネーに逆らう場合は、ハードブロックされます。
⛔ エージェントの重要なルール
RULE 1: インストール先は /data/workspace/skills/grizzly-strategy/ です
RULE 2: スキャナーはポジションを決済しません — DSL のみが決済します。
RULE 3: ポジションは最大 1 つ(BTC のみ)
RULE 4: セッション開始時に毎回ランタイムを確認してください
RULE 5: ファミリー全体でレビューせずにパラメーターを変更しないでください
RULE 6: HARD_STOP サーキットブレーカーはドローダウンが -25% に達すると作動します
RULE 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 ラチェットエンジン専用です。デーモンだけがエントリー経路です。DSL だけが決済経路です。ユーザーとの会話を行うセッションは読み取り専用です。
ユーザーが行動を促す質問(「トリガーされそうなものはありますか?」「この取引をするべきですか?」など)をした場合は、現在の状態を読み取って応答してください — 実行してはいけません。実際のシグナルがあれば、プロデューサーが次のティックで作動します。フリート全体で確認されたパターンとして、会話セッションに MCP の書き込みアクセス権があったため、ユーザーからの問い合わせ直後にエージェントがポジションを開いていました。このルールでその抜け穴をふさぎます。
RULE 8(FP-001):流動性の低い時間帯は静観する
デフォルトでは、プロデューサーは 00:00〜04:00 UTC の間、シグナルの生成をスキップします。アペックス設定(スコア >= quietHoursApexBypassScore、デフォルトは 14)は例外となり、確信度の高い BTC トレンドであればいつでも作動できます。それ以外の通常のエントリーは 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% の確率で勝てていた」という結果を、BTC では SM が機能していない証拠として解釈しました。 正しい解釈は、スキャナーのエントリーが遅く、値動きが枯渇した後に入っていたということです。方向を反転させると、同じ遅れたエントリーでも一時的には利益が出ましたが、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 が反対の場合は HARD BLOCK
- 追加: 値動きの枯渇および勢いの低下に対するペナルティ
- 追加: RSI フィルター(BTC 向けに調整した 70/30)
- 追加: 出来高トレンド + OI プロキシの成長シグナル
- 追加: STALKING モード — DSL 決済後の押し目で再エントリー
- 維持: 動的な日次上限(損益を考慮するサーキットブレーカー)
- 維持: has_resting_orders と古い注文の自動キャンセル
- 維持: 10x の MAX_LEVERAGE 上限
ハードゲート(すべて通過必須)
- 4h トレンド構造 ≠ NEUTRAL(BULLISH または BEARISH、安値切り上げまたは高値切り下げが 60% 超)
- 1h トレンドが 4h の方向と一致
- 15m モメンタムが方向を確認(その方向に 0.05% 超)
- SM が反対の場合は HARD BLOCK(leaderboard_get_markets)
- RSI フィルター — LONG には RSI ≤ 70、SHORT には RSI ≥ 30 が必要
Kodiak(SOL)との BTC 固有の調整
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 のタイミングガイドに基づく 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
プロデューサー(HUNTING): スキャナーが3分ごとにBTCを評価します。すべてのハードゲートを通過する必要があります。Pythonの状態は持たず、シグナルを出力して終了します。
ランタイム(RIDING): position_trackerスキャナーがPOSITION_OPENEDを介してポジションのオープンを検出し、ON_POSITION_OPENEDを発火させ、DSLエンジンがトレーリングを開始します。ポジションがオープンしている間、プロデューサーの保有アセットチェックによって重複したシグナルの出力が防止されます。
ランタイム(POST-EXIT): DSLがポジションをクローズすると、per_asset_cooldown_minutesゲートにより、60分間は新たなBTCエントリーがブロックされます。v5.xのSTALKINGモードと下落時リロードのロジックは廃止されました。ポジションのライフサイクルはDSLが管理し、プロデューサーは既存ポジションに追加しません。
v5.xのPythonステートマシン(HUNTING/RIDING/STALKING)は廃止されました。すべての状態はランタイムが管理します。破損する可能性のあるPython状態ファイルはありません。
ファミリーの関係
4つの単一アセット特化型エージェントは、すべて同じアーキテクチャを使用します。
| エージェント | アセット | 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) |
バグ修正とシグナルの改善はファミリー全体に反映されます。あるメンバーが優位性を発見すれば、4つすべてがそれを取り入れます。あるメンバーに損失があれば、4つすべてが監査されます。
インストール
前提条件: プラグインは公開済みの@senpi-ai/runtime >= 1.1.0である必要があります。また、このホストにsenpi-trading-runtimeスキルをインストールする必要があります。このスキルには、このプロデューサーがインポートする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}を解決します。
ランタイムをインストールしてプロデューサーデーモンを起動
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桁の16進文字(デーモンのLOCK_NAMEと一致します)。
変更履歴
v6.0.0(2026-05-06)— v2ランタイムネイティブへの全面書き換え
- アーキテクチャ: 完全なエージェンシーを持つv1 Pythonスキャナー(1073行)から、v2プロデューサー+LLMゲート+ネイティブリスク管理+DSLによるメイカー決済に移行
- プロデューサー:
grizzly-producer.pyはSenpiClient.push_signal()(直接HTTP POST)を介してシグナルを出力します。実行コードはありません。 - LLMゲート: パススルー(min_confidence 7)。構造的な不具合がない限り、プロデューサーのシグナルを尊重します
- risk.guard_rails: 日次上限/ドローダウンによる取引停止/連敗数/アセットごとのクールダウンを宣言的に設定。Pythonの
get_dynamic_daily_cap、set_cooldownなどを置き換えます - DSL: エントリーとエグジットの両方に
FEE_OPTIMIZED_LIMITを使用(メイカー決済1回につき約0.020~0.030%の手数料を回収) - 取引チェーンDB: 取引ごとに
LIFECYCLE_RUNTIME_STARTED → DECISION_EXECUTED → ACTION_RESULT → DSL_CREATED → DSL_CLOSED - 廃止: 3モードのステートマシン(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、ペイロードを記録します
v5.0(2026-04-16)— 完全な書き直し
- 方向性のロジックを、v4.xの逆張りからトレンドフォローに戻しました
- Kodiakの3モード状態機械(HUNTING/RIDING/STALKING)を完全に移植しました
- 4時間足の整合性を追加し、4TF_alignedのボーナススコアを実装しました
- SMが逆方向の場合のHARD BLOCKを追加しました
- 値動きの勢いの消耗と疲れに対するペナルティを追加しました
- RSIフィルター(BTC向けに調整した70/30)を追加しました
- 出来高トレンドとOIプロキシの成長シグナルを追加しました
- STALKINGの押し目での再エントリーモードを追加しました
- BTC(低ベータ)向けのRatchetStopのタイミングガイドに従ってDSLプロファイルを再調整しました
- 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