# BTC 4H volatility stop protocol

Recorded after the training-only baseline event study and before any candidate
replay or results. Scope: COINBASE_BTCUSD 4H only; non-promoting component screen.
Use the existing promoted entry weights and all score/gate thresholds unchanged.
No production strategy, winner, parameter file, or Pine change is authorized.

## Evidence and data boundary

Existing exports are stale. Browser inspection on September 21 found TradingView
signed out, with no loaded MLP chart. Fresh matching exports require sign-in and
the current MLP strategy on COINBASE:BTCUSD 4H, full chart history, then chart CSV
and Strategy Tester trade-list export from the same unchanged chart state.
Validate those exports and score/trade parity before trusting deployment results.
The historical screen proceeds without them as expressly requested.

Baseline discovery uses 2017-12-01 through 2020-12-31 only. Its 16 exits were all
stops; disjoint 24-bar continuations had median price return +4.38%, but mean
terminal loss avoided 1.03%. This is a hypothesis, not a trading return: changes
to holding periods displace later entries. Save all events, positive and negative.
Inspect ATR14/price, RV20, trade duration, return since entry, maximum subsequent
close recovery/decline, terminal hold advantage, and terminal losses avoided.
Horizons are 6/24/42 bars (1/4/7 nominal days); reject windows crossing missing
4H bars or evaluation boundaries. Report all events and greedy nonoverlapping
events, retaining the first available event across both stop and score types for
each horizon. These are descriptive correlated BTC events, not independent tests.

## Frozen candidates and calibration

Training: 2017-12-01 through 2020-12-31. Validation: separate flat-start calendar
years 2021, 2022, 2023. Historical evaluation: the three configured windows
2024-01-01–2024-09-30, 2024-10-01–2025-09-30, 2025-10-01–2026-02-28. Also report
2026-03-01 through the last complete existing bar, already inspected previously.
All windows start flat with indicators warmed on earlier bars. No stitched CAGR.

Five policies only:

1. Unchanged baseline fixed 5% stop (also disabled experimental control).
2. ATR14/price scaled so its training median width is 5%.
3. ATR14/price scaled so its training median width is 7.5%.
4–5. Fixed-width controls equal to each ATR policy's mean clipped requested width
on baseline holding bars in training (lagged one bar, excludes bars outside
training). This matches typical requested width without using candidate outcomes.

ATR uses true range and Wilder recursion, seeded by the first 14-bar SMA.
Calibrate its median over closed training bars only. Width = scale × ATR/price,
clipped to [2.5%, 10%]. Controls use exactly the same stop floor and ratchet.
RV20 is a diagnostic only; no second volatility family or parameter sweep.
Reject missing/nonfinite volatility at an active decision rather than fill forward
from future values. Save calibration dates, counts, median, scales and widths.

## Execution and risk contract

Preserve canonical close-based accounting: entry signal on T, returns begin T+1;
entry fee 0.5 percentage points deducted on T+1 and exit fee on exit signal bar.
The engine approximates next-open fills using the signal close. This is not
intrabar stop-order simulation. No assumed fill at the stop threshold.

Initialize high-water mark to entry signal close; initialize stop from the width
available at that close. Do not exit on the entry signal bar. On T+1 skip its high
as the canonical fill-bar convention requires. From T+2 update high-water mark
with current bar high before testing current close. For all post-entry decisions,
use the preceding closed bar's volatility/price width. Candidate stop is the
maximum of previous stop, high-water mark × (1-width), and entry close × 0.95.
Thus the stop never loosens and its maximum threshold loss from entry is 5%,
even for the wider controls. Close execution can overshoot this bound, with fees
adding loss; report overshoots explicitly. No guaranteed realized-loss cap is
possible under the unchanged execution model.

Stop wins attribution when stop and score exit coincide; record both flags.
Otherwise honor score exit immediately, including canonical dead-zone fallback.
No same-bar reentry. Honor canonical trading-window gates. An open terminal
position is marked to market, with no invented exit fee; save open-position status
and end-of-window unfilled entry signals. Disabled mode preserves a zero stop too.

## Selection and decision rule

Calibration uses training only. Freeze any nominated ATR policy using validation
only, before examining the later windows. Eligible only if: aggregate validation
entries >=20; positive median paired P&L and Calmar changes against both baseline
and its fixed-width control; P&L beats each control in at least 2/3 validation
years; and no validation drawdown worsens by more than 2 percentage points
against either control. Rank eligible policies by median Calmar improvement
versus matched control, breaking ties toward the 5% scale. If none qualifies,
nominate none. Still report the complete bounded comparison without selecting
from later outcomes. Do not revise criteria after results.

Further timeframe experiments require a nominated candidate and positive median
P&L/Calmar differences against both controls in the three historical evaluation
windows, without >2-point drawdown degradation in any window. A TradingView trial
also needs fresh matching data/parity and at least 10 genuinely untouched forward
entries with the frozen candidate; neither existing history nor the previously
inspected 2026 sample meets that requirement. Frozen promoted entries were
selected on broader history, so all results are conditional component screens,
not leakage-free end-to-end walk-forward validation. No promotion in this harness.

## Verification and outputs

Assert disabled baseline and fixed baseline-width control equal canonical
positions, entry/exit arrays and fees in every window. Test prefix causality,
future-data perturbations, stop monotonicity, cap, fill bar, equality triggers,
score/stop precedence, no reentry, disabled stop, boundary/open positions, bad
inputs and fee timing. Save per-bar returns, exposure and stops, exit events,
paired metrics (P&L, calendar Calmar, drawdown, entries/exits/exposure), candidate
stop outcomes, frozen selection, input/source/output hashes and environment.
Run the repository fast tests and audit protected-file hashes. Report exact
reproduction command and evidence-based next step; leave all changes local.
