rangeRider

rangeRider — Fixes

ENGINEERING COMPLETEAudited 2026-09-12· hand-written (no shared engine) engine· quantroduction· spot

Every defect the audit found and how it was repaired — the same measurements as the engineering record, without the code.

2 issues found and repaired — 1 defect, 1 warning.

# Issue Severity Surface
1 Any setting typed as 0 was silently ignored DEFECT user inputs
2 Eleven numbers on the side panel had no explanation WARNING side panel

Every fix was verified by re-running the full backtest across all 7 markets and comparing the result record against the pre-fix baseline. Where a fix is stated to change no behaviour, the two records are identical to the byte.


Any setting typed as 0 was silently ignored

Severity DEFECT · Surface user inputs · Sites 14

Every numeric setting was read through a fallback idiom meaning use the operator's value, or the baked default. In JavaScript zero is falsy, so the idiom could not tell zero from unset — a setting of zero was replaced by the baked default, with no warning and no log line.

Why it matters. Zero is a meaningful value for most of these settings, and in several cases it is the only way to turn a feature off: no minimum gain percentage, no DCA layers, a zero-fee venue, no exposure cap. The single input an operator could not express was the one that disables a behaviour. Worse, the side panel then displayed the default as though it were the operator's own setting, so there was nothing on screen to reveal that the instruction had been discarded.

RR_MAX_DCA on BTCUSDT 1h — before the fix, 0 and unset were indistinguishable

RR_MAX_DCA buys peak deployed meaning
unset 11 95.6% default of 10 DCA layers
0 — before the fix 11 95.6% ignored, silently became 10
0 — after the fix 3 16.0% DCA disabled, as typed
3 — after the fix 8 58.7% three layers

The fix. Replaced the idiom with a reader that separates "not set" from "set to zero". It returns the default for undefined, null, "" and a non-numeric value — exactly what the old idiom returned in those cases — and the operator's number for everything else, including 0. This also closes the second hole in the old idiom: a non-numeric setting parses to NaN, and only the short-circuit stopped NaN reaching the arithmetic.

Effect on live behaviour. None at any setting that previously worked. The 3-year run across all 7 markets is byte-identical before and after. The change is only visible to an operator who types 0, which previously did nothing.

Scope beyond this strategy. Pack-wide: 1,743 sites across 70 files use this idiom. This audit built the fixer and applied it to this strategy only; the tool refuses any file where an affected setting reaches a divisor, so the rest can be done safely one at a time.


Eleven numbers on the side panel had no explanation

Severity WARNING · Surface side panel · Sites 11

The Gunbot side panel showed values such as RSI, Gain, DCA Level, Round Trips and Max DD with either no tooltip property or an empty one. Hovering told the operator nothing.

Why it matters. The side panel is where an operator checks what a strategy is doing without reading its code. A number with no label explanation is not information — it is something to guess at, and guessing about Break Even or Daily loss limit while a position is open is exactly when a wrong guess costs money.

Side-panel rows on this strategy

before after
data rows 22 22
with a tooltip 11 21
with no tooltip 11 1
section headers (need none) 5 5

The one remaining row is Holding. It is left deliberately unexplained: across the pack that label is used both for a yes/no and for a quantity held, so no single wording is true everywhere. A wrong tooltip is worse than a missing one, because the operator believes it.

The fix. Filled the missing tooltips from a new shared glossary of side-panel labels, keyed on the label text. The glossary says what each number is, and where it helps, how to read it — Round Trips, for instance, becomes "Completed buy-then-sell cycles. The unit a strategy's performance is actually made of." A label absent from the glossary is reported rather than filled.

Effect on live behaviour. None. Tooltips are display text. Verified by re-running the full 3-year backtest on all 7 markets and diffing the result record — identical to the byte.

Scope beyond this strategy. Pack-wide: 1,433 side-panel rows across the pack put a number on screen with no tooltip, spread over 392 distinct labels. The distribution is heavily skewed — Anchor alone appears 101 times — so a shared glossary repairs most of it once. This audit built that glossary.