Algorithmic Trading Strategy Monitor.

Development mode — fake premium access enabled, no real billing. Set APP_CONFIG.MODE = "production" before publishing.
AlamToolKit / Algo Operations Monitor
PRO

Portfolio equity (combined, all strategies)

Combined equityPeak equity

Strategy health

Latest alerts

IDStrategySymbolTFMagicStatusTradesNet P&LWin ratePFMax DDDrift

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.

…or drag & drop a .csv file here
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

Drawdown alert threshold: 20% · Silence alert after 14 days without trades (live strategies)

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.

Needs a Profit column. Optional: Close Time, Type, Commission, Swap, Magic, Comment.
Export from MT5: History tab, right-click, Report, or copy rows.
Account currency, used for drawdown %.
Analyze one EA from a mixed history.
Below this, no verdict is given.

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:

FreePro
Strategies tracked3Unlimited
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

  1. Add your strategies — name, symbol, timeframe, Magic Number and status.
  2. Import trades — export your MT5 account history to CSV and drop it into the Import tab. Trades are matched to strategies by Magic Number.
  3. Set expectations — for each strategy, enter the trade frequency, win rate, expectancy and max drawdown from your backtest.
  4. Watch the drift score — 0 means live behaves like the backtest; higher means deviation. Alerts fire when drawdown, silence or drift cross your thresholds.
  5. 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).

Scope honesty. The monitor does not place trades, generate signals or connect to a broker. It reads trade history you have already exported, and reports arithmetic about that history. A good drift score is not a guarantee of profit and a bad drift score is not proof of failure — both are evidence about whether behaviour has changed.
How the Algo Operations Monitor computes a drift score Pipeline diagram: raw MT5 trade CSV feeds the CSV parser, then attribution by Magic Number to a strategy; the metrics engine produces win rate, expectancy, average win, average loss, drawdown and trade frequency; these are compared to the backtest expectations you recorded; each comparison produces a penalty; the weighted penalty becomes a 0 to 100 drift score; the score feeds the alert engine and the operations dashboard. 1. MT5 CSV time, symbol, type, size entry, exit, profit, magic 2. Parse comma / semicolon / tab header auto-detected 3. Attribute match trades to strategy by Magic Number 4. Compute metrics win rate, PF, expectancy avg win/loss, drawdown, freq 5. Compare to expectations backtest: freq, WR, expectancy, avg win, avg loss, max DD 6. Per-component penalty penalty = min(1, |actual − expected| ÷ tolerance)   per component 7. Weighted drift score 100 × Σ(w · penalty) ÷ Σw needs ≥30 trades to display 8. Alert engine drift · drawdown · silence loss streak · PF inversion 9. Dashboard per-strategy health tiles combined equity · latest alerts 10. Drift Check tab z-test · expectancy · (Pro) frequency · Monte Carlo drawdown drift verdict feeds back into alerts
Figure 1 — The ten stages of an Algo Operations Monitor session. A trade CSV enters the parser, which auto-detects the separator and header, then attributes each row to a strategy by Magic Number. The metrics engine produces the standardized statistics, and those are compared against the backtest expectations you recorded (one comparison per component). Each comparison produces a normalized penalty between 0 and 1; the weighted average of those penalties becomes the 0–100 drift score, which is only displayed when at least 30 trades exist. The score feeds the alert engine and dashboard, while the Drift Check tab performs a deeper per-EA statistical test and pushes its verdict back into the same alert stream.

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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. 18 means 18 trades per month; 2.5 means 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, not 0.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. 12 for 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.12 instead of 12). The UI multiplies by 100 internally when storing, so the field expects the percentage value as typed.

  9. 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 profit column and either a magic or symbol column 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, dateNoISO or YYYY.MM.DD HH:MM:SS. Used for drawdown sequencing and Sharpe.
    symbolsymbol, itemNo** At least one of symbol or magic is required per row.
    typetype, side, direction, buysellNobuy/sell, long/short. Rows with an unrecognised type are skipped.
    sizesize, volume, lotsNoUsed for the exposure aggregation only.
    entryentry, open, entryprice, openpriceNoNot used in metrics; kept for reference.
    exitexit, close, exitprice, closepriceNoNot used in metrics; kept for reference.
    profitprofit, pnl, netprofitYesNumeric. Rows with a missing or non-numeric profit are skipped and counted.
    commissioncommission, fee, feesNoNumeric. Added to profit before metrics (typically negative).
    swapswapNoNumeric. Added to profit before metrics.
    magicmagic, magicnumber, identification, identifierNo** Used to attribute the trade to a strategy.
    commentcomment, commentaryNoFree 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.

  10. 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 Profit column; a Close Time, Type, Commission, Swap, Magic or Comment column 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.
  11. 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.

  12. 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.

