Portfolio equity (combined, all strategies)
Strategy health
Latest alerts
| ID | Strategy | Symbol | TF | Magic | Status | Trades | Net P&L | Win rate | PF | Max DD | Drift |
|---|
1. Import trades (MT5 CSV history export)
In MetaTrader 5: Toolbox → Account → History tab → right-click → Report, or export your statement and save as CSV. Trades are attributed to strategies by Magic Number. Files are processed locally in your browser — nothing is uploaded.
Expected CSV columns
time, symbol, type (buy/sell), size, entry, exit, profit, commission, swap, magic
(order and extra columns are ignored; header row optional; semicolon or comma separated)
2. Data & settings
Backtest vs Live Drift Check
Upload both your backtest history and live/demo results to statistically test whether the live EA still behaves like the backtest. Uses win-rate z-test, expectancy ratio, optional trade-frequency test and Monte Carlo drawdown percentile. All processing is local.
No analysis yet. Upload a backtest and a live history, or load the example, then press Analyze drift.
Correlation of daily strategy returns
Exposure by symbol (share of total open lots)
Risk contribution (share of portfolio volatility)
Approximation from each strategy's daily P&L volatility; not a substitute for full covariance analysis.
Unlock Pro
Algo Operations Monitor is free to use for up to 3 strategies with unlimited CSV imports, drift detection and alerts. Pro removes all limits and unlocks portfolio risk tools and the dedicated Drift Check statistical engine:
| Free | Pro | |
|---|---|---|
| Strategies tracked | 3 | Unlimited |
| CSV import, drift score, alerts, dashboard | ✔ | ✔ |
| Portfolio correlation heatmap & risk contribution | — | ✔ |
| Exposure & concentration warnings | — | ✔ |
| Metrics CSV export | — | ✔ |
| Advanced drift check (trade-frequency z, Monte Carlo drawdown, score) | — | ✔ |
| Future updates | — | ✔ |
Algorithmic Trading Strategy Monitor
A free browser-based monitor for MT5 Expert Advisors and other algorithmic trading strategies. Import your trade history as CSV and see, for every strategy: live versus backtest drift, drawdown, win rate, profit factor, expectancy and operational alerts — all computed locally in your browser. No account, no upload, no data leaves your device.
What is the Algorithmic Trading Strategy Monitor?
Most traders can test strategies easily. The hard part is operating them after deployment: which EAs are actually performing as expected, which have started deviating from their backtest, and which are silently stop trading. This tool gives you a per-strategy health view: register your strategies, import trades from your MT5 CSV history, and the monitor attributes every trade to the right strategy by Magic Number, computes standardized performance metrics and a 0–100 drift score that measures how far live behavior has moved from your backtest expectations.
The Drift Check tab adds a rigorous statistical layer: a win-rate z-test, expectancy ratio, optional trade-frequency test and a Monte Carlo drawdown percentile computed by reshuffling backtest trades — plus a 0–100 drift score. It refuses to judge until you have a configurable minimum number of live trades (default 30).
How to use it
- Add your strategies — name, symbol, timeframe, Magic Number and status.
- Import trades — export your MT5 account history to CSV and drop it into the Import tab. Trades are matched to strategies by Magic Number.
- Set expectations — for each strategy, enter the trade frequency, win rate, expectancy and max drawdown from your backtest.
- Watch the drift score — 0 means live behaves like the backtest; higher means deviation. Alerts fire when drawdown, silence or drift cross your thresholds.
- Run the Drift Check — for a deeper per-EA analysis, upload your backtest and live CSVs side by side in the Drift Check tab and get a plain-language verdict with supporting statistics.
How the drift score works
For each component the tool computes a normalized penalty — how far the live value is from the backtest expectation relative to a tolerance — and combines them into a weighted 0–100 score. Default weights and tolerances:
- Trade frequency — weight 0.15, tolerance ±30%
- Win rate — weight 0.20, tolerance ±10 percentage points
- Expectancy — weight 0.25, tolerance ±25%
- Average win — weight 0.10, tolerance ±20%
- Average loss — weight 0.10, tolerance ±20%
- Drawdown vs expected — weight 0.20, penalty starts above 120% of the backtest max drawdown
The drift score needs at least 30 trades before it is shown as valid — smaller samples display an explicit "insufficient data" state instead of a misleading number.
Drift Check verdicts
In the Drift Check tab, results are presented as:
- Within normal variance — live results sit inside what the backtest allows.
- Watch — one test is outside the backtest range.
- Diverged — two or more tests are outside the range.
- Not enough data — fewer live trades than your configured minimum.
Tests include a win-rate z-test at your chosen confidence level, a live expectancy threshold (less than half backtest), and (Pro) a trade-frequency test plus a Monte Carlo drawdown percentile. The tool shows evidence, not proof, that an edge changed.
Example
A trend-following EURUSD strategy expected to win 42% of trades with 1.6 expectancy and 12% max drawdown has been live for 3 months. The monitor finds a 31% win rate over 45 trades, expectancy of 0.9 and a 17% drawdown. The drift score comes out around 58/100: win rate, expectancy and drawdown are all outside tolerance, so the strategy is flagged for investigation — while a second strategy with identical P&L but on-expectation behavior shows drift under 10.
Frequently Asked Questions
Is my trading data uploaded anywhere?
No. All parsing, metrics, drift calculations and the Drift Check statistical engine run in your browser. Your data is stored only in your own browser's local storage.
What is a Magic Number?
MT5 Expert Advisors tag their trades with a Magic Number. It is the most reliable way to attribute a trade to the strategy (EA) that placed it, even when several EAs share one account.
Can I use it without MT5?
Yes. Any trades exported as CSV with time, symbol, side, size, entry, exit and profit can be imported and attributed manually per strategy. The Drift Check tab accepts any CSV with a Profit column.
Does this tool trade for me?
No. It monitors and evaluates only. It never places, modifies or closes orders, and it does not generate strategies or signals.
Why do live results differ from backtests?
Slippage, spreads, execution delay and changing market conditions all move results, and small samples swing widely by chance. The Drift Check tab helps you quantify that difference statistically.
How many trades are enough?
Thirty is a common floor. More is better, and the Drift Check tab lets you raise the minimum live-trade count.
What does Pro add?
Unlimited strategies, the portfolio correlation heatmap, risk-contribution and exposure analytics, concentration warnings, CSV export, and the full statistical Drift Check engine (trade-frequency test, Monte Carlo drawdown percentile, drift score).
Related tools
More free tools for traders and builders are published regularly on AlamToolKit.com.
AlamToolKit.com · Trading Tools
Algo Operations Monitor — Complete User Guide, Field-by-Field Walkthrough & Drift-Score Arithmetic
A working reference for every field, tab and calculation in the Algo Operations Monitor. It explains how trades are imported and matched to strategies by Magic Number, how the standardized metrics (win rate, profit factor, expectancy, max drawdown, Sharpe) are derived, how the 0–100 drift score is calculated and weighted, and how the statistical Drift Check engine builds its verdict. It also covers a worked example with hand-checkable numbers, an interactive sanity check for the drift score, the accuracy limitations you should disclose to any subscriber, and the mistakes that most often produce a wrong verdict.
What This Calculator Is Used For
Deploying an Expert Advisor or an algorithmic strategy is easy. Operating it after deployment is the hard part. Within weeks of going live, most strategies either drift away from their backtest behaviour, stop trading because a broker changed a symbol, or start accumulating a drawdown that the backtest never anticipated. The Algo Operations Monitor is a browser-based operations cockpit for exactly this problem: it answers three operational questions per strategy, on the same screen, in the same language.
- Is it performing? — standardized metrics (win rate, profit factor, expectancy, average win, average loss, max drawdown, Sharpe, max consecutive losses) computed from the strategy's actual trade history.
- Is it still behaving like the backtest? — a 0–100 drift score that measures how far live behaviour has moved from the expectations you recorded, with a per-component breakdown so you can see exactly which side of the strategy is deviating.
- Is anything wrong right now? — operational alerts for drawdown breaches, profit-factor inversion, losing streaks, drift thresholds and silence (no trades for N days on a live strategy).
The Drift Check tab layers a rigorous statistical test on top of the operations view: a win-rate z-test against the backtest, an expectancy threshold test, and (Pro) a trade-frequency test plus a Monte Carlo drawdown percentile. It refuses to deliver a verdict until a configurable minimum number of live trades exists (default 30).
Step-by-Step Guide — Filling In Every Field
The tool is organised as seven tabs. Tab 1 (Dashboard) is read-only. Tab 2 (Strategies) is the input form. Tabs 3 (Import) and 4 (Drift Check) bring in data. Tab 5 (Portfolio) and parts of Tab 4 are gated behind the Pro license. Tabs 6 (Alerts) and 7 (Upgrade) are output and monetization. Every change you make in the Strategies and Import tabs updates the dashboard, drift scores and alerts immediately.
-
Strategy name Required
What it is: the human-readable label shown on every tile, alert and report. Units: none — free text up to a reasonable length. It is used only as a display value; the internal identifier (
STR-01,STR-02...) is auto-generated and stable.Microcopy: use a name that survives being read on a phone at 3 a.m. — e.g. EUR trend H1 rather than strategy_v17_final. The name appears verbatim in every alert.
-
Symbol Required
What it is: the trading symbol the strategy operates on, e.g.
EURUSD,XAUUSD,US500. Units: none — text, automatically upper-cased. It is used for the symbol-exposure aggregation on the Portfolio tab and for display.Common mistake: entering the broker's exact ticker including the suffix (
EURUSD.pro,EURUSD.a). The monitor does not require the broker suffix, but if two strategies trade the same underlying with different suffixes, the exposure aggregation on the Portfolio tab will treat them as different symbols. Normalise the ticker before entering. -
Timeframe
What it is: the chart timeframe the EA operates on — M1, M5, M15, H1, H4, D1, W1 or MN1. Units: a dropdown; no numeric input. It is recorded for reference and shown in the strategy table; it does not affect any calculation.
-
Magic Number
What it is: the numeric tag that the Expert Advisor stamps on every trade it opens. This is the primary key used to attribute imported trades to a strategy — when several EAs share one MT5 account, it is the only reliable way to tell their trades apart. Units: an integer, typically between 100000 and 999999999.
Common mistake: leaving the field blank and then importing a mixed account statement. The monitor will happily import the trades, but it will attribute them to whichever strategy is currently selected in the Import tab — which is almost certainly wrong for most of the rows. Always enter the Magic Number before importing.
-
Lifecycle status
What it is: where the strategy sits in its operational lifecycle. Units: a dropdown with eight options. The value changes which alerts fire:
- research, backtest — development stages. Drawdown, drift and silence alerts are suppressed; the strategy is tracked but not expected to trade.
- validation, paper — pre-live. Drawdown and drift alerts fire; silence alerts fire (a paper strategy that stops trading is a signal).
- live — the full alert set fires, including the profit-factor-below-1 alert and the silence alert.
- paused, suspended — temporarily inactive. Alerts are suppressed for drawdown and silence.
- retired — permanently stopped. Only drift alerts are suppressed; the strategy stays visible in the table for historical reference.
Common mistake: leaving a live strategy set to "backtest". You will not receive a single drawdown alert until you change it, because the status is what tells the alert engine whether a breach is unexpected.
-
Direction
What it is: whether the EA trades long-only, short-only or both directions. Units: a dropdown (
both,long,short). It is currently recorded for reference; per-direction metrics are not yet separated. -
Initial capital
What it is: the account balance in the strategy's reporting currency at the start of the period covered by the imported trades. Units: account currency (USD, EUR, etc. — the tool is currency-agnostic and does not convert). Effect: it is the denominator for drawdown percentage and for the daily-returns Sharpe calculation.
Common mistake: entering the current balance rather than the balance at the start of the trades. If you imported three months of trades into an account that has since grown, the drawdown percentage will be understated by the growth factor. Use the balance on the first day of the imported period.
-
Backtest expectations
These four fields are the "expected value" side of every drift component. They are the numbers you recorded in the backtest, and they define the boundary between "still behaving like the backtest" and "drifted". If a field is left blank, that component is skipped in the score (it contributes neither numerator nor denominator).
Trades per month (backtest)
What it is: the average number of trades the strategy opened per calendar month during the backtest. Units: decimal (e.g.
18means 18 trades per month;2.5means two and a half). Tolerance: ±30 %. A live rate within 30 % of the backtest rate produces a small penalty; a rate outside that produces a larger one, capped at the full weight.Win rate % (backtest)
What it is: the percentage of trades that were profitable in the backtest. Units: percent, from 0 to 100 (e.g.
42, not0.42). Tolerance: ±10 percentage points. A live win rate of 38 % against a 42 % backtest is 4 points off, which is 40 % of the tolerance — a moderate penalty; 30 % against 42 % saturates the penalty.Common mistake: entering the live win rate instead of the backtest one. The comparison is always live vs backtest, and the field label says so; if you fill it with the live number, the drift score becomes approximately zero by construction and the strategy looks healthy no matter what it is doing.
Expectancy / trade (backtest)
What it is: the average net profit per trade in the backtest, in the account currency. Units: currency amount per trade (e.g.
1.20). Tolerance: ±25 % relative. Because it is usually a small number, the relative tolerance is applied to the absolute value — a backtest expectancy of $1.20 tolerates a live expectancy down to $0.90 before any penalty, and saturates the penalty below about $0.60.Max drawdown % (backtest)
What it is: the maximum peak-to-trough equity decline recorded in the backtest, expressed as a percentage of peak equity. Units: percent (e.g.
12for 12 %). Tolerance: the penalty only starts once the live drawdown exceeds 120 % of the backtest value, and saturates at 120 % + 20 % = 140 %. A backtest max DD of 12 % therefore tolerates a live DD up to 14.4 % for free, and saturates at 16.8 %.Common mistake: entering the live drawdown, or entering the drawdown as a decimal (
0.12instead of12). The UI multiplies by 100 internally when storing, so the field expects the percentage value as typed. -
CSV import
What it is: the mechanism that brings real trade history into the tool. Accepted format: a CSV or plain-text file exported from MT5, containing at minimum a
profitcolumn and either amagicorsymbolcolumn to identify the trade. Header row is auto-detected. The separator (comma, semicolon or tab) is auto-detected from the first row.Column names the importer will recognise; anything else is ignored. Field Accepted header names Required? Notes timetime, opentime, closetime, date No ISO or YYYY.MM.DD HH:MM:SS. Used for drawdown sequencing and Sharpe.symbolsymbol, item No* * At least one of symbol or magic is required per row. typetype, side, direction, buysell No buy/sell, long/short. Rows with an unrecognised type are skipped. sizesize, volume, lots No Used for the exposure aggregation only. entryentry, open, entryprice, openprice No Not used in metrics; kept for reference. exitexit, close, exitprice, closeprice No Not used in metrics; kept for reference. profitprofit, pnl, netprofit Yes Numeric. Rows with a missing or non-numeric profit are skipped and counted. commissioncommission, fee, fees No Numeric. Added to profit before metrics (typically negative). swapswap No Numeric. Added to profit before metrics. magicmagic, magicnumber, identification, identifier No* * Used to attribute the trade to a strategy. commentcomment, commentary No Free text, retained. Validation: file size is capped at 10 MB and total rows at 50,000. A file that is larger is rejected with a message asking for a shorter date range. A file with zero parseable profit rows is rejected. Rows with no profit value are silently skipped and reported in the success message.
Common mistake: re-importing the same file twice. The tool appends rather than replaces, so every metric doubles and every "trade" becomes two. There is no deduplication; the way to undo is to delete the strategy and re-import from scratch.
-
Drift Check inputs
The Drift Check tab compares two CSVs — a backtest history and a live/demo history — for one EA, and produces a statistical verdict. Its inputs are:
- Backtest trades (CSV) — the trade-by-trade history of the backtest. Requires a
Profitcolumn; aClose Time,Type,Commission,Swap,MagicorCommentcolumn is optional but improves the frequency test. - Live or demo trades (CSV) — same format, from a live or demo account.
- Initial capital — account currency; the denominator for drawdown percentages. Same default (10,000) as the strategy form.
- Strategy filter — optional Magic Number or comment substring. When several EAs share one account, this is how you isolate the one you are analysing. Blank means "use every row".
- Minimum live trades — the threshold below which no verdict is issued. Default 30, allowed 5–1000. Below this, the result is Not enough data and no statistical claim is made.
- Confidence level — 90 %, 95 % or 99 %. It sets the critical z-value for the win-rate test (1.645, 1.960 or 2.576) and the percentile threshold for the Monte Carlo drawdown test. Higher confidence means the tool is more conservative about declaring divergence.
- Monte Carlo runs (Pro) — the number of reshuffles of the backtest trades used to compute the live-drawdown percentile. 500–10,000, default 2,000. More runs mean a more precise percentile at the cost of CPU time.
- Backtest trades (CSV) — the trade-by-trade history of the backtest. Requires a
-
License key
What it is: the key from your Gumroad receipt. Units: a text string of at least 8 characters. Effect: activates the Pro tier on this device, unlocking unlimited strategies, the portfolio correlation heatmap, risk-contribution analytics, concentration warnings, metrics CSV export and the full statistical Drift Check engine. The key is verified against Gumroad's public verify endpoint; a refunded or charged-back purchase is rejected on the next check.
Common mistake: pasting the Gumroad order ID instead of the license key. Gumroad issues both; only the license key will pass verification.
-
Alert settings
Two sliders in the Import tab control the alert thresholds:
- Drawdown alert threshold — percent of peak equity (5–50, default 20). A strategy whose live max DD crosses this triggers a high-severity alert.
- Silence alert after — days without a trade for a live strategy (3–60, default 14). A live strategy that has opened nothing for this many days triggers a low-severity alert.
Two additional thresholds are fixed in the tool and cannot be changed from the UI: the drift alert bands (25 = watch, 50 = high) and the consecutive-loss alert (5). The drift weights and tolerances are documented in the accuracy section below.
Worked Example — A Live Strategy That Has Drifted
A trend-following EURUSD H1 EA has been live for three months. Its backtest recorded a 42 % win rate, $1.60 expectancy per trade, a $190 average win, a $130 average loss, a 12 % maximum drawdown, and roughly 18 trades per month. Three months of live trading have produced 45 trades with a 31 % win rate, $0.90 expectancy, a $160 average win, a $175 average loss and a 17 % maximum drawdown. The initial capital is $10,000.
Component 1 — Trade frequency
Actual rate: 45 trades over 3 months = 15.0 trades/month. Expected: 18/month. Relative deviation: |15 − 18| / 18 = 16.7 %. Tolerance is 30 %, so the penalty is 16.7 / 30 = 0.556.
Component 2 — Win rate
Actual: 31 %. Expected: 42 %. Absolute deviation: 11 percentage points. Tolerance is 10 pp, so the penalty is 11 / 10 = 1.10, capped at 1.000.
Component 3 — Expectancy
Actual: $0.90. Expected: $1.60. Relative deviation: |0.90 − 1.60| / 1.60 = 43.75 %. Tolerance is 25 %, so the penalty is 0.4375 / 0.25 = 1.75, capped at 1.000.
Component 4 — Average win
Actual: $160. Expected: $190. Relative deviation: |160 − 190| / 190 = 15.8 %. Tolerance is 20 %, so the penalty is 0.158 / 0.20 = 0.789.
Component 5 — Average loss
Actual: $175. Expected: $130. Relative deviation: |175 − 130| / 130 = 34.6 %. Tolerance is 20 %, so the penalty is 0.346 / 0.20 = 1.73, capped at 1.000.
Component 6 — Drawdown
Actual: 17 %. Expected: 12 %. The penalty only starts at 120 % of expected (14.4 %), and saturates at 140 % (16.8 %). The excess above 120 % is (17 − 14.4) = 2.6 percentage points, and the tolerance above that threshold is (16.8 − 14.4) = 2.4 pp. Penalty: 2.6 / 2.4 = 1.08, capped at 1.000.
Combining the components into the drift score
Each component is weighted: frequency 0.15, win rate 0.20, expectancy 0.25, average win 0.10, average loss 0.10, drawdown 0.20. The score is 100 × Σ(w · penalty) ÷ Σw, over the components that actually have data.
| Component | Weight | Penalty | Weight × Penalty |
|---|---|---|---|
| Trade frequency | 0.15 | 0.556 | 0.0834 |
| Win rate | 0.20 | 1.000 | 0.2000 |
| Expectancy | 0.25 | 1.000 | 0.2500 |
| Average win | 0.10 | 0.789 | 0.0789 |
| Average loss | 0.10 | 1.000 | 0.1000 |
| Drawdown | 0.20 | 1.000 | 0.2000 |
| Total | 1.00 | — | 0.9123 |
| Drift score = 100 × 0.9123 / 1.00 | 91 | ||
Interpretation. A drift score of 91 is well above the 50 threshold, so the dashboard shows this strategy as DRIFT and a high-severity alert fires. Every non-drawdown component is at or near its full penalty, which means the live behaviour is not a "small noise" effect — the win rate, expectancy and average loss are all materially worse than the backtest recorded. The average win has shrunk, which suggests the EA is now taking smaller profits and leaving the full-size losses in place. This is the profile of an edge that has changed, not of a run of bad luck.
Contrast. A second strategy on the same account has, over the same period, a 15.2 trades/month rate (versus 15 expected), a 46 % win rate (versus 45 expected), a $1.55 expectancy (versus $1.60), and a 9.8 % drawdown (versus 10). Every component's penalty is under 0.15, so the drift score comes out at 12. The dashboard shows this strategy as OK, and no alert fires. The difference between the two is not the P&L number — it is the shape of the behaviour relative to what was promised.
Accuracy Note — What These Numbers Do and Do Not Guarantee
Every metric and every drift score in the Algo Operations Monitor is a deterministic function of the CSV you imported and the expectations you entered. There is no hidden model, no proprietary weighting and no machine learning. The same inputs always produce the same outputs. The limitations are therefore stated up front, not discovered later:
What is verified
The metric formulas (win rate, profit factor, expectancy, average win, average loss, max drawdown, consecutive loss streak, Sharpe approximation) are the standard definitions used across performance-attribution tools. The drift score formula and every component's weight and tolerance are shown on this page and in the tool's drift breakdown panel — nothing is hidden. The Drift Check win-rate z-test uses the standard two-sided formula with a critical value from the chosen confidence level. The Monte Carlo drawdown percentile is computed by reshuffling the backtest's per-trade P&L into blocks the same size as the live history — a well-established method for generating a distribution of "what the backtest could plausibly have produced over this many trades".
What is not verified
The price data and the trade history are your responsibility. If the imported CSV is missing a commission column, every metric is optimistic by that amount. If the backtest CSV came from a different tick data feed than the live account, some of the drift is feed noise rather than strategy change. If the initial capital is wrong, drawdown is wrong. The tool has no way to know that your data is inconsistent — it can only report arithmetic about the rows you supply.
What it is not
A drift score of 0 is not a prediction of profit. A drift score of 100 is not proof that the strategy is broken — it is proof that the live behaviour differs from the backtest on the dimensions you chose to measure. Neither number accounts for market regime, position sizing change, or a change in spread and slippage that the backtest did not model. Every report the tool can export is a description of past behaviour, not a forecast of future returns.
The most useful question you can ask of a drift score is not "is it high or low" but "which component is driving it". A single component at full penalty with five at zero is a very different story from six components each half-saturated: the first suggests one specific change in behaviour (a symbol delisting, a spread doubling), the second suggests a broad shift in the edge.
Live Sanity Check — The Drift Score Arithmetic
This mini-playground computes the drift score for the two components that trip up users most often: win rate (absolute tolerance in percentage points) and expectancy (relative tolerance). Change the inputs, press evaluate, and read the score. The formula on this page is the same one the tool applies — nothing is hidden.
Tip: win rate tolerance is ±10 percentage points, expectancy tolerance is ±25 % relative. The default values above reproduce the worked example on this page: both penalties saturate, and the combined score for just these two components is 100.
Common Input Mistakes and How to Avoid Them
Mistake 1 — The wrong side of the comparison
Every backtest expectation is on the expected side of the drift component. If you enter the live value into the "backtest win rate" field, the drift score becomes approximately zero by construction and the strategy looks healthy no matter what it is doing. The field labels say "backtest", and the drift breakdown panel shows both actual and expected next to each component. Check the breakdown any time a score looks implausibly low.
Mistake 2 — Units
Win rate and drawdown are entered as percentages (42, not 0.42). Expectancy, average win and average loss are entered as currency amounts. Trade frequency is entered as a decimal trades-per-month rate. Entering 0.42 into the win-rate field produces an expected win rate of 0.42 % and every live strategy will show a high drift score as a result.
Mistake 3 — Missing Magic Numbers
If several EAs run on the same account and you leave the Magic Number blank on any of them, imported rows that belong to those strategies cannot be attributed correctly. They will go to whichever strategy is selected in the Import tab at the moment you press the button. Either fill in every Magic Number, or filter the CSV to one strategy per file before importing.
Mistake 4 — Commission and swap excluded from the CSV
If the export does not include commission and swap columns, the monitor uses the raw profit value, which overstates every win and understates every loss. On a typical retail account the difference is small per trade, but over a year it can move the drift score by 10–20 points. Ensure the export includes commission and swap columns.
Mistake 5 — Comparing an old backtest to a new live period
A backtest that ran over a trending year is not a fair comparison for a live period that ran over a range-bound quarter. The tool cannot detect this and will not warn you. If the market regime has changed materially, the drift score is measuring regime change as much as strategy change. Note the period covered by both files and read the score in that context.
Mistake 6 — Re-importing the same file
The Import tab appends; it never replaces. Importing the same file twice doubles every metric. The undo is to delete the strategy and re-import once.
Mistake 7 — Treating the drift score as a switch
The 25 / 50 thresholds are alert bands, not a binary verdict. A score of 24 is not "OK", it is "watch carefully". A score of 51 is not "kill the strategy", it is "the story the backtest told is no longer the story the live account is telling". The breakdown tells you which story has changed; that is the useful information, not the number.
Key Pain Points and How This Tool Solves Them
| Pain point | What usually goes wrong | How the monitor addresses it |
|---|---|---|
| "I don't know which EA is underperforming." | All strategies run on the same account and their P&L is pooled in the broker's report. Manual attribution is error-prone. | The Magic Number field and the CSV importer attribute each trade to its strategy automatically. The Strategies table shows every strategy on one row with its metrics, drift score and status side-by-side. |
| "I can't tell if my live results are noise or a real problem." | A 3-month drawdown could be bad luck or a broken edge. The broker statement has no distributional context. | The Drift Check tab runs a win-rate z-test against the backtest at your chosen confidence level, plus an expectancy threshold test and (Pro) a Monte Carlo drawdown percentile. It gives a verdict, not a feeling. |
| "I don't have time to look at every strategy every day." | Meaningful changes are buried in spreadsheets. A silent strategy that stopped trading three weeks ago is easy to miss. | The alert engine watches drawdown, drift bands, silence on live strategies, profit-factor inversion and consecutive losses. The Alerts tab shows only the strategies that need attention. |
| "My tools hide the maths." | Proprietary "health scores" cannot be audited, so you never know whether a low score is a real problem or a quirk of the score's tuning. | Every drift component's weight, tolerance, actual value and penalty is shown in the drift breakdown panel. The same numbers are documented on this page. You can reproduce any score with a calculator. |
| "I'm not uploading my trade history to a server." | Most online performance trackers want an account, an API key and a data-sharing agreement. | Everything runs in the browser. Parsing, metrics, drift scoring, alerts, the Drift Check statistical engine — all local. Data lives in localStorage on your device. The only outbound request is the Gumroad license check, and only when you press Activate. |
| "I can't check my whole portfolio at a glance." | Two strategies that look diversified on paper can be trading the same symbol in correlated ways. | The Portfolio tab (Pro) computes a correlation heatmap of daily strategy returns, exposure by symbol (lot-weighted), risk contribution and concentration warnings. High-correlation pairs are flagged explicitly. |
| "My drift check has no baseline." | You can see that results are worse, but you have no distribution of "how bad could a normal backtest be over this many trades". | The Monte Carlo drawdown percentile reshuffles the backtest's own per-trade P&L into blocks the size of the live history, producing the distribution the backtest would have shown over that many trades. Your live drawdown is placed at a percentile of that distribution. |
Real-World Usage — Running an EA Portfolio Day to Day
Weekly review (10 minutes)
- Open the Import tab, export the account's trade history from MT5 as CSV, and import it under each strategy's Magic Number.
- Open the Dashboard. Read the combined equity curve for the shape, not just the P&L — a rising curve with small drawdowns is a very different signal from a flat curve with sharp spikes.
- Read the Strategy health list top-down. Any strategy with a drift score above 25 and any strategy with a high-severity alert gets a follow-up in the next step.
- For each flagged strategy, open its Details modal and read the drift breakdown. Which component is at full penalty? Frequency — has the market environment changed enough that the EA no longer sees setups? Expectancy — is the edge real or gone? Average win or loss — has the spread widened?
Monthly deep review (30–45 minutes)
- For any strategy with drift above 50, open the Drift Check tab, upload the original backtest CSV and the current live CSV side-by-side, set the confidence level to 95 %, and run the analysis.
- Read the verdict: Within normal variance means the current live results are inside what the backtest allows over this many trades. Watch means one test is outside. Diverged means two or more tests are outside — and the flagged tests tell you which side is failing.
- On Pro, read the Monte Carlo drawdown percentile. A live drawdown at the 95th percentile of what the backtest could have produced over this many trades is a real signal; a live drawdown at the 50th percentile is entirely normal.
- On Pro, open the Portfolio tab and check the correlation heatmap. Two strategies correlating at 0.85 are one position, not two — the concentration warnings will say so.
When to change the backtest expectations
The expectations you enter are the strategy's promised behaviour. They should be updated only when the strategy itself is re-designed, not when live results are disappointing. If you update the expectations every time the drift score gets high, you are resetting the baseline rather than investigating the deviation — and the score stops meaning anything. Use the drift score to detect change; use the review process to decide what to do about it.
Frequently Asked Questions
Does my trade data leave my device?
No. Parsing, metrics, drift scoring, alerts, the Drift Check statistical engine, the Monte Carlo reshuffle and CSV export all run inside your browser. Data is saved in your device's localStorage so the strategy list survives a page reload. The only outbound request is the license verification when you press Activate with a Pro key — and that is a direct browser-to-Gumroad call, not a request to AlamToolKit.
What is a Magic Number and why does it matter?
The Magic Number is an integer that an MT5 Expert Advisor stamps on every trade it opens. When several EAs run on one account, it is the only reliable way to tell their trades apart in a pooled account statement. The monitor uses it as the primary key for attributing imported trades to a strategy. If a strategy has no Magic Number set, its trades can only be attributed manually — by selecting that strategy in the Import tab before pressing import.
My CSV has extra columns and a different header. Will it import?
Yes. The importer auto-detects the separator (comma, semicolon or tab) and the header row, then matches columns by name case-insensitively. Extra columns are ignored. Recognised column names are listed in the CSV-import step above. The minimum requirement is a column named profit, pnl or netprofit containing a numeric value per row. Rows without a profit value are skipped and counted in the success message.
How should I interpret the Drift Check verdict?
The verdict is built from independent statistical tests, each of which asks "does this live behaviour sit inside what the backtest could plausibly have produced over the same number of trades?".
- Not enough data — fewer live trades than your configured minimum. No verdict is made, because small samples are too noisy to conclude anything.
- Within normal variance — no test is outside the range the backtest allows.
- Watch — one test is outside the range. Worth investigating, but common enough that it may not indicate a real change.
- Diverged — two or more tests are outside the range. The combination is unlikely to have been produced by the backtest's own behaviour distribution. The flagged tests list which dimensions are failing.
The verdict is evidence, not proof. It says "the live behaviour looks different from the backtest"; it does not say the strategy is broken, nor that it will continue to underperform.
Why those drift score weights, and can I change them?
The weights reflect the practical importance of each dimension in most EA portfolios: expectancy is the largest single weight because it directly determines profitability; win rate and drawdown are next because they are the metrics most often promised in a backtest; frequency and the average win/loss are smaller because they are less directly actionable. The weights are documented on this page and in the drift breakdown panel so the score can be reproduced by hand. They are not configurable in the UI at this time.
My live strategy shows a "silence" alert. What should I do?
The silence alert means the strategy has not opened a trade for the configured number of days (default 14) while set to "live" status. The most common causes are: the MT5 terminal is not running; the EA is disabled; the broker changed the symbol specification; the market conditions the EA needs to trade simply have not occurred. Start by verifying the terminal is running and the EA is attached with the correct Magic Number. If it is, silence can be perfectly normal — a trend-following EA will not trade in a range-bound market — in which case the alert is information, not a problem.
Why does the drift score say "insufficient data" on a strategy with 25 trades?
The default minimum is 30 trades. Below that, the drift score is suppressed and the cell displays "insufficient data" instead of a number. This is deliberate: with fewer than 30 trades, a small change in the win rate or expectancy can move the score by 20–30 points purely by chance, and the resulting number is more misleading than useful. The threshold is fixed for the drift score. The Drift Check tab allows a configurable minimum (5–1000) because that is a per-analysis setting where you may have a specific reason to analyse a small sample with extra caution.
What exactly does Pro unlock?
Unlimited strategies (free is capped at 3), the portfolio correlation heatmap, risk-contribution analytics, exposure and concentration warnings, metrics CSV export, and the full statistical Drift Check engine: the trade-frequency test, the Monte Carlo drawdown percentile, the 0–100 drift score in the Drift Check result, and CSV/JSON export of the analysis. The core dashboard, per-strategy metrics, drift score in the strategies table, alerts and CSV import are available on the free tier.
Can I use it without MT5?
Yes. The tool is a CSV reader, not an MT5 client. Any trade history exported as a CSV with a profit column and either a symbol or magic column can be imported and scored. The example CSVs use MT5's column names because MT5 is the most common source, but the parser accepts any header that contains a recognisable profit or pnl column, and the Drift Check tab accepts any CSV with a Profit column and optional Close Time, Type, Magic, Comment, Commission, Swap.
Is this investment advice?
No. The Algo Operations Monitor is an arithmetic utility. It reads trade history you supply and reports standardized statistics about it. A low drift score is not a recommendation to keep a strategy; a high drift score is not a recommendation to stop one. Position sizing, risk management, portfolio construction and the decision to run any particular strategy all sit outside the tool and are your responsibility.
What happens if I clear my browser data?
Your strategies, imported trades, expectations and settings are stored in localStorage under the key ak_aom_state_v1. Clearing site data, using a different browser, or switching to a private window will remove the saved state from that device. The Strategies tab has an Export all data (JSON) button that writes the full state to a file you can restore later — worth using as a backup before any browser maintenance.
Before You Trust a Drift Score
Five pre-flight questions
- Is the live trade count at or above the 30-trade minimum?
- Are the expectations you entered the backtest values, not the live ones?
- Does the CSV include commission and swap columns, or only raw profit?
- Did the live period run over a market regime comparable to the backtest's?
- Is the drift concentrated in one component, or spread across many?
If all five answers are clean, the drift score is a fair description of the live behaviour relative to the promised behaviour. If any of the first four is not clean, the score is still a number, but it is not yet a trustworthy number.
Try the Algo Operations Monitor
The monitor is free for up to three strategies with unlimited CSV imports, the full dashboard, drift scoring and alerts. The Pro tier removes the strategy limit and unlocks the portfolio analytics and the full Drift Check statistical engine.
Disclaimer. The Algo Operations Monitor is an educational tool. It reports arithmetic about trade history you provide; it does not place trades, recommend strategies, or predict returns. Historical performance is not a guarantee of future performance. Consult a qualified financial adviser before making operational or trading decisions.