VIZANIXTrading Software Development
Markets and AIOperations7 min read

Model drift: knowing that the strategy stopped working before the account does

Strategies rarely fail loudly. They degrade, and the equity curve is the last place it becomes obvious. Detecting it earlier is a monitoring problem with a known solution.

Vizanix engineering · about the author

ARTICLE
7 minreading time
SECTION
Markets and AI
PUBLISHED
2026-08-29
CHAPTERS
5
READ NEXT
3
LANGUAGE
written in English
An engineering breakdown, not a rewrite of the docs.
DRIFTMONITORINGSHUTDOWN RULERETRAINING

There are two ways to find out that a strategy has stopped working. You can watch the equity curve, which will tell you in six weeks with poor confidence. Or you can watch the machinery, which will tell you in days.

Three kinds of drift, with different fixes

KindWhat movedResponse
Input driftThe distribution of features changed — volatility regime, liquidity, participant mixOften benign; the model may still be valid. Watch and wait.
Prediction driftThe model outputs a different distribution than it used toInvestigate. It may be input drift downstream, or a data pipeline bug.
Concept driftThe relationship between features and outcome changedThe model is wrong. Retraining may help; the edge may be gone.

Distinguishing them matters because the responses are opposite. Retraining on input drift is unnecessary churn. Not retraining on concept drift is trading a model that has been invalidated.

What to instrument

  • Feature distributions. Per feature, a rolling comparison against the training distribution. A population stability index or a simple quantile comparison is enough; the point is that it exists and alarms.
  • Prediction distribution. If the model used to fire on 2% of evaluations and now fires on 9%, something changed before any trade result told you.
  • Calibration. Bucket predictions by confidence and compare predicted against realised rate. A model can keep its ranking ability while losing calibration, and position sizing depends on calibration.
  • Realised versus expected edge. Predicted 12 bps, captured 4. Split into slippage and decay so you know which one to fix.
  • Rolling signal correlation. The single most useful number. It moves before P&L and it is easy to compute.
python
# Runs nightly. Cheap, and it moves weeks before the equity curve does.
def drift_report(recent, baseline):
    return {
        "psi":         {f: psi(recent[f], baseline[f]) for f in FEATURES},
        "pred_shift":  ks_stat(recent.pred, baseline.pred),
        "calibration": brier(recent.pred, recent.outcome) - BASELINE_BRIER,
        "signal_corr": spearman(recent.pred, recent.outcome),   # watch this one
    }

Write the shutdown rule before you deploy

This is the part that requires discipline rather than engineering. A rule decided while the strategy is losing money is not the same rule you would have written beforehand — the losing version always includes “give it another week”.

A workable form:

  1. Reduce size when rolling signal correlation falls below a threshold for two consecutive weeks.
  2. Stop opening new positions if it stays below for four.
  3. Full shutdown and review on breach of the drawdown limit, regardless of what the diagnostics say.
  4. Restart only after a fresh out-of-sample validation, not after the curve “looks better”.

Retraining is not automatically the answer

Scheduled retraining feels responsible and quietly introduces two problems. It makes the deployed model a moving target, so you can never fully attribute a result. And it hides concept drift: the model keeps fitting recent data and keeps reporting reasonable in-sample metrics while the edge underneath is gone.

Better: retrain on a fixed schedule for freshness, but validate every retrained model against a held-out period the same way you validated the first one. If the retrained model fails that bar, the answer is not another retrain — the answer is that the strategy is finished, which is a normal outcome and worth planning for. See alpha decay.

The cheapest version

If you implement one thing: log every prediction with its realised outcome, and compute the rolling correlation weekly. It is a few lines, it costs nothing, and it is the difference between noticing a dying strategy in two weeks and noticing it in two months.

This article describes engineering practice. It is not investment advice. Vizanix develops software and does not promise trading returns.

Blog

Read next

Alpha decay · 7 min

Alpha decay when models are cheap

Every edge has a half-life. What changed is that the tooling to find and copy an edge got cheap, so the half-life got shorter — and planning for that is part of the design.

Operations · 7 min

Monitoring a trading bot: everything except P&L

P&L tells you what happened. It does not tell you whether the machine that produced it is working — and by the time P&L reveals a broken bot, it has been broken for a while.

Want this running for you?

We write about what we build. If you need it built, get in touch — scoping is free.

Brief

Get a project estimate

Four questions and your contact. No deposit required to talk — if the job is not a fit, we say so straight away.

01What do you need
02Exchange
03Market
04Strategy
05Contacts

Prefer to write directly? Telegram @vx_ceo

Discuss a system