Chronos Forex EA logo

Chronos Forex EA

Mean-reversion robot for forex pairs

Type: Mean Reversion Bets that overstretched price will return to its average Style: Dollar Cost Averaging Builds a position over time to smooth the entry price Setup: Hybrid Fixed core strategy with extensive input options to tune risk, position management and behaviour Market: Forex Built for major and minor currency pairs Timeframe: Configurable You choose the timeframe to suit your preferred trading style Modeling mode: 1m OHLC Backtest with "1 minute OHLC" modeling mode — faster, accurate enough for this EA VPS: Required A low-latency VPS is needed for proper execution Min capital: $10k+/$100+ Around $10,000 on a standard account. The figure after the slash is the equivalent on a cent account — about $100 (e.g. an Ultima Markets Cent account) — which makes low-cost live testing possible. Account type: Any Works on any partner-broker account type — either the tight-spread variants (Zero / Prime) or the standard raw-spread accounts Prop-firm: With caveats Can be used on prop accounts, but is not specifically tuned for their environment — configure carefully
Get free license Latest version Downloads the current build. It only runs on an MT5 account that already has a license for this Expert Advisor. Buy on MQL5
Overview

What Chronos actually does

Chronos Forex EA is a fully automated trading robot for the major and minor forex pairs on the MetaTrader 5 platform. It trades mean reversion off liquidity levels: it reads where the market last ran through a resting level and takes the other side of that run, profiting when price comes back.

Since v16.0 that is Chronos' one and only strategy — the three "Chronos States" it used to ship with are gone, and with them the two indicators behind them, which also makes backtests noticeably faster. In their place is a Chronos Settings group that puts the strategy's own controls in your hands for the first time: how far back it looks for levels, how recent a level may be, and how pronounced a swing has to be to count as one. Those same three values can optionally be set a second time, separately, for the orders added to an open basket — set shorter, they keep a basket averaging in while the market runs against it instead of waiting for another major level. Each level can start at most one basket, and no new basket opens while one is still running. By default a new basket trades the most recently formed qualifying level; an optional First Entry Uses Furthest Level setting flips that to the qualifying level furthest from the current price instead.

Around that core sit extensive grid and martingale settings — the lot-scaling progression is fully configurable and can be switched off entirely, as it is by default. A basket takes profit at a liquidity level rather than at a fixed distance: it targets the last opposite level that is still standing and that price has not already run past, and closes when the candle that reaches it closes. An optional Trail After the TP is Reached setting lets it ride the move instead, exiting only when price breaks the previous candle's extreme. Also available is Cash Out Positions: from the third order onward the newest order in a basket is closed for profit whenever price comes back to the previous order's entry, leaving a resting order behind to re-enter at the same level. The profit that banks can be put toward moving the basket's break-even closer, and — once a basket is deep enough — so can the profit from a basket closing on the opposite direction of the same pair.

Out of the box Chronos runs in Multicurrency Mode, letting a single instance trade up to 28 pairs in parallel; you can also attach it to one chart and trade that pair alone. An optional currency filter keeps Chronos from stacking the same currency in the same direction across pairs.

Live

Verified live performance

Real money, real trades — tracked independently on Myfxbook. These figures update automatically; confirm them yourself via the verified link.

Updated once per week. For more precise information, check Myfxbook.

Jul 12, 2026 · 10,000 USC Oct 6, 2026 · 8,421 USC
Total gain
-15.77%
Average gain
+24 USC (+0.24%)
Average loss
-93 USC (-0.93%)
Profit factor
0.61
Max drawdown
24.1%
Balance
8,423 USC

Account details

Broker
Ultima Markets
Currency
USC
Tracking since
Jul 13, 2026
Deposits
10,000 USC
Balance
8,423 USC
Last updated
Oct 10, 2026

Live results from a real MetaTrader 5 account, tracked independently on Myfxbook. Past performance is not indicative of future results. Open the full dashboard.

