Claude
Skills
Sign in
Back

polar-strategy

Included with Lifetime
$97 forever

POLAR v5.0.0 — ETH alpha hunter, senpi_runtime_helpers migration. Plumbing-only flip from openclaw-CLI subprocess + mcporter subprocess to in-process SenpiClient (direct HTTPS for MCP, direct HTTP POST to runtime /signals, long-lived producer_daemon). Thesis preserved verbatim from v4.2.0: ETH single-asset hybrid, hyperfeed SM gates (pct≥5%, traders≥30, cc_15m≥0.3), structural gates (4h trend, 1h-4h alignment, 15m momentum, RSI), multi-factor scoring (~17 max), conviction-tiered leverage (5x standard / 7x conviction / 10x apex), MIN_SCORE 12, FP-001 quiet hours (00-04 UTC unless apex score 17+).

AI Agentsscripts

What this skill does


# 🐻‍❄️ POLAR v5.0.0 — ETH Alpha Hunter (senpi_runtime_helpers)

Best gross trader in the fleet. Single asset. Maximum conviction.

**v3 → v4 architectural rewrite.** v3.x was a full-agency scanner that called create_position directly and tracked state in Python. v4.0 flips to the standard senpi-trading-runtime plugin pattern: producer emits signals, runtime owns execution + state.

**What changed structurally:**
- `polar-producer.py` (NEW) replaces `polar-scanner.py` (DELETED). Pure producer — no execution, no counters, no cooldowns, no resting-order guards.
- `runtime.yaml` is now runtime-native: external_scanner + LLM-pass-through gate + native risk.guard_rails + DSL preset with FEE_OPTIMIZED_LIMIT.
- Trade chain DB emits `LIFECYCLE_RUNTIME_STARTED → DECISION_EXECUTED → ACTION_RESULT → DSL_CREATED → DSL_CLOSED` for every trade. **Per-trade telemetry is restored.**
- The `set_cooldown` / `load_tc` Python state crashes from the legacy scanner pattern are structurally impossible in v4.0+ (cooldowns are runtime-managed).

**What's preserved from v3.0.6:**
- ETH single-asset thesis (no multi-asset rotation)
- Hyperfeed SM gates: pct≥5%, traders≥30, **cc_15m≥0.3** (15m velocity acceleration)
- Structural gates: 4h trend != NEUTRAL, 4h matches SM direction, 1h matches 4h, 15m momentum aligned, RSI 26-74 band
- Multi-factor scoring (~17 max points): base-tech (3+2+1+1) + SM concentration (1-3) + SM velocity (1-2) + SM accelerating (1) + trader depth (1) + funding alignment (-1/0/+2) + OI velocity (-1/0/+1/+2) + BTC correlation (1) + RSI room (1) + 4h momentum bonus (1) + move-exhaustion penalty (-1/-2)
- MIN_SCORE = 14 (config-overridable)
- Conviction-tiered leverage: 5x standard / 7x conviction / 10x apex
- DSL preset preserved EXACTLY: time-cuts all disabled, Phase 1 max_loss 25% / retrace 8 / 3 breaches, Phase 2 leverage-aware ladder (8/25, 15/50, 25/65, 35/80, 50/85)

**v3.0.4/3.0.5/3.0.6 v1-DSL fixes preserved:**
- `dead_weight_cut`: DISABLED (single-asset has no rotation cost)
- `hard_timeout`: DISABLED (v1 DSL fired this in Phase 2 incorrectly; fixes the 2026-04-23 wrongful-close pattern)
- `weak_peak_cut`: DISABLED (completes the no-time-based-cuts sweep)
- All exits now 100% price-action

---

## ⛔ Hard Rules (Fleet Patches)

### RULE FP-002: User-conversation Claude sessions MUST NOT trade

**Hard rule, not a heuristic.** When responding to a user message (Telegram ping, status check, "tell me about your trades", etc.), the Claude Code session MUST NOT call any of:

- `create_position`
- `close_position`
- `edit_position`
- `ratchet_stop_add` / `ratchet_stop_edit` / `ratchet_stop_delete`
- `cancel_order`
- `strategy_close` / `strategy_close_positions`

These tools are reserved for the **producer daemon** (polar-producer.py) and the **DSL ratchet engine**. The daemon is the only entry path. The DSL is the only exit path. User-conversation sessions are read-only.

If a user asks "should I take this trade?" or "anything close to triggering?", respond by reading current state — DO NOT execute. The producer will fire on its next tick if a real signal is there.

### RULE FP-001: Quiet hours for low-liquidity windows

