Forward Performance Tracking

This page tracks live execution across three dimensions: corridor adherence against backtest envelopes, structural deviation monitoring using distribution-based metrics, and measured execution slippage from live order fills. Parameters remain frozen during forward tracking. No performance-based adjustments are permitted.

Deployment Protocol

  • Parameters frozen prior to launch.
  • No discretionary intervention.
  • No optimisation during forward tracking.
  • Deviations documented without modification of logic.

Engine Execution Corridors

Corridors are clearer when viewed against each engine's own live equity curve. These links open the relevant engine with its execution corridor and recorded execution notes already visible.

Layer 1 — Execution Corridors

Demo Backtest

Upper bound

Optimistic execution assumptions. No spread variability, ideal fills.

Live Backtest

Lower bound

Conservative execution assumptions. Wider spreads, commission modeling.

Live Actual

Observed execution

Forward tracking. Performance is evaluated against the predefined execution corridor and structural monitoring thresholds.

Live observations are expected to fluctuate inside the execution envelope and through temporary sigma deviations, especially at low trade counts.

Forward tracking continues until a statistically meaningful sample size is reached.

Layer 2 — Structural Reference Monitoring

Compare live observations with the historical OOS reference ranges. Each departure is shown with its direction and source values so the reason for review is visible.

ZenWave A

Provisional · Review

240 closed trades · 4 OOS slices · 4/5 metrics available. Below the 500-trade monitoring guideline. This is a descriptive comparison, not a statistical confidence test.

Review triggered by: Daily runs Z below reference; Observations below high above reference; ROI per closed trade (proxy) below reference.

Daily runs Z
Live -2.995 · OOS -1.255–1.0814 OOS slices · deviation -2.58σBelow observed reference range — review.
Ulcer index
Live 9.403 · OOS 6.600–12.6254 OOS slices · deviation -0.23σWithin observed reference range.
Observations below high
Live 96.528% · OOS 84.848%–94.286%4 OOS slices · deviation +1.82σAbove observed reference range — review.
ROI per closed trade (proxy)
Live 0.025% · OOS 0.132%–7.341%4 OOS slices · deviation -0.92σBelow observed reference range — review.
Trailing 12-month ROI
Live — · OOS 13.088%–1164.766%421 overlapping windows · deviation unavailableUnavailable — insufficient live history for this metric.

MC drawdown rank (higher = shallower): 100.0%Separate context; excluded from the reference status.

ZenWave B

Provisional · Review

223 closed trades · 5 OOS slices · 4/5 metrics available. Below the 250-trade monitoring guideline. This is a descriptive comparison, not a statistical confidence test.

Review triggered by: Observations below high above reference; ROI per closed trade (proxy) below reference.

Daily runs Z
Live 0.192 · OOS -1.937–0.7755 OOS slices · deviation +0.51σWithin observed reference range.
Ulcer index
Live 9.588 · OOS 4.973–12.9115 OOS slices · deviation +0.55σWithin observed reference range.
Observations below high
Live 96.296% · OOS 82.424%–94.937%5 OOS slices · deviation +1.89σAbove observed reference range — review.
ROI per closed trade (proxy)
Live 0.013% · OOS 0.120%–3.095%5 OOS slices · deviation -1.48σBelow observed reference range — review.
Trailing 12-month ROI
Live — · OOS 31.050%–752.130%112 overlapping windows · deviation unavailableUnavailable — insufficient live history for this metric.

MC drawdown rank (higher = shallower): 76.2%Separate context; excluded from the reference status.

How to interpret the references and sample sizes

References are the observed minimum and maximum across OOS slices; trailing-year ROI uses overlapping windows within those slices. Slices can overlap too. Counts do not represent independent trials, and ranges are not 95% or 99% confidence or prediction intervals. A review identifies an adverse departure: lower ROI per trade or trailing-year ROI, higher ulcer index or observations below high, or either direction for daily runs Z. Favourable departures are shown separately. Missing metrics are excluded explicitly.

σ describes distance from the reference mean in sample standard deviations; it is not a p-value or an alert threshold. Trade-count guidelines indicate limited live experience and do not establish statistical confidence. Daily ROI observations use the same estimators for live and OOS data, but sampling gaps, cash flows, risk sizing and history length can differ. Live history includes current unrealised P&L at its endpoint; OOS uses reported balances. ROI per closed trade is a proxy, not risk-normalised trade expectancy. Observations below high measures sampled points, not elapsed calendar time.

Drawdown rank is separate from the reference status: a higher rank means shallower drawdown relative to the Monte Carlo sample. Its historical horizon and sizing are not matched to the live account, so a high rank does not establish safety or statistical consistency.

Layer 3 — Execution Slippage

Measured slippage across filled limit, stop, and stop-limit orders.

Positive values indicate execution worse than the requested price; negative values indicate price improvement.

Order counts may differ from headline trade totals because execution-level telemetry was introduced after launch.

MetricZenWave AZenWave BZenWave BookAll Accounts
Trades3323065851,223
Median Slippage+0.20 pips+0.10 pips+0.10 pips+0.10 pips
Mean Slippage+0.57 pips+0.58 pips+0.54 pips+0.56 pips
Std Dev1.90 pips1.82 pips1.92 pips1.89 pips
Max Adverse17.30 pips16.20 pips18.00 pips18.00 pips
Best Improvement-3.70 pips-3.20 pips-7.60 pips-7.60 pips
Adverse / Zero / Improved63.3% / 22% / 14.8%61.4% / 23.2% / 15.4%60.3% / 24.8% / 14.9%61.4% / 23.6% / 15%

