UM_eff = min( UM_formula , UM_formula × g(DD) , UM_cage ) with per-pair reserve carved out.
RAMP reacts to pain already showing; CAGE prevents entering states the grid could not survive;
Reserve parks hedge re-entry ammunition. Framework only — nothing on this panel drives an engine yet.
trade_gates.json (no trader writes it — wipe-proof) and ENFORCED at the
MT5 bridge each cycle: the gate is the highest-rank lever and outranks the UM override — a
vetoed order prints a [GATE] line in the trader log.
⚠ Releasing a gate back to Both fires the pending catch-up order on the next cycle at the
CURRENT UM — check the UM override before opening the gate.
| Pair | Current | Previous | Δ (rate of change) |
|---|---|---|---|
| need ≥ 2 hourly snapshots | |||
[(dAUD[i] − dAUD[i−1]) + (dCHF[i] − dCHF[i−1])] ÷ equity × 100 — the portfolio-wide acceleration of floating P&L scaled by the account's total equity at that timestamp. Crosses the zero baseline when the engines collectively flip from accelerating to decelerating. Raw unsmoothed deltas, so the line is unaffected by the Smoothing pill. Note: the readout table above stays in absolute units — only this sub-graph is in % of equity.total_AUD + total_CHF — the open money sitting there right now) and divides by each leg's average floating per held lot (leg_floating ÷ leg_lots) → how many of that leg's lots equal the standing gap. The Close-to-zero readout (above) gives how many lots to close on each leg to bring the standing net to 0 (flagging if you don't hold enough); the offsetting leg (the one whose P/L is the opposite sign) is marked because closing it would widen the gap, not close it. Where the derivative gap chart above stops the gap growing, this one closes what's already there. It uses the average floating per lot — an actual close realizes specific lots' P/L per your sell-order setting. Display-only — no execution.All values come from shared_pool.json on EC2, updated each bar by the live traders.
server.js::PAIR_GEOMETRY and mirrored in this page's PAIRS map. AUDUSD = (+1, +1). USDCHF = (−1, −1). The four panels read the same w_i, s_USD,i, s_asset,i values; each one visualizes a different angle.The four cards above the panels are direct sums over engines.
Each engine becomes an arrow from the origin into its quadrant. The bold red arrow is the vector sum — the portfolio's net pull on the (USD, asset) plane.
Each active engine is a vertex of a shape (line for 2, triangle for 3, N-gon for ≥4). The black dot is the weighted-average position; the grey cross is the geometric centroid (equal-weight ideal).
Four spokes measuring four distinct risks. Each spoke is 0 (center) → 1 (outer edge). Today's portfolio is the blue polygon.
One horizontal bar, 0% to 100% of equity. Engines stack left-to-right by margin %. Universal traffic-light zones.
2D scatter on the sign plane. Each engine becomes a bubble at its (USD, asset) quadrant. Encodes three things at once: P&L magnitude (bubble size), P&L direction (fill color), margin loading (border thickness). Designed to remain readable at 10+ pairs by jittering same-quadrant pairs around a small ring and connecting them with relationship-typed lines.
2D path on the (AUD_floating, CHF_floating) plane over the selected window. Each bar is a dot; lines connect consecutive bars; color fades from old (faint) to recent (bold). The pulsing red dot is the most recent snapshot.
Calculus view of the same data: per-bar deltas of each engine's floating P&L. White-circle markers flag |Δ| beyond 2σ — acceleration moments.
As of 2026-05-18 UM supports decimal precision in 0.1 increments (was integer-only). The change is safe because the DQN agent already operates on a clean 1× virtual world via the masking architecture (2026-04-19 decision) — only the broker-side mirror is scaled, so the agent never sees fractional UM in its state space.
The heat-band, radar, and simplex all read margin and equity in account units (USC for the Exness Cent account). All four panels are diagnostic, not predictive — they show how the pool is currently distributed, not what it will do next bar.
The validated backtest peak margin of 8.82% was computed on a 140,700-USC pool. The live account is smaller (~278k USC), so equivalent positions show as a larger margin %. Both are safe (Exness Cent stop-out is 0%), but reading the bar without that context will overstate concern.
Each pan's weight = that leg's lots × per-lot effect (its per-bar velocity, USC/bar). The beam is level when the two cancel — net delta = 0, market-neutral; otherwise it tilts toward the heavier leg. Drag the sliders, or use the buttons to neutralize via either leg (same net-zero, different total book size). Pre-filled with the chart's current live values.
The net delta gap is the residual the AUD/CHF hedge fails to cancel each bar, expressed in each leg's held-lot equivalents — "the gap right now ≈ N lots of this leg." It's a rate-of-change view (how fast the imbalance is accumulating), distinct from the standing-gap chart below it (which closes what's already accumulated). Display-only — no execution.
Per bar, the change in each leg's floating P/L is summed. When the hedge is working the two move opposite and roughly cancel; the leftover is the net drift, then smoothed over the rolling window.
How much one lot of a leg is moving the P/L per bar, averaged over recent active bars. Weekend / frozen bars (where neither leg moved) are excluded, and the line connects across them. This is the number shown in the chart header and the per-bar tooltip.
The net drift divided by a leg's per-lot effect = how many of that leg's lots equal the gap. Plotted as two lines (green = AUD-lots, blue = CHF-lots); the bold line is the leg picked in Trimming.
To flatten the net per-bar drift via one leg, change its lots by the opposite of its gap. The "To flatten the net per-bar drift" readout spells this out per leg (two options — act on either):
If the needed reduction exceeds the lots you actually hold, the readout flags it ("but you only hold X").
Effect floor. If a leg's per-lot effect is below ±5 USC/bar/lot (the leg is barely moving), the gap can't be freshly computed, so the last value is held (carry-forward) — the line stays flat (= no change) and the tooltip marks it held · effect≈0.
Display cap. A gap magnitude is clamped to ±99 lots for the chart (a leg's whole book is only ~20–40 lots, so anything beyond is off-scale).
Strength ratio. The header / tooltip also show how many × stronger one leg's per-lot effect is — larger |effect| ÷ smaller, phrased stronger-over-weaker (e.g. CHF ≈ 2.5× AUD per lot, +146%).