HomeBuilderBlocksDocsPrivacyGetInterestGetJSON
Documentation

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

  1. 1Download your .mq5 from the builder's Export step.
  2. 2In MT5 press F4 to open MetaEditor, or use File → Open Data Folder and drop the file into MQL5/Experts.
  3. 3Press F7 to compile. You should get 0 errors, 0 warnings. Nothing else needs installing — every non-native indicator is inside the file.
  4. 4Back in the terminal, refresh the Navigator (right click → Refresh), then drag the robot onto a chart.
  5. 5Tick Allow Algo Trading in the dialog, and make sure the Algo Trading button in the toolbar is green.
  6. 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

  1. 1Download the .mq4, then File → Open Data Folder and drop it into MQL4/Experts.
  2. 2Open it in MetaEditor and press F7. The file targets build 600 and later — if your terminal is older than that, update it.
  3. 3Refresh the Navigator, drag onto a chart, tick Allow live trading.
  4. 4MT4's tester models one currency pair with modelled ticks. Use Every tick quality and treat the result as approximate.
MT4 has no netting mode: a buy and a sell can sit open at the same time. If you do not want that, turn off Allow long and short at the same time in Money & risk and the robot closes the opposite side before it enters.

Installing on cTrader

  1. 1Open AutomatecBotsNew cBot.
  2. 2Select everything in the template and paste the downloaded .cs over it.
  3. 3Press Build (F6). No references need adding — the file uses only cAlgo.API and its own helper methods.
  4. 4Open a chart, add the cBot from the Automate panel, set parameters and press Play.
One difference worth knowing. A cBot reads the chart it is attached to, so there is no separate “signal timeframe” parameter. Attach it to the timeframe you designed the strategy on — an H1 strategy on an M5 chart is a different strategy.

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.

Any of these work
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

NumberWhat it meansWhat to look for
Win rateShare of trades that closed positive.Meaningless alone. Read it with the payoff ratio.
Profit factorGross profit ÷ gross loss.Below 1 loses money. Above 2 on few trades usually means overfitting.
ExpectancyAverage profit per trade, costs included.Must comfortably exceed your spread and commission.
Max drawdownLargest fall from an equity peak.Assume the live one is worse. Ask whether you would keep trading through it.
Payoff ratioAverage win ÷ average loss.A low win rate needs a high payoff, and the other way round.
Longest losing runConsecutive losers.The number that ends most live accounts. Double it and see how it feels.
Recovery factorNet profit ÷ max drawdown.Under 1 means the drawdown was bigger than everything you made.
Sharpe / SortinoReturn per unit of variability.Approximate here — treat them as a comparison between your own variants, not an absolute.
The one rule. Fewer than about a hundred trades tells you almost nothing, and a strategy tuned until the backtest looks good is a strategy tuned to noise. Change one parameter by 20% — if the result collapses, the result was never there.

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.