Mean is the arithmetic average, median is the middle observation, std dev shows dispersion, max adverse is the largest positive slippage, and best improvement is the most negative slippage. Adverse / Zero / Improved shows the share of sampled orders in each bucket.

By Event Type

Each row shows mean slippage for that event type, with the sample count in parentheses. Entry covers opening fills and same-side adds; Exit covers opposite-side fills linked to the same execution chain.

EventZenWave AZenWave BZenWave BookAll Accounts
Entry+0.44 pips(200)+0.43 pips(184)+0.40 pips(351)+0.42 pips(735)
Exit+0.77 pips(132)+0.80 pips(122)+0.76 pips(234)+0.77 pips(488)

Entry and exit rows appear only where execution linkage is available in historical records.

By Session

Each cell shows mean slippage for orders filled in that session, with the sample count in parentheses.

SessionZenWave AZenWave BZenWave BookAll Accounts
Sydney+2.70 pips(4)+8.00 pips(1)+3.76 pips(5)+3.76 pips(10)
Tokyo+0.35 pips(132)+0.36 pips(126)+0.37 pips(240)+0.36 pips(498)
London+0.69 pips(114)+0.73 pips(106)+0.70 pips(205)+0.70 pips(425)
London/NY+0.55 pips(55)+0.55 pips(51)+0.29 pips(86)+0.43 pips(192)
New York+0.86 pips(27)+0.84 pips(22)+0.86 pips(49)+0.86 pips(98)

By Month

Each cell shows mean slippage for orders filled in that calendar month, with the sample count in parentheses.

MonthZenWave AZenWave BZenWave BookAll Accounts
2026-01+0.38 pips(12)+0.56 pips(8)—+0.45 pips(20)
2026-02+0.45 pips(49)+0.43 pips(46)+0.17 pips(61)+0.34 pips(156)
2026-03+0.36 pips(48)+0.35 pips(42)+0.36 pips(90)+0.36 pips(180)
2026-04+0.59 pips(44)+0.58 pips(41)+0.64 pips(85)+0.61 pips(170)
2026-05+0.93 pips(40)+0.80 pips(34)+0.87 pips(74)+0.87 pips(148)
2026-06+0.75 pips(43)+0.58 pips(45)+0.60 pips(88)+0.63 pips(176)
2026-07+0.81 pips(27)+0.86 pips(31)+0.82 pips(58)+0.83 pips(116)
2026-08+0.27 pips(21)+0.73 pips(22)+0.47 pips(43)+0.49 pips(86)
2026-09+0.44 pips(48)+0.48 pips(37)+0.42 pips(86)+0.44 pips(171)

Smaller monthly samples can move more sharply because each individual order has more weight in the average.

Percentile Distribution

Percentiles show the slippage level at or below which that share of sampled orders fell. P50 is the median order, while P95 marks the level exceeded by about 5% of the sample.

PercentileZenWave AZenWave BZenWave BookAll Accounts
P1-2.04 pips-1.67 pips-2.13 pips-2.10 pips
P5-0.30 pips-0.20 pips-0.40 pips-0.30 pips
P10-0.10 pips-0.10 pips-0.10 pips-0.10 pips
P25+0.00 pips+0.00 pips+0.00 pips+0.00 pips
P50+0.20 pips+0.10 pips+0.10 pips+0.10 pips
P75+0.50 pips+0.50 pips+0.40 pips+0.50 pips
P90+1.20 pips+1.20 pips+1.20 pips+1.20 pips
P95+2.99 pips+2.50 pips+2.80 pips+2.90 pips
P99+9.38 pips+9.07 pips+9.31 pips+9.60 pips

Higher percentile rows place more weight on the tail of the distribution than the center.

Slippage is measured from the requested order price to the actual fill price. Data is sourced from cTrader order history via live API and refreshed periodically.

Documentation Log

Each update is timestamped and documented. No parameter adjustments are made during forward tracking.

Execution Notes

EN-1

26 Mar 2026

Stop-Lock Timing Divergence (Execution Variance)

Cause: Minor entry-price differences (~0.001–0.003) produced variation in R-multiple calculations relative to the encoded initial stop, shifting threshold crossing.

Effect: Accounts with slightly more favorable entry reached the lock threshold and exited, while others remained below the threshold and stayed in position.

Conclusion: This reflects expected boundary sensitivity in a threshold-based system under live execution variance, not a logic inconsistency.

All environments executed identical rules with no parameter or logic differences.

EN-2

18 Jun 2026

Missed-Trades Divergence — Weekend cBot Failure (15–17 Jun 2026)

Cause: Subsequent monitoring confirmed that cTrader cBots can stop processing after weekends while still appearing active in the platform. Heartbeat logging had ceased after 12 Jun, preceding the missed-trade interval.

Effect: Both ZenWave A and ZenWave B did not place expected trades during the interval; ZenWave A additionally lacked an expected open position. This created live/backtest divergence through operational non-participation, not strategy or execution-quality degradation.

Conclusion: This was an operational cTrader cBot failure mode, not a logic inconsistency. Heartbeat continuity now provides an explicit signal that the running instance requires intervention.

Preventative procedure: The heartbeat monitor was implemented after the first incident. Every Sunday evening before market open, the heartbeat log is checked; if no current heartbeat is present, the affected cBots are restarted and verified before trading resumes.

Log date: 18 Jun 2026 — Engines were restarted and execution resumed. Sunday heartbeat checks remain active.