From a rule in your head to a robot on a chart.
Everything you need to know to use the builder well, and the handful of things that will bite you if nobody tells you first.
Installing on MetaTrader 5
- 1Download your .mq5 from the builder's Export step.
- 2In MT5 press F4 to open MetaEditor, or use File → Open Data Folder and drop the file into MQL5/Experts.
- 3Press F7 to compile. You should get 0 errors, 0 warnings. Nothing else needs installing — every non-native indicator is inside the file.
- 4Back in the terminal, refresh the Navigator (right click → Refresh), then drag the robot onto a chart.
- 5Tick Allow Algo Trading in the dialog, and make sure the Algo Trading button in the toolbar is green.
- 6Before any of that: View → Strategy Tester, pick the robot, set the symbol and period, and run it on real broker history. The generated inputs are all exposed there for optimisation.
Installing on MetaTrader 4
- 1Download the .mq4, then File → Open Data Folder and drop it into MQL4/Experts.
- 2Open it in MetaEditor and press F7. The file targets build 600 and later — if your terminal is older than that, update it.
- 3Refresh the Navigator, drag onto a chart, tick Allow live trading.
- 4MT4's tester models one currency pair with modelled ticks. Use Every tick quality and treat the result as approximate.
Installing on cTrader
- 1Open Automate → cBots → New cBot.
- 2Select everything in the template and paste the downloaded .cs over it.
- 3Press Build (F6). No references need adding — the file uses only cAlgo.API and its own helper methods.
- 4Open a chart, add the cBot from the Automate panel, set parameters and press Play.
How a rule is evaluated
Every condition is read on the signal bar. With the default setting of 1 that is the last closed bar, so a signal cannot appear and then vanish as the current bar moves. Setting it to 0 reads the live bar: faster, but a rule that is true mid-bar may be false by the close, and your backtest will flatter you.
Crosses above compares the signal bar with the bar before it, so it fires once per crossing. Is greater than is true for every bar the condition holds — combine it with a cross somewhere else in the group unless you want to enter repeatedly.
Conditions in a group are joined with all (AND) or any (OR). Long and short are entirely separate rule sets; leaving one empty simply means the robot never trades that side.
Preparing CSV data for the backtest
The parser accepts most exports without help. It sniffs the delimiter, reads a header row if there is one, and falls back to MetaTrader's column order when there is not.
Date,Time,Open,High,Low,Close,Volume
2024.01.02,00:00,1.10412,1.10488,1.10380,1.10455,1204
time,open,high,low,close,volume
2024-01-02T00:00:00Z,1.10412,1.10488,1.10380,1.10455,1204
2024.01.02,00:00,1.10412,1.10488,1.10380,1.10455,1204- ✓MetaTrader 5: Tools → History Centre is gone; use File → Open Data Folder after a tester run, or export bars from the chart with Save As.
- ✓MetaTrader 4: Tools → History Centre → pick the symbol and period → Export.
- ✓TradingView: the chart's export-data button gives an ISO timestamp and OHLC, which parses as-is.
- !Rows are read in file order; if the newest bar is first, GetEA reverses it and tells you.
- !Above roughly 300,000 bars only the most recent 300,000 are used, to keep the tab responsive.
Reading the result honestly
| Number | What it means | What to look for |
|---|---|---|
| Win rate | Share of trades that closed positive. | Meaningless alone. Read it with the payoff ratio. |
| Profit factor | Gross profit ÷ gross loss. | Below 1 loses money. Above 2 on few trades usually means overfitting. |
| Expectancy | Average profit per trade, costs included. | Must comfortably exceed your spread and commission. |
| Max drawdown | Largest fall from an equity peak. | Assume the live one is worse. Ask whether you would keep trading through it. |
| Payoff ratio | Average win ÷ average loss. | A low win rate needs a high payoff, and the other way round. |
| Longest losing run | Consecutive losers. | The number that ends most live accounts. Double it and see how it feels. |
| Recovery factor | Net profit ÷ max drawdown. | Under 1 means the drawdown was bigger than everything you made. |
| Sharpe / Sortino | Return per unit of variability. | Approximate here — treat them as a comparison between your own variants, not an absolute. |
What the simulator does and does not model
It models
- ✓Bar-by-bar execution with your signal-bar setting
- ✓A fixed spread, commission per lot and slippage
- ✓Stops and targets hit intrabar, resolved conservatively
- ✓Trailing, break-even, partial closes and time exits
- ✓Position sizing from balance and stop distance
- ✓Session, day, blackout and volatility filters
- ✓Daily caps, equity stop and losing-run limits
It does not model
- ✕Real tick sequence inside a bar
- ✕Variable spread, requotes or rejected orders
- ✕Swap and financing charges
- ✕Weekend and holiday gaps beyond what your file contains
- ✕Margin calls and stop-outs
- ✕Latency, or a broker whose feed differs from your data
Where your data lives
There is no account and no server call. The strategy you are editing is written to localStorage under getea.current, and anything you save explicitly goes to getea.library alongside its backtest summary. Both are in your browser only — they do not follow you to another machine, and clearing site data removes them. Export the JSON for anything you would be annoyed to lose.