Thanks for the write-up — the analysis is correct, but we’re resolving it by removing the feature rather than fixing the formula.
As Ares mentioned in the Breakeven thread, dynamic DCA volume (“Required change”) wasn’t meant to carry over to V2: it saw very little live use, the sizing math is easy to misconfigure, and an optimistic Required change compounds into safety orders far larger than people expect — which is exactly the failure mode your three constellations describe.
So as of today’s dashboard release, the “Volume based on” control and everything under it — Required changed based on, Required change, Max volume per DCA and the required-change order size reference — are gone from the DCA and Combo bot forms. Safety-order volume is always scaled. The negative-size path you found isn’t reachable from the form any more, which is why we’re not adding the orderSize <= 0 guard: the branch is on its way out, not being maintained.
For shaping the ladder, Volume and Volume scale plus the DCA overview table/graph give you the same control with the arithmetic laid out per order — that’s the workflow we want people on.
One caveat worth stating plainly: bots that were already saved with Required change keep running the way they were configured — the engine still honours the stored setting — but the option is no longer editable in the form. If you have a bot in that state and want it moved to scaled volume, open a support ticket and we’ll sort it out.
Thanks again for the detail in the report — the reproduction cases made it quick to confirm.