Inputs

Every setting explained

These are the inputs you will see in the MT5 Inputs tab when you attach Chronos to a chart

-- Info --

Learn More About the Settings
link
A shortcut to the TLFX website, where every input below is explained in full. Not a setting — just a pointer to the documentation.

-- General Settings --

Magic Number
20250505
Identifies positions belonging to this EA. Change only if another EA on the same account uses the same number.
Show Dashboard
true
On-chart dashboard with strategy stats, shown by default. The per-symbol stats are stored on your terminal, so they survive an MT5 restart, update or recompile instead of resetting to zero. Disabling the dashboard during backtesting noticeably speeds up the Strategy Tester. A SEND LOGS button sits directly under the dashboard: when support asks for your log, one press (and a confirmation) sends the last two days of it, so the dashboard has to be on to use it. The EA always writes its full log to the Experts tab — there is no Debug Log switch any more.
Show Trade Lines on Chart
true
Draws every entry, take-profit and stop-loss as a line on the chart, each with a value box showing what that level is worth in money, plus the basket break-even line (which carries no box of its own, so the take-profit and stop-loss boxes sit next to their own lines). Boxes that would overlap are spread apart automatically, and the break-even line only appears once a basket holds two or more orders. In multicurrency mode every chart Chronos opens draws its own instrument’s lines, not the attached chart’s. Switch it off for backtesting to speed up the Strategy Tester. (Called "Show Basket Lines" before v14.0, when it only drew the basket take-profit and stop-loss.)
Show Liquidity Levels on Chart
true
Draws the liquidity levels Chronos is currently watching on the chart, so you can see what it is waiting for. Only the levels for the direction you have enabled in the Direction Filter are drawn, and a level that can no longer start a basket — only add to the one already running — is shown in its own colour. In multicurrency mode every chart Chronos opens draws its own instrument’s levels, not the attached chart’s. Switch it off for backtesting to speed up the Strategy Tester.
Apply Color Scheme
true
Recolours the chart to the EA's colour scheme when attached. Purely cosmetic — turn it off to keep your own chart colours.
Apply Zoom Level
0 (most zoomed out)
Sets the zoom step of the attached chart and every chart Chronos opens itself, from 0 (most zoomed out) to 5 (most zoomed in); step 2 is MT5's own default. Applied once when the EA starts — you can still zoom manually afterwards.
Max Slippage
0.05 %
Maximum price deviation accepted when sending an order, expressed as a percentage of price. It governs basket closes as well, and is measured on the pair actually being traded rather than on the chart symbol — so every pair in the list gets the allowance you set here.
Max Spread
0.05 %
Maximum spread accepted at order time, expressed as a percentage of price. Orders are skipped when the spread is wider than this.

-- Multicurrency Settings --

Enable Multicurrency Mode
true
On by default: a single instance of Chronos trades the full symbol list in parallel. Turn it off to trade only the chart symbol.
Symbol List
28 majors & minors
Comma-separated list of symbols Chronos will trade when multicurrency mode is on. Edit to add or remove pairs.
Symbol Suffix
(empty)
Append the suffix your broker uses on symbol names (e.g. ".m", ".pro") so Chronos can resolve each pair correctly. Leave empty if your broker uses plain symbol names.
Display All Instrument Charts
true
On by default: when multicurrency mode is running more than one pair, Chronos automatically opens one chart per traded symbol so you can watch every pair it manages, and closes exactly those charts again when you remove the EA (it never touches charts you opened yourself). If one cannot be opened straight away, Chronos keeps retrying in the background until it appears. Turn it off to keep just the chart you attached Chronos to.
Currency Filter
false
Multicurrency only. Blocks new positions that share a currency in the same direction with an already-open basket — limits correlated risk. (It sat under Drawdown Settings before v16.0.)

-- Chronos Settings --

