viper-strategy

VIPER v2.1 — Range-Bound Liquidity Sniper

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "viper-strategy" with this command: npx skills add senpi-ai/senpi-skills/senpi-ai-senpi-skills-viper-strategy

VIPER v2.1 — Range-Bound Liquidity Sniper

The chop predator. When every momentum strategy is sitting idle because nothing is trending, VIPER is working.

+6.2% ROI and climbing. Second-best performer on the Senpi Predators tracker.

What VIPER Does

VIPER scans the top 25 assets by USD-weighted open interest every 5 minutes. It looks for assets stuck in a range — price bouncing between support and resistance — and enters at the boundaries:

  • Long at support when price is at the bottom of a tight Bollinger Band range, RSI is oversold, and volume is declining (sellers exhausting)

  • Short at resistance when price is at the top of a tight range, RSI is overbought, and volume is declining (buyers exhausting)

The edge: range-bound markets are predictable. Support holds, resistance holds, and the bounce is mechanical. VIPER catches that bounce.

MANDATORY: DSL High Water Mode

VIPER MUST use DSL High Water Mode. This is not optional.

Spec: https://github.com/Senpi-ai/senpi-skills/blob/main/dsl-dynamic-stop-loss/dsl-high-water-spec%201.0.md

When creating DSL state files for any VIPER position, you MUST include:

{ "lockMode": "pct_of_high_water", "phase2TriggerRoe": 5, "tiers": [ {"triggerPct": 5, "lockHwPct": 30, "consecutiveBreachesRequired": 3}, {"triggerPct": 10, "lockHwPct": 50, "consecutiveBreachesRequired": 2}, {"triggerPct": 15, "lockHwPct": 70, "consecutiveBreachesRequired": 2}, {"triggerPct": 20, "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 tiersLegacyFallback from config.

Entry Requirements

Signal Requirement

Bollinger Band width < 4% (tight range)

ATR < 1.5% (low volatility)

RSI Oversold (< 35) for longs, overbought (> 65) for shorts

Volume Declining (sellers/buyers exhausting)

OI (USD-weighted) ≥ $5M (liquid enough to trade)

Min score 5

All filters must pass. If any fails, skip. VIPER is selective — most scans produce zero signals.

DSL Configuration

Phase 1 — Structural Invalidation Only

Setting Value

Hard timeout Disabled (0)

Weak peak cut Disabled (0)

Dead weight Disabled (0)

Floor base 1.5% notional

No time exits. If the range breaks, the floor catches it. If the range holds, patience wins.

Phase 2 — High Water Mode

Tier Trigger ROE Lock (% of HW) Breaches

1 5% 30% 3

2 10% 50% 2

3 15% 70% 2

4 20%+ 85% 1 (infinite trail)

Phase 2 triggers at +5% ROE (lower than momentum skills — range profits are smaller, start protecting earlier).

Stagnation TP

5% ROE stale for 30 minutes → close. Range bounces play out quickly. If the profit stalls, take it.

Margin & Position Sizing

Setting Value

Margin per trade 28% of account

Max positions 3

Leverage Default 10x

3 slots × 28% = 84% utilization. VIPER deploys capital aggressively because range entries have higher win rates.

Risk Management

Rule Value

Max entries/day 8

Daily loss limit 8%

Max drawdown 18%

Max single loss 5% of account

Max consecutive losses 4 → 20 min cooldown

Cron Architecture

Cron Interval Session Purpose

Scanner 5 min isolated Range detection + entry signals

DSL v5 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: Position OPENED (asset, direction, support/resistance level, score), position CLOSED (DSL or structural exit), risk triggered, critical error. NEVER alert: Scanner found nothing, DSL routine, any reasoning. All crons isolated. NO_REPLY for idle cycles.

Bootstrap Gate

On EVERY session, check config/bootstrap-complete.json . If missing:

  • Verify Senpi MCP

  • Create scanner cron (5 min, isolated) and DSL cron (3 min, isolated)

  • Write config/bootstrap-complete.json

  • Send: "🐍 VIPER is online. Scanning for range-bound setups. Silence = nothing is ranging."

Optional: Trading Strategy Variant

VIPER is proven at +6.2% ROI as-is. One variant is available:

Strategy What Changes When To Consider

MAMBA VIPER entries + High Water Mode with wider tiers When you want to capture range breakouts that escape into trends

Start with vanilla VIPER. MAMBA is the upgrade path for capturing more from breakout trades.

Expected Behavior

Metric Expected

Trades/day 3-8

Win rate ~60-65% (range entries are predictable)

Avg winner 5-15% ROE

Avg loser -8 to -12% ROE

Fee drag/day $8-20

Profit factor Target 1.2-1.5

Files

File Purpose

scripts/viper-scanner.py

Range detection + entry signals

scripts/viper_config.py

Shared config, MCP helpers, state I/O

config/viper-config.json

All configurable variables with DSL High Water tiers + legacy fallback

DSL v5 (shared) 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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

dsl-dynamic-stop-loss

No summary provided by upstream source.

Repository SourceNeeds Review
General

wolf-strategy

No summary provided by upstream source.

Repository SourceNeeds Review
General

senpi-onboard

No summary provided by upstream source.

Repository SourceNeeds Review
General

autonomous-trading

No summary provided by upstream source.

Repository SourceNeeds Review