# Hybrid paper strategy consolidation pattern

Use when paper-trade evidence shows one family has stable risk-adjusted behaviour while another has concentrated but strong alpha, and the user asks to optimize or consolidate into a final strategy.

## Evidence threshold before consolidation

- Keep the result paper-only unless live gates are explicitly met and the user approves live-preview/live.
- Treat fewer than ~5 closed trades as observation only.
- Around 10-20 closed trades can justify a paper-only challenger, not live promotion.
- Before changing live settings, require closed-trade sample size, win rate, profit factor, realized/unrealized PnL, max drawdown, max consecutive losses, coin leakage, average risk, and open exposure.

## How to consolidate safely

1. **Separate reusable modules from candidate presets**
   - Preserve the best observed exit/risk module, e.g. V-Shape trailing exit if it is the strongest source of gains.
   - Borrow alpha from a research module, e.g. confirmed squeeze-breakout, as an entry branch rather than making it the only strategy.
   - Keep weak families as negative controls or replay-only; do not keep scanning known losers just for noise.

2. **Add falling-knife protection when SL hits dominate**
   - If paper losses are mostly hard-stop hits, do not simply loosen stops or increase frequency.
   - Add an entry quality/reclaim gate before flash-crash/survival entries, e.g. require current price to reclaim a short SMA after the drop.
   - Keep the hard stop bounded and paper-only until the new gate proves itself.

3. **Manage coin leakage explicitly**
   - If gains are concentrated in one coin (WLD-style leakage), allow that coin but cap the candidate with a quality whitelist and later compare scorecards with/without the dominant coin.
   - Use `allowed_coins` in the preset for quality-filtered paper challengers.
   - Ensure launch tooling maps tuple/list `allowed_coins` to `CTB_ALLOWED_COINS` as comma-separated text, otherwise the preset whitelist is silently ignored at runtime.

4. **Implement as a new paper-only challenger**
   - Add a new `strategy_family` pure entry function, e.g. `hybrid_survival_squeeze`, with RED-GREEN tests for:
     - preferred confirmed squeeze entry;
     - flash-crash rejection without reclaim;
     - flash-crash allowance after reclaim;
     - whitelist rejection for excluded coins.
   - Add a `candidate_vNN_*` preset tagged `paper-only`, `research-sampler`, `not-champion`.
   - Use conservative risk settings: small trade size, risk-based sizing, bounded hard stop, limited max trades, and modest scan universe.

5. **Supervision/update checklist**
   - Update focused runner and watchdog expected strategy IDs.
   - Verify every process environment: `CTB_STRATEGY_ID`, `CTB_STRATEGY_FAMILY`, `CTB_PAPER_TRADING=true`, `CTB_DRY_RUN=false`, `CTB_ALLOWED_COINS` when relevant.
   - Update any scheduled review prompt so the new hybrid candidate is evaluated separately.
   - Regenerate read-only scorecard/dashboard and run the full relevant test suite.

## Pitfalls

- Do not call a hybrid candidate "final" just because it encodes the current best learnings; it is still a paper challenger until scorecard gates are met.
- Do not restart statistically bad strategies merely because they are defunct; restart only those that answer a distinct open question.
- Do not trust `bot.pid` alone for dashboard running state; verify the process env matches the strategy and runtime directory to avoid stale PID reuse.
