After COVERED closes the older leg, the hedge's break-even lock only floored the
SL at the hedge's OWN entry, so it could trail back down and the pair ended net
negative even though coverage hit HedgeRecoveryPct momentarily. The graduated
hedge now carries a hedgeLockProfit = coverNeeded (HedgeRecoveryPct% of the
older leg's locked loss); ManageTrailingTPSL floors the SL at that profit level
(independent of the trailing gate) so the pair can never net below the recovery
target, while HedgeTrailATR still rides the SL above it.
A graduated/released hedge carries a large martingale lot. The dollar-based
TrailingDistanceValue converts to a near-zero PRICE gap on that lot, so the
trailing stop landed at market and closed the position instantly (or via the
emergency-close on a rejected too-tight modify) - cutting profit that could
have run. Graduated and released chain legs now trail at HedgeTrailATR x ATR
(default 1.0, lot-independent); set 0 to use the normal trailing settings.
Added HedgeTrailATR to all profiles.
A wick/spike that crosses HedgeTriggerATR intrabar no longer opens a doubled
hedge: the chain only starts when the reverse-direction signal score >=
HedgeMinSignalScore (HedgeRequireSignal, default on). If it was a spike the
position recovers; if the reversal is real the score builds and the hedge
fires on a later tick. Added the two inputs to all profiles (score matched to
each profile's entry threshold) and documented the gate.