Entry Mechanism
Default
Experimental. Chooses which entry Chronos uses to open a basket. Default is the entry it has always used; the two alternatives are there to be compared against it — "First Opposite Candle Close" enters when a candle closes in the opposite direction to the one before it, and "First Close Beyond Previous Candle High/Low" enters when a candle closes past the high or low of the previous candle. Everything after the entry — the liquidity levels, the grid, martingale and the basket exits — is identical whichever you pick, so a comparison is exactly one setting apart.
Maximum Candle Lookback
500
How far back Chronos looks for the liquidity levels it trades from. A larger number reaches further into history and favours the bigger, older levels.
Minimum Candle Lookback
50
How recent a level is allowed to be before Chronos will use it. Raising it makes Chronos ignore freshly formed levels and wait for ones that have had time to settle.
Fractal Strength
50
How pronounced a swing has to be to count as a level at all. Higher values keep only the more significant turning points; lower values accept smaller ones and give Chronos more to work with.
Use different Values for DCA Legs
false
Off by default, so the three values above govern the first entry and every order added to a basket alike. Turn it on to give the added orders their own three values below — set shorter than the ones above, that keeps a basket averaging in while the market runs against it instead of waiting for another major level.
Maximum Candle Lookback (DCA)
500
The same setting as above, but applied only to orders added to an open basket. Used only when "Use different Values for DCA Legs" is on.
Minimum Candle Lookback (DCA)
50
The same setting as above, but applied only to orders added to an open basket. Used only when "Use different Values for DCA Legs" is on.
Fractal Strength (DCA)
50
The same setting as above, but applied only to orders added to an open basket. Used only when "Use different Values for DCA Legs" is on.
First Entry Uses Furthest Level
false
Off by default: a new basket's first order trades the most recently formed qualifying level, as it always has. Switch it on and Chronos instead picks whichever qualifying level sits furthest from the current price. Only affects the first order of a basket — orders added afterwards are unaffected.

-- Risk Settings --

Risk Mode
Fixed Lot Size
Two modes are available: Fixed Lot Size (every position uses the same lot size), or Lots per X Account Currency (a step-up mode that scales lot size with account balance — balance, not equity, and the size is locked in for the whole basket so grid orders added in drawdown are not sized smaller than the martingale intended).
Start Lot Size
0.01
Base lot size for the first position in a basket. Subsequent positions are scaled from this value when martingale is enabled.
Start Lot Increase Step
1000 (currency)
Used only by the "Lots per X Account Currency" mode — for every X of account currency, the base lot size is increased by one step.
Cent Account Handling
Auto-Detect
How Chronos treats a cent account when sizing lots. Auto-Detect reads it from the deposit currency (e.g. USC); or force Normal / force Cent manually. Keeps lot sizing correct on cent accounts such as an Ultima Markets Cent account used for testing.
Number of Baskets to Trade
0 (off)
Caps how many new baskets this attachment may start, counted across every pair and both directions together. Once the count is reached Chronos keeps managing whatever is open — grid orders, take profit, stop loss and Cash Out all carry on as normal — but opens no further basket until the EA is reattached (or its settings changed), which starts the count again from zero. Baskets that were already open when the EA was attached do not count towards it. 0 leaves it off. Useful for a controlled test run — "trade exactly five baskets, then stop" — or for a fixed daily allowance. (Added in v22.0.)

-- Martingale Settings --

Martingale Style
Disabled
Controls how lot size scales as a basket grows. Disabled by default, so every position stays at the Start Lot Size. Enable a progression if you want scaling: Additive (1→2→3…), Fibonacci (1→1→2→3→5→8), Exponential (1→2→4→8→16→32), or a Custom multiplier you supply.
Custom Multiplier
0.0
Multiplier applied per step when Martingale Style is set to Custom. Ignored by every other style.
Apply Martingale after Order N
0
Skip the first N orders of a basket before martingale scaling kicks in. 0 means martingale applies from the second order onward.
Max Martingale Lot
0 (unlimited)
Hard cap on the lot size produced by martingale scaling. 0 disables the cap.

