← Changelog

Harris Scalper Maker — Patch Update

Patch7 June 2026· per-strategy

Audit / Issue Found

On a market-order exit (timed stop-out, max-stale exit), the strategy was booking the trade twice. Once when it placed the market sell, and again when the bot detected the resulting balance drop on the next cycle. That meant every market exit got counted as two trades, double-credited or double-debited the profit and loss, and bumped the win or loss tally twice.

Before the patch

Your trade count, win-loss record, and total profit-and-loss could drift away from what actually happened on the exchange every time a position got force-closed by the bot rather than by a limit-fill. Over time this could mean wildly inflated trade counts, false "winning streak" or "losing streak" readings, and a profit total that did not match your real balance.

After the patch

When the market-exit fires, the bot now tags that cycle with a "this fill is already counted" marker, including the exact size sold. When the balance-drop detector wakes up next cycle and sees the same fill, it subtracts the already-counted portion before adding stats. If a partial fill spills into the next cycle, only the remaining size gets counted — never the part the exit block already booked.

This means: market exits get counted exactly once. Partial fills are handled correctly. Limit fills still flow through the balance-drop detector exactly as before.

Bottom line

Your trade count, win-loss record, and profit-and-loss now match reality, so you can actually trust the stats the bot is showing you when reviewing performance.

Follow-up correctness audit, same day

A deeper review of every variable in the strategy was run against the patched code. No new code changes were needed. The carry-over tag and the balance-drop detector cooperate correctly: the tag is set before the detector runs, the wins-and-losses bumps in the detector are already gated by the remaining-quantity check, and the side-panel value labelled Pair Exposure is correct for this strategy because it runs on spot, where the formula was designed to work. Three agent-flagged concerns were checked individually and confirmed as either false positives or pre-existing semantic choices unrelated to the patch.