rhino-strategy
RHINO — Momentum Pyramider
Enter small. Add to winners. Build into conviction.
The only skill in the Senpi zoo that adds to winning positions. Every other skill enters full size once and lets DSL manage the exit. RHINO enters at 30% of max position, then pyramids in as the trade proves correct — adding at +10% ROE and +20% ROE if the thesis still holds.
Why Pyramiding
Standard approach: risk 100% of position size at entry, when the thesis is unproven.
RHINO approach: risk 30% at entry, 70% only after the trade confirms.
If Stage 1 fails → you lose on 30% of max size (not 100%). If it reaches Stage 3 → your full position is built across the move with a better average entry than all-in would give.
The math: on a $300 max position, RHINO risks $90 at entry. If it fails, you lose $90 × stop = ~$18. An all-in entry would lose $300 × stop = ~$60. Same signal, 3x less risk on the initial bet.
MANDATORY: DSL High Water Mode
RHINO MUST use DSL High Water Mode. This is not optional.
When creating DSL state files, you MUST include:
{
"lockMode": "pct_of_high_water",
"phase2TriggerRoe": 8,
"tiers": [
{"triggerPct": 8, "lockHwPct": 25, "consecutiveBreachesRequired": 3},
{"triggerPct": 15, "lockHwPct": 45, "consecutiveBreachesRequired": 2},
{"triggerPct": 25, "lockHwPct": 60, "consecutiveBreachesRequired": 2},
{"triggerPct": 40, "lockHwPct": 75, "consecutiveBreachesRequired": 1},
{"triggerPct": 60, "lockHwPct": 85, "consecutiveBreachesRequired": 1}
]
}
FALLBACK: Use tiersLegacyFallback from config until engine supports pct_of_high_water.
DSL applies to the full position, not per-add. Each pyramid add increases position size but the DSL state tracks one high-water mark for the entire position. After adding, the DSL floor recalculates based on the new total margin.
The Three Stages
Stage 1 — SCOUT (30% of max position)
When: Score 10+ convergence on a top-10 asset.
| Signal | Requirement |
|---|---|
| 4h trend structure | BULLISH or BEARISH (not neutral) |
| 1h trend | Must agree with 4h |
| 1h momentum | ≥ 0.3% in direction |
| SM alignment | Hard block if opposing |
| Min score | 10 |
Size: 30% of max margin. At $1,000 account with 30% max margin = $300 max position, scout enters with $90.
Purpose: Skin in the game. Prove the thesis with minimal risk.
Stage 2 — CONFIRM (add 40% at +10% ROE)
When: Position is at +10% ROE AND thesis re-validated:
- 4h trend still intact (same direction)
- SM still aligned (not flipped)
- Volume still present (ratio ≥ 0.5x average)
Size: 40% of max margin. Adds $120 to the $90 scout. Position is now $210 (70% of max).
Purpose: The trade is working. Double down while the signal is confirmed.
Stage 3 — CONVICTION (add final 30% at +20% ROE)
When: Position is at +20% ROE AND thesis re-validated (same checks as Stage 2).
Size: Final 30% of max margin. Adds $90. Position is now $300 (100% of max).
Purpose: The trade is running. Full conviction deployed. DSL High Water trails the full $300 from here.
What If a Stage Doesn't Trigger?
Stage 2 and 3 are optional. If the trade reaches +10% ROE but the 4h trend has broken, the add doesn't happen — the scout position rides with DSL protection. If it never reaches +10%, the scout either hits its stop or trails out on DSL. No forced adds.
Scan Priority
Every 3-minute scan, RHINO checks in this order:
- Add to existing winners — do any positions qualify for Stage 2 or 3? If yes, add and return.
- Entry cap check — any slots available?
- Scout new positions — scan top 10 for new Stage 1 entries.
Adds take priority over new entries. A winning position that needs Stage 2 is more valuable than a new scout.
Risk Management
| Rule | Value | Notes |
|---|---|---|
| Max positions | 3 | Each pyramids independently |
| Floor base | 2.5% notional | Wider — scout entries need room |
| Phase 2 trigger | +8% ROE | Before Stage 2 add happens |
| Stagnation TP | 15% ROE, 90 min | Patient — pyramided positions need time |
| Max single loss | 8% of account | At Stage 1, actual risk is 30% of this |
| Max consecutive losses | 2 → 90 min cooldown | |
| Drawdown halt | 20% |
Cron Architecture
| Cron | Interval | Session | Purpose |
|---|---|---|---|
| Scanner | 3 min | isolated | Pyramid evaluation + new scouts |
| DSL v5 | 3 min | isolated | High Water Mode trailing |
Notification Policy
ONLY alert:
- Stage 1 SCOUT opened (asset, direction, margin, score)
- Stage 2 CONFIRM added (asset, +ROE at add, new total margin)
- Stage 3 CONVICTION added (asset, +ROE at add, full position)
- Position CLOSED (DSL or structural, total P&L across all stages)
- Risk triggered, critical error
NEVER alert: Scanner found nothing, DSL routine, pyramid evaluation found no adds, 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 (3 min, isolated) and DSL cron (3 min, isolated)
- Write
config/bootstrap-complete.json - Send: "🦏 RHINO is online. Scouting top 10 by OI + volume. Enter small, add to winners. Silence = no conviction."
Expected Behavior
| Metric | Expected |
|---|---|
| Scouts/day | 2-4 (score 10+ on top 10 assets) |
| Adds/day | 1-2 (only scouts that reach +10% ROE with intact thesis) |
| Full pyramids (Stage 3)/day | 0-1 (rare — the trade must run to +20% with thesis intact) |
| Win rate on scouts | ~50-55% |
| Win rate on full pyramids | ~70-80% (pre-selected by being up +20% with confirmed thesis) |
| Avg winner (scout only) | 10-20% ROE on 30% position |
| Avg winner (full pyramid) | 30-80%+ ROE on 100% position |
| Avg loser | -15 to -20% ROE on 30% position (scout stops) |
| Profit factor | Target 1.5-2.5 |
The edge: losers are small (30% position × stop). Winners are big (100% position × High Water trail). Asymmetric by design.
Files
| File | Purpose |
|---|---|
scripts/rhino-scanner.py |
Thesis builder + pyramid evaluator + scout finder |
scripts/rhino_config.py |
Shared config, MCP helpers |
config/rhino-config.json |
All variables with pyramid stages + DSL High Water |
License
MIT — Built by Senpi (https://senpi.ai). Source: https://github.com/Senpi-ai/senpi-skills