Occams ยท adr

Every Strategy declares a stop, and R is planned risk

The detectable floor is declared in net R (ADR-0004 context: see the floor decision), which requires the risk unit to be unambiguous. We fix **R = config.risk_per_trade, a constant**, with position size derived as R / stop_distance โ€” the donor's sealed convention (riskUsd = 175.0, _sized(stop_dist, params, costs)). **A StrategySpec without a stop fails to compile.**

Considered options

Consequences

Regime-conditional strategies โ€” the first proposer โ€” carry a disaster stop alongside their signal exit. The signal normally fires first; the stop exists to define R and bound the loss. The disaster stop's width is therefore a declared parameter subject to the same registration discipline as any other, and must not be tuned after the fact.

R is planned, not realised. A position that gaps through its stop is recorded honestly as (say) -2.7R rather than clipped to -1R. On equities this is the difference between a truthful loss distribution and a flattering one.