# BTC6H fixed entry-loss exit — preregistration

Declared before candidate execution, after the completed threshold comparison. The user authorized this single targeted experiment following checkpoint and focused measurement-PR preparation. No promotion, Pine change or deployment is included.

## Frozen design and budget

Exactly two policies on the original incumbent: canonical baseline and baseline plus a 10% entry-loss exit. No training, threshold search, alternative loss percentages, seed changes or adaptive rounds. Freeze BTC6H `bb50_seed4942` (SHA256 `91fa9223c87c489c24ec1d4711099c92fe331d189f660e7f080ee596c052763b`). Parameters: entry 90, exit 210, confirmation −260, trailing stop 20%; entry confirmation off, exit confirmation on; both score windows 1; MVRV suppression off; regime window 0 and minimum −1000. Assert the current incumbent still matches; abort drift.

Candidate closes an active position when an observed held-bar close is at or below 90% of its entry signal close, alongside the unchanged score and trailing exits. Preserve canonical entry/exit ordering, no entry-bar exit, no same-bar re-entry, fill-bar high exclusion for the trail, next-interval exposure/entry fee and additive 0.5% fees. Keep the original trailing stop independent of the entry-loss threshold. Record all simultaneous exit flags; do not infer precise fill-price protection from a close trigger. Terminal holdings are marked to market.

## Evidence and decision

Run sync_params.py and check_pine.py before evaluation. Use the same captured BTC6H historical data and corrected evaluator as the completed comparison, dropping the unconfirmed final export row. Verify input, model, winner and production/Pine hashes before and after. Source/data drift aborts the comparison. The common comparison contract must include the experiment implementation; each policy must have distinct evaluation identity to prevent cache collisions.

First prove disabled candidate control equals canonical baseline positions, entries, exits, full return stream and every reported metric. Tests must cover trigger equality, first held bar, no entry-bar/same-bar re-entry, simultaneous stops, overshoot, terminal holding, fee timing, and prefix causality. Candidate implementation must reuse the current measurement/promotion logic rather than approximating gates.

Report full IS, both subperiods, every WFO fold including low-trade/inactive periods, and previously inspected OOS. Keep the drawdown/trade floor, fragility condition, positive subperiods, WFO eligibility, incumbent Calmar/P&L-DD floors and conditional OOS Sortino protection unchanged. Retain the full bar traces and exact gate decisions. Qualify only if the existing complete promotion predicate passes under the common experiment contract. Passing is permission for a frozen observational candidate, not promotion.

Diagnostics: entry-loss/score/trailing and simultaneous exit counts, threshold overshoot, exposure, trade counts, completed-trade outcomes, re-entry delays and fees. Describe missed recoveries after candidate-specific loss exits over fixed 1/4/7-day horizons (4/16/28 six-hour bars), censoring incomplete/gapped horizons and preserving all events; these are descriptive and cannot select another policy. Include actual baseline-versus-candidate path outcomes because early exits alter future entries.

All historic periods are already inspected; this is a conditional retrospective component test, not untouched validation. If it fails, retain the negative result and stop. If it qualifies, freeze artifact/configuration/source hashes, then collect matched TradingView chart/trade exports and validate chart data before parity; observe genuinely new data without retuning. No broad architecture/seed search follows automatically.