Drift score components for the EURUSD example above.
Component Weight Penalty Weight × Penalty
Trade frequency0.150.5560.0834
Win rate0.201.0000.2000
Expectancy0.251.0000.2500
Average win0.100.7890.0789
Average loss0.101.0000.1000
Drawdown0.201.0000.2000
Total1.00—0.9123
Drift score = 100 × 0.9123 / 1.0091

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.

Adjust the fields and press Evaluate drift.

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)

  1. Open the Import tab, export the account's trade history from MT5 as CSV, and import it under each strategy's Magic Number.
  2. 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.
  3. 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.
  4. 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)

  1. 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.
  2. 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.
  3. 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.
  4. 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
  1. Is the live trade count at or above the 30-trade minimum?
  2. Are the expectations you entered the backtest values, not the live ones?
  3. Does the CSV include commission and swap columns, or only raw profit?
  4. Did the live period run over a market regime comparable to the backtest's?
  5. 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.

Open the Monitor → Browse All Trading Tools

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.

Post a Comment

🧰

The AlamToolKit Standard

EVERY TOOL. ONE PLACE. ZERO CLUTTER.

🧪

Experience

Every tool across Planning, Calculation, Writing, Organization, Finance, Utilities, Communication, Learning, Security, Health, Games, Digital Product, and Trading is designed, built, and stress-tested for real daily use before it reaches you.

🎯

Expertise

From finance and trading calculators to study aids and habit trackers, every tool is documented with clear formulas, step-by-step logic, and real examples — so you always know how the numbers are produced.

🏛️

Authoritativeness

Methods are grounded in publicly verifiable references — financial formulas, productivity frameworks, and educational best practices — never guesswork, across every planning, finance, and learning tool we ship.

🛡️

Trustworthiness

Most planning, calculation, writing, and utility tools run entirely in your browser with no server-side data processing. Pricing, limitations, and privacy practices are stated plainly on every page.

🔒 SSL Encrypted 📖 Sourced & Documented 🆓 Free Core, Forever 🏗️ Built In-House 📅 Updated Weekly 📈 Actively Growing

Dual-Layer Security & Reliability

Powered by Google Firebase + Client-Side Processing

Your data, your control. Privacy-first architecture with cloud convenience. Every calculation runs locally in your browser — your sensitive data never leaves your device. Create an account to unlock secure cloud features that enhance your experience without compromising privacy.

Local Processing

No data transmission

100% private

Cross-Platform Sync

Seamless across devices

Firebase Cloud

Secure Storage

Enterprise-grade

99.9% Uptime

High reliability

Auto-save

Never lose data

Validation

Error prevention

Real-time Processing

Instant Results

No waiting

Accurate Results

Real-time calculation

Pro Tip: Install the APP for quick access and automatic cloud backup across all your devices when you create an account.

About Me – Muhiuddin Alam

Hello, I am Muhiuddin Alam, Founder and Chief Editor of AlamToolKit.com.

I have built this platform to provide a comprehensive, free suite of digital tools for everyday life, productivity, and professional tasks. My goal is to simplify complex calculations, planning, and organization for everyone—from students and professionals to individuals managing their daily routines.

At AlamToolKit.com, you'll find essential tools for time management, calculation, note-taking, finance, file management, and much more—all designed to be intuitive and efficient. I believe in creating practical digital solutions that empower users to work smarter.

Explore our suite of calculators and tools:

💌 Follow Me: LinkedIn | Google Knowledge Panel

❤ Want to connect or suggest a tool? Reach out at: [email protected]

Simplify Your Day with Smart Tools

Start using our free digital toolkit today and experience the difference in productivity, organization, and efficiency across all your daily tasks.

About – AlamToolKit.com

Productivity Tools • Calculators • Everyday Solutions

AlamToolKit.com provides a comprehensive suite of free digital tools designed to simplify daily tasks, boost productivity, and solve practical problems for everyone.

The platform features tools across multiple categories: planning & time management, calculation & conversion, writing & notes, organization & productivity, measurement tools, online utilities, and work solutions. Whether you need to calculate percentages, track expenses, manage tasks, convert units, or generate passwords—they’re all here.

Every tool is designed to be intuitive, fast, and free. With AlamToolKit.com, you can streamline your workflow, make informed decisions, and handle everyday challenges with confidence. It's your digital companion for personal efficiency and smarter living.

⚡ Trusted by Users Worldwide
✅
App Installed!
Alam Toolkit is now in app mode
📱 Install Alam Toolkit
Follow these steps to install