Separate a system from its software

A trading system defines signals, sizing, exits, and evaluation. An algorithm may implement those rules or optimize execution. The 2026 CMT Program Guide includes systematic trading and model evaluation across levels, with Level III application of trading systems and risk. Algorithmic order-routing engineering is useful enrichment here; do not assume every software detail is an official exam objective.

A rule is testable only if another analyst can reproduce it from the same dated data. "Buy a strong breakout" is incomplete. Specify the universe, adjusted price field, resistance definition, signal observation time, earliest fill, size, stop or exit, rebalance, and treatment of missing data.

Example specification

An illustrative daily system selects liquid stocks from a predefined universe. At each daily close it flags a stock when the close exceeds the highest close of the prior 20 completed sessions and the broad benchmark is above its 100-day moving average. It submits a marketable order at the next session's open, subject to a maximum 2% portfolio name weight and a 0.5% planned loss budget. It exits after a close below the previous 10-day low, or earlier if the name cap requires a reduction. The lookbacks exclude the current bar from the breakout comparison.

This is not a recommended trading strategy or official exam formula. It is a sufficiently explicit object to audit. A backtest that buys at the signal close without a realistic closing-auction mechanism looks ahead. A universe drawn from today's surviving stocks excludes failed and delisted securities. Corporate actions, holidays, halts, and thin spreads must be handled.

Worked expectancy check

Suppose a small out-of-sample set contains 40 trades: 16 wins averaging 300 and 24 losses averaging 150, all after recorded fees and slippage. Gross win contribution is 16 × 300 = 4,800; gross loss contribution is 24 × 150 = 3,600. Net is 1,200, or 30 per trade. The win rate is only 40%, but the average win is twice the average loss. Profit factor is 4,800/3,600 = 1.33.

This arithmetic does not establish a robust edge. Forty trades may be too few; the results could depend on one market regime or correlated events. If the cost estimate was too low by 40 per trade, adjusted net becomes 1,200 - 40 × 40 = -400. The case shows why execution assumptions matter as much as signal logic.

Validation that matters

Split research and evaluation chronologically. Freeze parameter choices before the out-of-sample period. Compare against a simple benchmark, report exposure and drawdown, and inspect results by asset, regime, and time. A walk-forward process can show how parameters behave when recalibrated, but repeated redesign after every failure still leaks information from the test set.

Check for survivorship, look-ahead, selection, and multiple-testing bias. If a system tests 200 indicator combinations and reports only the winner, its apparent performance needs skepticism. A strategy that is profitable only with zero spread is not implementation-ready.

Live controls and invalidation

Even a validated signal needs order limits, duplicate-order prevention, maximum position and daily loss controls, market-data health checks, and a kill switch. If data are stale, an exchange halts, or actual fills depart materially from assumptions, pause the strategy and review. A system should state when it is disabled, not only when it enters.

Operational risk differs from market risk: a coding error can produce orders that the strategy never intended. Reconcile live orders and positions against the model daily. Record changes with version numbers and the reason for each change so a later review can distinguish strategy behavior from software behavior.

Make the backtest reproducible

A strong system report lets another analyst reconstruct every trade. Preserve the rule version, universe membership at each date, data source, timezone, signal timestamp, intended order type, fill assumption, costs, and rejected orders. If one is missing, a surprisingly good result can be impossible to audit.

Suppose the 20-day breakout system's best historical result occurs only after excluding two stocks that delisted during the test. That changes the investable universe using future information. Include those securities with realistic delisting returns or limit the inference. Similarly, a strategy that chooses its 20-day lookback after trying 5 through 100 days should be evaluated on a later period untouched by that search.

For the 40-trade example, report dispersion too. A net gain of 1,200 could arise from one 2,000 winner and many losses or from a broad set of positive outcomes. Those paths have different fragility. Report largest win and loss, maximum drawdown, exposure, and concentration of returns by period. A system with positive average expectancy but intolerable drawdown may still be unsuitable for a client.

Before live deployment, run the rules in a shadow account that records signals and hypothetical orders without sending capital. Compare these with independent calculations and the assumed backtest fills. A mismatch may reveal time-zone errors, delayed data, duplicate orders, or corporate-action handling problems. This stage does not prove profitability, but it can prevent a coding mistake from masquerading as a market loss.

After deployment, monitor three separate streams: strategy signals, actual executions, and portfolio positions. A model can issue the correct signal while the order fails; an order can fill correctly while the portfolio already exceeds a cap. Reconcile all three. If the discrepancy threshold is breached, pause orders and investigate before changing the trading rule itself. Maintain a dated change log so research results can be tied to the code version that produced them.

Common traps and self-check

Avoid treating a fitted curve as validation, ignoring transaction costs, using the current bar to define its own breakout threshold, and changing parameters after each loss. "Automated" is not synonymous with disciplined.

Self-check: A backtest signals at Friday's close and records a purchase at Friday's opening price. What is wrong? Answer: The opening price preceded the close-based signal. The trade uses future information. Model the next executable price after the signal is known.

Next, write a one-page rule specification and have someone else calculate three signals without your help. Compare its risk and model-evaluation steps with the official objectives.

Charts load as you approach this section.