fix(quickadapter): sample PnL momentum per candle (#117)
Sample the take-profit declining-PnL momentum gate once per candle instead of
per callback throttle, so velocity/acceleration are computed on a
candle-uniform series.
- Window sizing: ceil(30/tf)+1 samples (>=30 min velocity span on any
timeframe), floored to 4 so both velocity and acceleration t-statistics are
computable; warn when the nominal window is floored.
- Warm-up: fail open (never block a profitable take-profit exit) until a full
momentum window is available.
- Persist a candle-date and timeframe marker with the PnL history; reset the
series on legacy-history migration, timeframe change, or a candle
discontinuity (forward gap or backward/non-monotonic date), persisting the
reset before the append re-read.
- Fail open when the last candle lacks a valid date rather than gating on a
stale series.
- Dedupe the take-profit order tag into a helper; type the trade history via a
TypedDict.