-- Grid General Settings --

Direction Filter
Both
Restricts which direction(s) Chronos opens positions. Options: Both, Long Only, Short Only, or Swap Collector (only opens positions on the side that earns positive swap).
Minimum Distance Between Orders
5.0 × ATR
How far the market has to move against a basket before another order may be added to it, in ATR multiples measured from the last order that filled. It was a fixed internal value until v20.0 and ships at exactly that value, so nothing behaves differently until you change it. Lower it to let a basket average in sooner, raise it to space the orders further apart.
Maximum Orders per Basket
0 (unlimited)
Hard cap on the number of positions in a single basket. 0 means unlimited.
Cash Out Positions
false
From the third order onward, the newest order in a basket is closed for profit whenever price comes back to the previous order's entry, and a resting order is left behind to re-enter at that same level. Off by default.
Use Cashed Positions to Move the BE Value
true
On by default. The profit banked by a cash-out is put toward that basket, moving its break-even — and with it the take-profit and stop-loss levels — closer, so the basket can exit sooner.
Use the Opposite Side's Closed Profit to Move the BE Value
false
Off by default. Once a basket is deep enough to cash out, a basket that closes in profit on the other direction of the same pair puts its profit toward getting the deep one out. Requires the Direction Filter set to Both.
Enable Ghost Orders
false
Experimental, off by default. With it on, Chronos tracks the first few would-be trades of a basket internally instead of placing them, and only sends a real order once that many have been simulated. The orders it does place run on your normal Grid and Martingale settings as usual. The simulated ones are marked on the chart in matching colours alongside the liquidity levels, so you can see what it would have done — they are drawn only while "Show Liquidity Levels on Chart" is on.
Ghost Orders to Simulate Before Placing the Real Trade
3
How many would-be trades Chronos tracks internally before it places a real one. Used only when Ghost Orders is on.
Enable Fractal Break Filter
false
Experimental, off by default. With it on, a new basket only opens once the market has gone a set number of bars without breaking a level on the side the basket would trade towards: a buy basket needs no level above the market to have been broken in that time, a sell basket none below. It only decides whether a new basket may start — orders added to a basket that is already open are unaffected. If the chart does not have enough history loaded to answer, it holds the entry back rather than guessing. (Added in v23.0.)
No Same-Side Fractal Broken Within (Bars)
50
How many closed bars the market must go without breaking a level on that side before a new basket may open. Only the first time a level is broken counts. Used only when the Fractal Break Filter is on.
Fractal Strength
10
The fractal strength used to find the levels this filter watches. It is separate from the Fractal Strength in the Chronos Settings, so the filter can watch smaller or larger levels than the entries use. Used only when the Fractal Break Filter is on.
HWM Emergency Close
50 %
A hard safety net, and the only one that works at account level: if account balance drops this many percent below its high-water mark, every open basket on every pair is closed immediately and Chronos stops. 0 disables it. (It sat under Drawdown Settings until v21.0, which removed that group.)

-- Grid TP and SL Settings --

