gator-strategy
GATOR — Patient Funding Arbitrage
Lies motionless for hours. Collects funding. Then snaps.
Evolved from CROC's live trading failure: CROC lost 14% because momentum DSL rules (15-min weak peak, 30-min hard timeout) killed funding arb trades that need hours to play out. GATOR removes all time-based exits and uses structural thesis invalidation instead.
What Makes GATOR Different from CROC
CROC uses the same DSL rules as momentum strategies. GATOR uses funding-specific exit logic:
| Aspect | CROC | GATOR |
|---|---|---|
| Min funding | 20% annualized | 120% annualized — absolute extremes only |
| Weak peak cut | 15 min (or widened by agent) | Disabled |
| Hard timeout | 30 min (or widened by agent) | Disabled |
| Primary exit | Time-based (DSL Phase 1 timeout) | Structural (funding flips = exit) |
| Funding flip exit | Not implemented | Instant — funding reverses direction = thesis dead |
| Funding normalize exit | Not implemented | Funding drops below 50% ann = arb is over |
| OI collapse exit | Not implemented | OI drops 20%+ in 2h = chaotic unwind, take what you have |
| Funding income tracking | None | Tracks income per position |
| Phase 2 trigger | +7% ROE | +10% ROE — funding arb is slower |
| Stagnation TP | 30 min | 180 min — funding trades are slow by design |
MANDATORY: DSL High Water Mode
GATOR MUST use DSL High Water Mode. This is not optional.
When creating DSL state files, you MUST include:
{
"lockMode": "pct_of_high_water",
"phase2TriggerRoe": 10,
"tiers": [
{"triggerPct": 10, "lockHwPct": 20, "consecutiveBreachesRequired": 3},
{"triggerPct": 20, "lockHwPct": 40, "consecutiveBreachesRequired": 3},
{"triggerPct": 35, "lockHwPct": 60, "consecutiveBreachesRequired": 2},
{"triggerPct": 50, "lockHwPct": 75, "consecutiveBreachesRequired": 1},
{"triggerPct": 75, "lockHwPct": 85, "consecutiveBreachesRequired": 1}
]
}
FALLBACK: Use tiersLegacyFallback from config until engine supports pct_of_high_water.
CRITICAL: Do NOT use momentum DSL rules on GATOR. No hard timeouts, no weak peak cuts, no dead weight. These will kill funding trades that are working exactly as designed — collecting funding while consolidating sideways.
How GATOR Trades
Entry (score ≥ 6)
Every 15 minutes, scan all assets for extreme funding:
| Signal | Points |
|---|---|
| Funding ≥ 200% annualized | 4 |
| Funding ≥ 150% annualized | 3 |
| Funding ≥ 120% annualized | 2 |
| Deep OI (> $20M) | 2 |
| Moderate OI (> $10M) | 1 |
| SM aligned with entry direction | 1 |
| Trend confirms entry direction | 1 |
Direction: OPPOSITE to funding. Positive funding (crowd long) = enter short. Negative funding (crowd short) = enter long.
Conviction-scaled margin: 200%+ ann = 30% of account, 150%+ = 25%, 120%+ = 20%.
Hold
The scanner re-validates every held position on each scan. The position holds as long as:
- Funding has NOT flipped direction
- Funding is still above 50% annualized
- OI has not collapsed 20%+ in 2 hours
A funding trade can hold for 2 hours, 8 hours, 24 hours — as long as the thesis is alive. Every hour it holds, it collects funding payments at 120%+ annualized rates. The longer it holds, the more income subsidizes the position's risk.
Exit Triggers (any one = close immediately)
| Trigger | What It Means |
|---|---|
| Funding flips direction | The crowd unwound. Thesis is dead. |
| Funding drops below 50% ann | The extreme normalized. The arb is over. |
| OI collapses 20%+ in 2h | Chaotic unwind. Take what you have. |
| DSL breach | High Water stop hit — mechanical exit. |
No time exits. No "it's been 30 minutes and nothing happened." Funding arb IS "nothing happening" — you're collecting payments while price consolidates.
DSL: Widest Tiers in the Zoo
Funding arb entries retrace hard before the snap. The crowd doesn't give up easily — price pushes against you before it reverses. GATOR needs the widest Phase 1 and the most patient Phase 2:
| Setting | Value | Compare to FOX |
|---|---|---|
| Floor base | 3.5% notional | FOX: 1.5% |
| Phase 2 trigger | +10% ROE | FOX: +7% |
| T1 lock | 20% of HW | FOX: 40% |
| 85% trail at | +75% ROE | FOX: +20% |
| Stagnation TP | 15% ROE, 180 min | FOX: 10%, 45 min |
Risk Management
| Rule | Value |
|---|---|
| Max positions | 3 |
| Max entries/day | 4 (base 3, dynamic to 5) |
| Daily loss limit | 8% |
| Max drawdown | 20% |
| Max single loss | 10% |
| Cooldown | 120 min after 2 consecutive losses |
Cron Architecture
| Cron | Interval | Session | Purpose |
|---|---|---|---|
| Scanner | 15 min | isolated | Funding scan + thesis validation for held positions |
| DSL v5 | 3 min | isolated | High Water Mode trailing (safety net) |
15-minute scanner interval is intentional. Funding rates change hourly. Scanning every 3 minutes wastes tokens on data that hasn't moved. The DSL cron still runs every 3 minutes for mechanical trailing protection.
Notification Policy
ONLY alert: Position OPENED (asset, direction, funding rate, annualized %), position CLOSED (which thesis exit triggered or DSL breach), risk triggered, critical error.
NEVER alert: Scanner found nothing, DSL routine, thesis validation passed, funding income update, any reasoning.
All crons isolated. NO_REPLY for idle cycles.
Bootstrap Gate
Check config/bootstrap-complete.json every session. If missing:
- Verify Senpi MCP
- Create scanner cron (15 min, isolated) and DSL cron (3 min, isolated)
- Write
config/bootstrap-complete.json - Send: "🐊 GATOR is online. Scanning for 120%+ annualized funding. Structural exits only. Silence = no extremes."
Expected Behavior
| Metric | CROC | GATOR (expected) |
|---|---|---|
| Trades/day | 5-10 | 2-4 |
| Avg hold time | 15-30 min (killed by timeout) | 2-8 hours |
| Win rate | ~35-40% | ~55-65% |
| Avg winner | 10-20% ROE | 15-40%+ ROE |
| Avg loser | -3 to -8% ROE (many small) | -15 to -25% ROE (fewer, bigger) |
| Funding income/trade | Minimal (15 min holds) | Significant (hours at 120%+ ann) |
| Fee drag/day | $30-50 | $5-15 |
Files
| File | Purpose |
|---|---|
scripts/gator-scanner.py |
Funding scan + thesis validation + funding income tracking |
scripts/gator_config.py |
Shared config, MCP helpers |
config/gator-config.json |
All variables with thesis exit config + DSL High Water |
License
MIT — Built by Senpi (https://senpi.ai). Source: https://github.com/Senpi-ai/senpi-skills