GRIZZLY v2.0 — BTC Alpha Hunter with Position Lifecycle
One asset. Every signal. Maximum conviction. Now with reload-on-dip.
GRIZZLY stares at BTC and nothing else. Every signal source available — smart money positioning, funding rate, open interest, 4-timeframe trend structure, volume, ETH correlation — feeds into a single thesis: is there a high-conviction BTC trade right now?
What's New in v2.0: The Three-Mode Lifecycle
v1.0 treated every entry as independent. After DSL closed a winning trade, GRIZZLY immediately scanned for a new entry — often re-entering on a minor dip that was just the aftershock of the move it just profited from.
v2.0 adds a STALKING mode between exits and new entries. After DSL takes profit, GRIZZLY watches the asset for a genuine reload opportunity while confirming the macro thesis is still alive.
MODE 1 — HUNTING (default)
Normal behavior. Scan BTC every 3 minutes. All signals must align (4h trend, 1h momentum, SM, funding, OI, volume). Score 10+ to enter. When a position opens, switch to MODE 2.
MODE 2 — RIDING
Active position. DSL High Water trails it. Thesis re-evaluation every scan. If thesis breaks (4h trend flips, SM flips, funding extreme, volume dies, ETH diverges) → thesis exit and reset to MODE 1 (thesis is dead, don't stalk). If DSL closes the position → switch to MODE 3.
MODE 3 — STALKING
DSL locked profits. The trend may not be over. Watch for a reload opportunity. Every scan checks:
Reload conditions (ALL must pass):
-
At least one completed 1h candle since exit (minimum ~30 min)
-
Fresh 5m momentum impulse in the exit direction (new acceleration, not dead cat bounce)
-
OI stable or growing (not collapsing from profit-taking)
-
Volume at least 50% of what powered the original entry
-
Funding not spiked into crowded territory (< 50% annualized)
-
SM still aligned in the exit direction
-
4h trend structure still intact
If ALL pass → RELOAD. Re-enter same direction, same leverage. Switch to MODE 2.
Kill conditions (ANY triggers reset to MODE 1):
-
4h trend reversed
-
SM flipped against exit direction
-
OI collapsed 20%+
-
Stalking for more than 6 hours with no reload
-
Funding spiked above 100% annualized
The loop: HUNTING → RIDING → STALKING → RELOAD → RIDING → STALKING → ... until a kill condition fires → HUNTING.
maxPositions: 1. GRIZZLY holds one BTC position at a time. All capital, all attention, one trade.
MANDATORY: DSL High Water Mode
GRIZZLY MUST use DSL High Water Mode. This is not optional. Do not substitute standard DSL tiers.
When creating DSL state files for any GRIZZLY position, you MUST include:
{ "lockMode": "pct_of_high_water", "phase2TriggerRoe": 5, "tiers": [ {"triggerPct": 5, "lockHwPct": 20, "consecutiveBreachesRequired": 3}, {"triggerPct": 10, "lockHwPct": 40, "consecutiveBreachesRequired": 3}, {"triggerPct": 15, "lockHwPct": 60, "consecutiveBreachesRequired": 2}, {"triggerPct": 20, "lockHwPct": 75, "consecutiveBreachesRequired": 1}, {"triggerPct": 30, "lockHwPct": 85, "consecutiveBreachesRequired": 1} ] }
If tiers or lockMode is missing from the state file, the DSL engine falls back to flat 1.5% retrace and High Water Mode is silently disabled. Always verify the state file contains these fields after creation.
FALLBACK (until DSL engine supports pct_of_high_water ): Use the tiersLegacyFallback array from grizzly-config.json — wide fixed tiers going up to +100% ROE. Switch to High Water tiers the moment the engine supports them.
Why BTC-Only at High Leverage
Every other skill scans 10-230 assets. GRIZZLY scans one. The tradeoff: fewer trades, but every signal source is concentrated on the asset with the most data.
-
Deepest liquidity on Hyperliquid — no slippage even at 20x
-
Most SM data — every whale trades BTC, leaderboard positioning is most meaningful
-
Highest OI concentration — funding rate signals are strongest
-
Tightest spreads — maker orders fill reliably
-
Structural moves — BTC trends last hours to days, not minutes
High leverage amplifies the edge. At 15x, a 2% BTC move = 30% ROE. At 20x, it's 40% ROE. BTC's structural, sustained trends are the ideal setup for leveraged conviction trades with wide trailing stops.
How GRIZZLY Trades
Entry (score ≥ 10 required)
Every 3 minutes, the scanner evaluates BTC across all signal sources:
Signal Points Required?
4h trend structure (higher lows / lower highs) 3 Yes — no entry without macro structure
1h trend agrees with 4h 2 Yes
15m momentum confirms direction 0-1 Yes (min 0.1%)
5m alignment (all 4 timeframes agree) 1 No
SM aligned with direction 2-3 Hard block if opposing
Funding pays to hold the direction 2 No
Volume above average 1-2 No
OI growing (new money entering) 1 No
ETH confirms BTC's move 1 No
RSI has room 1 No (but blocks overbought/oversold)
4h momentum strength 1 No
Maximum score: ~18. Minimum to enter: 10. This means at least 4h structure + 1h agreement + SM aligned + one more booster.
Conviction-Scaled Leverage
Score Leverage
10-11 15x
12-13 18x
14+ 20x
Conviction-Scaled Margin
Score Margin
10-11 30% of account
12-13 37%
14+ 45%
Hold (thesis re-evaluation every 3 min)
GRIZZLY re-evaluates the thesis every scan. The position holds as long as:
-
4h trend structure hasn't flipped
-
SM hasn't flipped against the position
-
Funding hasn't gone extreme against the position
-
Volume hasn't dried up for 3+ hours
-
ETH isn't strongly diverging from BTC
If ANY of these break → thesis exit. The agent closes because the reason it entered is dead.
Exit (DSL High Water — BTC-specific tiers)
BTC pulls back 3-5% ROE regularly during trends. The tiers are designed for this:
Tier Trigger ROE Lock (% of HW) Breaches Notes
1 5% 20% 3 Very light — BTC pullbacks are normal
2 10% 40% 3 Patient — let the trend develop
3 15% 60% 2 Tightening
4 20% 75% 1 Strong protection
5 30%+ 85% 1 Infinite trail — no ceiling
At 15x leverage: BTC +2% price = +30% ROE → stop at +25.5% ROE (85% of 30). At 20x leverage: BTC +3% price = +60% ROE → stop at +51% ROE (85% of 60).
Phase 1: conviction-scaled floors. Score 10 = -50% ROE max loss. Score 12+ = unrestricted. No time exits. Stagnation TP: 12% ROE stale for 90 minutes → close. BTC trends consolidate longer than alts.
Risk Management
Rule Value Notes
Max positions 1 One BTC trade at a time
Phase 1 floor 3.5% notional ~52% ROE at 15x, ~70% at 20x
G5 per-position cap 10% of account Wider than other skills — BTC conviction
G2 drawdown halt 25% from peak Halt all trading
Daily loss limit 10%
Cooldown 120 min after 3 consecutive losses Long — BTC conviction trades shouldn't chain-fail
Stagnation TP 12% ROE stale 90 min BTC needs patience
Cron Architecture
Cron Interval Session Purpose
Scanner 3 min isolated Thesis builder (if flat) + thesis re-evaluator (if holding)
DSL v5.3.1 3 min isolated High Water Mode trailing stops
Both MUST be isolated sessions with agentTurn . Use NO_REPLY for idle cycles.
Notification Policy
ONLY alert: BTC position OPENED (direction, leverage, score, thesis reasons), position CLOSED (DSL or thesis exit with reason), risk guardian triggered, critical error. NEVER alert: Scanner found no thesis, thesis re-evaluation passed, DSL routine check, any reasoning. All crons isolated. NO_REPLY for idle cycles. No rogue processes.
Bootstrap Gate
On EVERY session, check config/bootstrap-complete.json . If missing:
-
Verify Senpi MCP
-
Create scanner cron (3 min, isolated) and DSL cron (3 min, isolated)
-
Write config/bootstrap-complete.json
-
Send: "🐻 GRIZZLY is online. Watching BTC. DSL High Water Mode active. Silence = no conviction."
Expected Behavior
Metric Expected
Trades/day 1-3 (BTC conviction trades are rare)
Avg hold time 2-24 hours
Win rate ~50-55%
Avg winner 30-80%+ ROE (high leverage + infinite trailing)
Avg loser -30 to -50% ROE (wide floors for BTC)
Fee drag/day $3-10 (1-3 maker entries)
Profit factor Target 1.5-2.5 (big winners, managed losers)
Files
File Purpose
scripts/grizzly-scanner.py
BTC thesis builder + re-evaluator
scripts/grizzly_config.py
Shared config, MCP helpers, state I/O
config/grizzly-config.json
All configurable variables with DSL High Water tiers + legacy fallback
DSL v5.3.1 (shared skill) Trailing stop engine — MUST be configured with High Water Mode
License
MIT — Built by Senpi (https://senpi.ai). Source: https://github.com/Senpi-ai/senpi-skills