Liquidity TP Maximum Candle Lookback
500
Chronos takes profit at a liquidity level, not at a fixed distance: a basket targets the last opposite level on the chart that is still standing and that price has not already run past. This setting is how far back it looks for that level. It is kept separate from the entry lookback on purpose — how far a basket should reasonably travel to exit is a different question from what makes a level worth entering on — and it ships at the same value, so the two match out of the box.
Liquidity TP Fractal Strength
50
How pronounced a swing has to be to count as an exit level, kept separate from the entry setting for the same reason as the lookback above.
Allow Levels That Would Close the Basket at a Loss
false
Off by default, so the take profit only ever targets a level that closes the basket in profit — break-even already includes swap and commission, so "in profit" means genuinely in profit. Turn it on to let a stuck basket exit at the nearest qualifying level even when that books a loss.
Trail After the TP is Reached
false
Experimental, off by default. Normally a basket closes when the candle that reached the target level closes. Switch this on and it does not close there: it starts trailing the previous candle's extreme instead — a buy basket trails the previous candle's low, a sell basket its high — and closes only once price breaks it. The level becomes the point where the basket stops targeting and starts riding the move, so it can only ever exit later than it would with this off, never earlier.
Basket SL Distance
50 × ATR
Stop-loss distance for the whole basket, measured in ATR multiples from the basket breakeven price, using the average ATR across every order the basket has opened so far. The basket is closed for a loss if price runs this far the wrong way. Unlike the take profit it is a distance you choose rather than a place the market has to reach — and since v21.0 removed the drawdown controls, it and the HWM Emergency Close are what ends a basket that has no target yet.
Setup

What you need to run Chronos

Platform
MetaTrader 5 — hedging account type. Netting accounts will not work because Chronos manages baskets of overlapping positions on the same symbol.
Symbols
Major and minor forex pairs. Chronos ships with a default list of 28 pairs covering every cross of AUD, CAD, CHF, EUR, GBP, JPY, NZD and USD. For best results, favour pairs with mean-reverting tendencies and trim the strongly trending ones — JPY crosses in particular tend to run in long directional moves and are usually better removed from the list.
Leverage
1:100 minimum. Higher leverage frees up margin for additional baskets — useful when running multicurrency mode across many pairs at once.
Capital
Recommended $10,000+ on a standard account — the default profile runs multicurrency mode across up to 28 pairs, averaging into a basket on each, so it needs room to breathe. To test live at low cost, run it on an Ultima Markets Cent account instead: roughly $100 there is equivalent to $10,000 on a standard account.
VPS
Required. Latency to the broker server should sit in the low single-digit milliseconds. See the FXVM section on the Tools page for the recommended provider and locations.
Broker
Any of the partners works: Fusion Markets, Ultima Markets or an E8 Markets prop-firm account.

Full step-by-step installation walkthrough: How to install an EA.

FAQ

Frequently asked

Which currency pairs can I run Chronos on?

Chronos ships with a default symbol list of 28 forex pairs covering all major and minor crosses (every pair built from AUD, CAD, CHF, EUR, GBP, JPY, NZD and USD). Because Chronos is a mean-reversion system, it works best on pairs that tend to mean-revert — favour those, and trim out the strongly trending ones. JPY crosses are the classic example to remove: they often run in long directional moves that punish mean-reversion entries. Out of the box Chronos runs in Multicurrency Mode across that whole list from a single chart; you can trim the list, or turn Multicurrency Mode off and attach Chronos to one chart to trade that pair alone.

I updated to v16.0 — what happened to my settings?

v16.0 made Chronos a single strategy, so the "Chronos State" setting and the three multicurrency settings added in v15.0 no longer exist. Because MT5 stores settings by name, those entries are simply dropped when you load an older .set file — everything else carries over unchanged. Load each of your .set files once after updating and save it again, so the file matches the new input list and the new Chronos Settings group is stored with it.

How does Chronos take profit?

At a liquidity level, not at a fixed distance. A basket targets the last opposite level on the chart that is still standing and that price has not already moved past, and it closes when the candle that reaches that level closes — not on the tick that touches it, which is what keeps a "1 minute OHLC" backtest close to a real-tick one. By default the level also has to sit beyond the basket break-even, so the exit is genuinely in profit; you can allow nearer levels instead if you would rather get a stuck basket out. If no level qualifies, the basket simply has no take profit until one appears — in that state only the basket stop loss or the HWM Emergency Close can end it, so leave both set to sensible values. Optionally, Trail After the TP is Reached keeps the basket running once the level is reached and exits when price breaks the previous candle's extreme instead.

I updated to v21.0 — what happened to my settings?

