#55 — Dynamic position sizing
Hypothesis — what it tests
Whether computing position size as a constant fraction of settled account balance keeps the per-trade risk fraction and margin utilization constant as the account compounds.
Description
An infrastructure change rather than a signal experiment: the live momentum services (fx-price-mom-live on 011, fx-sma-live on 012, then the four Session-079 variant services) switched from hardcoded unit counts to dynamic sizing computed from the OANDA settled balance — units = max(1, round(balance x 1.25)), refreshed every 3600s. Using balance rather than NAV avoids a feedback loop where unrealized drawdown on open positions cuts size mid-cycle; per-trade units are stored on the PairState so DB records stay exact. Mechanically it worked (011 $20.22 → 25u; 012 $22.25 → 28u), and margin utilization stays roughly constant (~58-60%) as the account grows or shrinks. The audit-table verdict is mixed because the thing being sized was the TP-only/no-SL momentum book: constant-fraction sizing on a strategy family with an unbounded adverse tail scales the hidden risk right along with the wins — the tail the finite-margin re-validation (entry 57) later exposed. The same formula (at 1.25-1.3x) was later reused on the bounded-risk retrace (009) and SMA-Stack (010) services.
Key result
Algorithms
Interactive version (search, filters, figures): the experiment explorer.