Producer skips emission during 00:00-04:00 UTC by default. Apex setups (score >= `quietHours.apexBypassScore`, default 17) bypass — high-conviction ETH setups can fire any hour; routine score-14/15 entries wait until 04:00 UTC.

Configurable via `quietHours.{startUtc,endUtc,apexBypassScore}` in `polar-config.json`. Set `startUtc == endUtc` to disable.

---

## ⛔ CRITICAL AGENT RULES

### RULE 1: Install path is `/data/workspace/skills/polar-strategy/`
### RULE 2: THE SCANNER DOES NOT EXIT POSITIONS — DSL only.
### RULE 3: MAX 1 POSITION
### RULE 4: Verify runtime on every session start
### RULE 5: Never modify parameters
### RULE 6: MAX 4 ENTRIES PER DAY
### RULE 7: 240-minute cooldown between entries (v2.4 — sniper cadence)
### RULE 8: 120-minute same-direction cooldown after wins
### RULE 9: MIN_SCORE = 10 (v2.4 — was 8 in v2.3)
### RULE 10: 15m velocity must exceed MIN_SM_ACCEL_PCT=0.3% (v2.4 hard gate)

---

## How It Works

Polar scans ETH every 3 minutes. It scores using SM consensus, multi-timeframe
contribution velocity (15m, 1h, 4h), price alignment, funding, and trader depth.

**v2.3 key behaviors:**
- Move-exhaustion: if ETH 4h price change ≥4% in entry direction, -2 points.
  If ≥2.5%, -1 point. Creates tension with 4H confirmation scoring.
- Same-direction lock: after a winning exit, won't re-enter the same direction
  for 60 minutes. Prevents chasing the same move at worse prices.
- Midnight-safe cooldowns: timestamps persist across UTC date rollover.

## Scoring (max ~18 points)

| Signal | Points | Notes |
|---|---|---|
| SM consensus | 1-3 | ≥15% dominant = +3 |
| Trader depth | 0-1 | ≥100 traders = +1 |
| 4H alignment | -1 to +2 | Confirms direction |
| Move exhaustion | -2 to 0 | **v2.3** penalizes ≥2.5% existing moves |
| 1H momentum | 0-1 | Confirms direction |
| 15m velocity | -1 to +4 | Extreme spike = +4 |
| 1h acceleration | 0-2 | Strong accel = +2 |
| 4H major shift | 0-1 | ≥5% contribution change |
| Acceleration pattern | 0-1 | 15m > 1h = accelerating |
| Funding alignment | 0-1 | Funding pays your direction |
| US session | 0-1 | 13-21 UTC |

**Min score: 8.** Leverage: 8→7x, 9→10x, 10→15x, 11+→20x.

---

## Runtime Setup

```bash
sed -i 's/${WALLET_ADDRESS}/<WALLET>/' /data/workspace/skills/polar-strategy/runtime.yaml
sed -i 's/${TELEGRAM_CHAT_ID}/<CHAT_ID>/' /data/workspace/skills/polar-strategy/runtime.yaml
openclaw senpi runtime create --path /data/workspace/skills/polar-strategy/runtime.yaml
openclaw senpi runtime list
openclaw senpi status
```

---

## Bootstrap Gate

On EVERY session start, check `config/bootstrap-complete.json`. If missing:
1. Read senpi-trading-runtime skill
2. Verify Senpi MCP
3. Set wallet and telegram in runtime.yaml
4. Install runtime
5. Verify: `openclaw senpi runtime list` and `openclaw senpi status`
6. Launch the producer daemon (long-lived process; internally ticks every 3 min via `producer_daemon`)
7. Write `config/bootstrap-complete.json`
8. Send: "🐻‍❄️ POLAR v2.3 online. Hunting ETH. Silence = no conviction."

---

## Risk

| Rule | Value |
|---|---|
| Max positions | 1 |
| Max entries/day | 4 |
| Leverage | 7-20x (conviction-scaled, capped at 20x for ETH) |
| General cooldown | 120 min |
| Same-direction cooldown | 60 min after wins |
| Min score | 8 |
| Margin | 50% |

---

## Files

| File | Purpose |
|---|---|
| `scripts/polar-scanner.py` | ETH scoring + entry execution |
| `scripts/polar_config.py` | Config helper (MCP, state, positions) |
| `config/polar-config.json` | Wallet, strategy ID |
| `runtime.yaml` | Runtime YAML for DSL plugin |

---

## License

MIT — Built by Senpi (https://senpi.ai).


---

## Skill Attribution

When creating a strategy, include `skill_name` and `skill_version` in the call. See `references/skill-attribution.md` for details.
Files: 7
Size: 55.1 KB
Complexity: 74/100
Category: AI Agents

Related in AI Agents