v21.0 made the level-based take profit the only take profit and removed the drawdown controls, so Basket TP Distance, TP Addition per Additional Order, Max TP Distance in ATR, the Liquidity TP switch, Soft DD Control, Hard DD Control and Hard DD Distance no longer exist. MT5 stores settings by name, so those entries are simply dropped when you load an older .set file and everything else carries over unchanged. Load each of your .set files once after updating and save it again so the file matches the new input list. The HWM Emergency Close is still there — it moved to the bottom of the Grid General settings.

Can I limit how many baskets Chronos trades?

Yes, since v22.0. Set "Number of Baskets to Trade" in the Risk Settings to the number you want and Chronos starts that many baskets in total — across every pair and both directions combined — then opens no new ones. Anything already open is still managed to its end: grid orders are added, the take profit and stop loss still fire, and Cash Out still runs. The count belongs to the current attachment, so reattaching the EA or changing a setting starts it again from zero, and baskets that were already running when you attached it are not counted. 0 leaves the limit off, which is the default.

What does the Fractal Break Filter do?

It is an optional extra condition for starting a new basket, added in v23.0 and off by default. With it on, Chronos waits until the market has gone a set number of bars without breaking a level on the side the basket would trade towards — for a buy basket no level above the market, for a sell basket none below — so it stays out while price has recently been breaking out in that direction. It never touches a basket that is already open, and it has its own Fractal Strength setting, independent of the one the entries use. Like the other experimental switches, test it in the Strategy Tester on your own pairs before running it live.

Does Chronos use martingale by default?

No. Out of the box the Martingale Style is Disabled, so every position stays at your Start Lot Size. Martingale is fully optional and in your hands: you can switch on a progression — Additive (1→2→3…), Fibonacci (1→1→2→3→5→8) or Exponential (1→2→4→8→16→32) — set your own Custom multiplier, and cap the maximum lot. If you do run martingale, size your account and your basket stop accordingly.

Why does Chronos need a VPS?

Two reasons. First, Chronos trades frequently, which means it is highly sensitive to spread, slippage and execution speed — every millisecond of latency between your terminal and the broker matters. Second, you want the EA running 24/5; if your home PC sleeps or your internet drops, open baskets are no longer being managed. A VPS in a low-latency datacentre solves both.

Which broker should I pick for Chronos?

Any of the partners works for Chronos — Fusion Markets, Ultima Markets, or an E8 Markets prop-firm account: E8 restricts no trading style, so a grid EA is fine there (it only limits how many traders run the same strategy at once). Pick whichever is more convenient for you — the broker comparison on the main page covers the full picture.

Can I use Chronos on a prop-firm account?

With caveats. Chronos can run on prop accounts, but it is not specifically tuned for their environment — there is no built-in news filter, no daily-drawdown guard, and the basket-style approach means an unhedged loss can grow before the basket stop loss closes everything. If you want a prop-friendly EA, ORB Revolution is the right tool. If you do try Chronos on a prop account, set the basket stop loss and the HWM Emergency Close carefully first.

How much money do I need to run Chronos?

Plan for around $10,000 on a standard account. Chronos ships in multicurrency mode, so it opens and averages into baskets across many pairs at once — that needs real headroom to manage drawdown safely, and more again if you switch a martingale progression on. If you want to trade live but keep the real money at risk small while you get comfortable, run it on a cent account instead: about $100 on a cent account is the equivalent of $10,000 on a standard one, so it is the ideal low-cost way to test Chronos on real market conditions.

What is the difference between buying Chronos on MQL5 and getting a free license here?

It is the same EA, same version, same updates — the difference is how the license is bound. The free license you get through TLFX is valid for one specific account only: the live account you open with one of my partner brokers. If you want to run Chronos outside of that — on a different broker, or on a second account of your own — you need to buy it on MQL5.

Ready to run Chronos?

Get your free license by opening an account with one of the partner brokers, or buy Chronos directly on MQL5 if you would rather skip the affiliate route.