EA development & Builder beginner 17 min read

How to Create an MT5 EA Without Coding (and What the Templates Actually Score)

Assemble an Expert Advisor from blocks in a browser, compile it to a real .ex5, and test it before it ever sees money. Includes the number nobody quotes: what the 84 shipped starter templates score at their stock settings, measured from the Builder's own records.

Published · Reviewed

You create an MT5 Expert Advisor without coding by assembling it from blocks on a canvas — an indicator block, a condition block, an order block, a risk block — and letting the server generate and compile the MQL5 for you. The file that comes back is a real .ex5, the same kind of file a hand-written EA compiles to. No MQL5 syntax is involved at any point.

The part that no-code does not remove is the design work, and that is where almost everyone loses. So this guide does both halves: the mechanical path from an idea to a compiled file, and the evidence about what those files score before you change anything.

What you’ll build

By the end you will have a compiled .ex5 sitting in MetaTrader 5’s MQL5/Experts folder, built from a rule you chose, with a stop-loss and a position size you set on purpose. Two routes get you there and they are genuinely different in effort:

  • Start from a template. Pick one of 84 pre-wired strategies from the gallery, then edit its blocks. Fastest way to see a complete flow, and the fastest way to inherit a losing baseline without noticing.
  • Start from a blank canvas. Place a Start node, wire an indicator into a condition, wire the condition into an order block, add risk. Slower, but you know exactly what every wire does.

Either way the vocabulary is the same: 118 block types in 8 categories, with a budget of 50 nodes per design. That budget is not the constraint beginners expect it to be. The highest-scoring template in the whole gallery uses six nodes.

Before you start: what the Builder is, and what it is not

You need an idea expressible as “when X happens, buy; when Y happens, close”, 15–30 minutes, and a MetaTrader 5 terminal to run the result in. You do not need MQL5, a compiler, or Windows — the editor runs in the browser and the compile happens on the server.

Three boundaries are worth knowing before you invest an evening.

It generates code; it does not trade. The Builder never places an order, never connects to your broker, and never issues signals. It hands you a file. Everything after that happens in your terminal, on your account, under your control.

Designing is free; compiling needs an account. Dragging blocks, loading templates and reading the Code tab’s inputs preview require no sign-in. Compiling to .ex5 and running the strength test require a free account with a verified email address — an unverified account gets a 403 and the message “Your account is not eligible yet”, which is a different failure from the EAB-E601 “Sign in to compile” you get with no account at all. Knowing which of the two you hit saves a confused ten minutes.

The free .ex5 is licensed, not portable. Every free compile ships with an account lock: the EA runs only on a verified IB account with a supported broker, and MetaTrader 5 must have https://mt5depot.com allow-listed under Tools > Options > Expert Advisors > Allow WebRequest or the EA disables itself on start. Strategy Tester backtests are exempt from that check — which is exactly why you can test before you link anything. The editable .mq5 source is the one paid feature, a one-time $399 Pro licence.

Step-by-step: build the EA

  1. Open the editor from the Builder page — the button reads Open the builder — free. Nothing is installed and your work autosaves in the browser.
  2. Choose a starting point. The welcome screen offers Build Your EA — Free, Start with blank canvas and a 3-min tour, plus a template gallery filtered by Basic / Intermediate / Advanced / Portfolio. A blank canvas still needs a Start node from the Utility palette — without one, validation stops you with EAB-E202.
  3. Place blocks. Drag from the left palette or double-click an entry; Ctrl+K searches all 118 types by name. Wire them by dragging from a node’s output port on the right to the next node’s input port on the left, or press the + button on a node to add and auto-connect the next one.
  4. Set each block’s parameters in the Properties tab on the right. This is where an indicator’s period, applied price and timeframe live — every indicator block can read a different timeframe from the chart it runs on, which is how a multi-timeframe filter is built without any code.
  5. Set the account-wide rules in the Settings tab: Money Management, Filters, Exit Strategy, Position Management, Risk Management. Lot size defaults to a fixed 0.01, and the shared entry protection defaults to a 50-pip stop and a 100-pip target until you change them.
  6. Read the validation bar and the Preflight diagnosis panel. Errors block generation; warnings do not. A flow with no stop-loss raises a CRITICAL diagnosis and makes you confirm “Generate anyway?” before it will build.
  7. Press Measure to run the built-in approximate backtest — pick a symbol, a timeframe and a spread in points, and read the verdict against the printed bar. Do this before compiling, not after.
  8. Press Compile .ex5. The server generates the MQL5, compiles it with MetaEditor and returns EA_Builder.ex5. Move it into MQL5/Experts via File > Open Data Folder, then right-click the Navigator and choose Refresh — if the EA does not appear, it is almost always the folder, not the file.
  9. Test it in the Strategy Tester before you attach it to any chart. When you do attach it, the Algo Trading toolbar button has to be on and Allow Algo Trading has to be ticked in the EA’s Common tab. A sad face on the chart means one of those two is off, not that the strategy is broken.
  • Pick a template or a blank canvas
  • Wire indicator into condition into order
  • Set stop-loss, target and lot size
  • Measure the flow’s strength
  • Compile to .ex5
  • Test in the MT5 Strategy Tester
  • Demo, then decide
The no-code path from idea to a tested EA

A detail that surprises people at step 3: the editor refuses to build a flow that would silently misbehave. Wire an indicator straight into an order block and you get EAB-E205 — “An indicator is wired straight into an action. Insert a condition node (Compare/Cross) in between.” A node that is not reachable from Start raises EAB-E203 and is told plainly that it “will not be included in the generated EA”. These are not style warnings. They are the errors that stop a beginner from shipping an EA whose middle third does nothing.

If the compile itself fails, it is usually not your design. EAB-E402 means MetaEditor rejected the generated source, and three of its sub-codes — undeclared identifier, wrong parameter count, syntax — are labelled in the interface as “a bug on our side, not yours” with a request to attach the flow. Anything the mapper does not recognise is shown as the raw MetaEditor error line rather than a generic apology, which is exactly what makes reporting it worth doing. EAB-E401 and EAB-E404 are different animals: the compiler being busy, and a per-user rate limit. Both mean wait, not rebuild.

Blocks, entry and exit conditions, and the risk settings that are not optional

The palette is one vocabulary in eight groups. You do not need most of it on day one; you need to know which group answers which question.

Block groupTypesWhat it controlsSensible first setting
Utility2Where the flow begins, and multi-timeframe readsOne Start node
Indicators52The measurement your rule is based onOne indicator, chart timeframe
Price / Info5Raw price, OHLC, clock, account stateLeave alone until needed
Conditions10The comparison that fires the ruleCompare or Cross
Filters21When trading is allowed at allSpread filter, position limit
Actions15The order itself, and how it closesOpen Buy / Open Sell
Money Mgmt7How big the position isFixed Lot, 0.01
Exit Strategy6How a position endsFixed stop and target

Four of those types — pyramiding, averaging down, reversal entry and close-all — are configured from the Settings panel only. Drop one on the canvas and preflight rejects it with EAB-E304 and tells you where it actually lives. It is a small thing, but it is the kind of small thing that costs an hour when the error message is bad, and here it is not.

Two condition blocks cover most first strategies. Compare asks whether a value is above or below another value — RSI below 30, price above a moving average. Cross asks whether one line crossed another on this bar, which is a different and much stricter question than “is above”. Confusing the two is the most common reason a flow fires constantly instead of occasionally.

Decision timing matters as much as the condition. The default evaluates once per closed bar rather than on every tick. On an M5 chart, that is the difference between a handful of decisions an hour and hundreds — and a rule that looks profitable on closed bars can behave completely differently when it is allowed to fire mid-bar.

Backtest it before anything else

The Builder has a Measure button, and it prints its own pass bar next to the result: profit factor at least 1.2, at least 60 trades, max drawdown no worse than 20%. That bar is the useful part. It is a fixed, published threshold, so a result is either above it or it is not, and no amount of squinting at an equity curve changes the answer.

Here is what that bar does to the shipped templates. This is our own data, not a vendor’s claim: every gallery template carries the measured record of a run, and the table below counts them. How we test describes the standard those records are held to, and the aggregation script sits in the repository next to its output, so the count is reproducible rather than asserted.

Starter templatesMeasured
Templates in the gallery84
Templates carrying a measured baseline53
Flagged weak by the manifest53 of 53
Below profit factor 1.0 at stock settings46 of 53
Median profit factor0.92
Best profit factor in the set1.10
Clearing the Measure panel’s own pass bar0 of 53
Test conditions
Experiment IDEXP-BUILDER-TEMPLATE-BASELINE-001
EnvironmentExness MT5
Symbol / timeframeUSDJPYm M5
Period2025-06-01 – 2026-06-09
ModelM1 OHLC (Model=1)
Deposit10,000
Baseline measured2026-06-18
Aggregated / last verified2026-08-25
0 of 53Starter templates clearing the Builder's own pass bar at stock settings
0.92Median profit factor of the 53 measured starter templates
1.10Best template baseline — a six-node design, not a twenty-seven-node one

Three readings of that table are worth spelling out, because the obvious one is not the useful one.

Complexity did not help. The best baseline in the set, at 1.10, belongs to a six-node moving-average pullback. The 27-node multi-timeframe oscillator stack scores 1.04. The worst score in the set, 0.63, belongs to a 15-node multi-timeframe design with automatic lot sizing and a trailing stop. Adding blocks adds parameters, and parameters are how a design overfits rather than how it improves.

Depth and duration are separate problems. One template posts a 1.03 profit factor across 8,765 trades with a -7.92% max drawdown; another posts 0.69 with a -22.54% drawdown. A ratio near 1 tells you almost nothing about what holding it feels like.

Eight of them were searched, and the search failed. Eight templates carry a recorded parameter sweep — stop-loss and take-profit grids run across three windows: in-sample, out-of-sample, and the period before both. All eight came back no_robust_edge. Two never produced a winning setting even in-sample. Six found one and could not repeat it — the best moving-average crossover combination reached 1.23 on H1 in-sample and 0.98 on the prior window, and a CCI setting that held 1.05 out-of-sample still fell to 0.92 on the period before it. The bar was winning all three windows, and nothing cleared it. That is a more honest result than a tuned number, and it is the single best argument for testing your own edits rather than trusting anyone’s defaults, including these.

The measure is deliberately approximate — bar-level, major nodes only, not a real terminal. It is a filter, not a verdict. Anything that survives it should then be compiled and re-run in MT5’s own Strategy Tester, where fills, spread and the tick model are real. How to run a backtest in MT5 walks that second run through end to end on a real published record; the rest of what those numbers mean belongs to the backtesting guides rather than here.

  • Measured the flow and read it against the printed bar, not against a feeling
  • Re-ran the compiled .ex5 in the MT5 Strategy Tester on the same symbol and timeframe
  • Set an explicit stop-loss instead of accepting the 50-pip default
  • Checked the drawdown you would have had to sit through, not just the end result
  • Ran a demo account long enough to see the strategy lose and recover
  • Wrote down, in advance, the loss that would make you switch it off

Common mistakes to avoid

Compiling a template and calling it done. This is mistake number one by a wide margin, and the table above is why. A template is a wiring diagram someone already drew for you. The parameters in it were never fitted to your symbol, your timeframe or your broker’s spread.

Tuning until the backtest looks good. If you change a parameter, re-measure, change it again and keep the best, you are not improving a strategy — you are fitting it to one slice of history. The eight recorded parameter searches in the gallery all ended in no_robust_edge: six found an in-sample winner that did not survive the next window, and two never found one at all. Yours will behave the same way unless you check it the same way.

Testing one lucky year. The baseline above covers a single year on a single symbol at one broker. That is enough to say “this is not finished”; it is nowhere near enough to say “this works”. Widen the window and change the symbol before you believe anything.

Piling on filters to fix a losing rule. Twenty-one filter types are available, and adding five of them will make almost any backtest look better. It will also cut the trade count until the result rests on a handful of trades. Watch the trade count as closely as the profit factor — the Measure panel flags a thin sample below 60 trades for exactly this reason.

Running several EAs without separating them. If you run more than one EA on one account, each needs its own magic number, or one EA’s exit logic will close the other’s positions. This costs nothing to get right and is painful to diagnose after the fact.

Skipping the demo pass. A backtest bounds what a rule set could have done on recorded prices. It does not include your latency, your requotes or a spread that widens at the moment your rule fires. Nothing here is a promise of profit, and every record on this page describes the past.

Next steps and variations

Where you go next depends on which part felt thin.

If the strategy is the gap, start from a rule you can state in one sentence and build the smallest flow that expresses it. Six nodes beat twenty-seven in the measured set, so the small version is not a compromise. Browsing the indicator reference is more useful at this point than adding another filter — a Donchian channel breakout and an RSI reversion are opposite ideas, and knowing which one you are building decides every parameter after it. How to build an RSI EA and how to build a MACD EA walk one of each end to end, including what the shipped templates score before you change anything.

If the testing is the gap, that is the deeper skill and it has its own home in the backtesting guides. The short version: test out of sample, watch the trade count, and treat a result you had to search for as a warning rather than a finding.

If you want a worked reference before building your own, the published EAs each show a complete closed-trade list, drawdown and run manifest — read one end to end, because it shows you what a documented record looks like and gives you something to compare your own measurements against. Are expert advisors profitable? reads that same catalogue for what profitability actually looks like from the inside, including the long stretches where nothing works.

If you are deciding whether to automate at all, EA vs manual trading replays owned records under the stop rules a discretionary trader would actually use, which is the honest version of that comparison.

And if you build something worth showing, the compile flow offers to submit it to the free public pool — every submission is reviewed, and a design that clears the pass bar on more than one symbol is genuinely rare. How to use a free EA documents what that review actually checks, what the Verified badge does and does not mean, and how the free side of the site is funded — worth reading from the submitter’s side as well as the downloader’s.

Frequently asked questions

Can you really create an MT5 EA without coding?
Yes, in the sense that matters: you never type MQL5. You assemble the logic from 118 block types on a canvas, and the server generates and compiles the MQL5 for you, returning a ready-to-run .ex5 file. What no-code does not remove is the design work. You still choose the entry rule, the exit rule, the position size and the stop, and those choices are the strategy. The editor will also refuse to generate some flows — an indicator wired straight into an order block is rejected with EAB-E205 until you insert a condition between them.
Is the EA Builder free?
Designing is free and needs no account: up to 50 nodes per design, all 84 templates and all 118 node types are open to everyone. A free account — with a verified email address — is required to compile to .ex5 or run the built-in strength test. The one paid feature is the editable MQL5 (.mq5) source, a one-time $399 Pro licence. There is no monthly compile quota on the free tier; the only limit on compiling is a per-user rate limit that exists to stop abuse.
Are the starter templates ready to trade?
No, and the Builder's own records say so. Of the 84 gallery templates, 53 ship with a measured backtest baseline, and every one of those 53 carries a weak flag. Forty-six of the 53 close below a profit factor of 1 on that run, the median is 0.92, and not one of them clears the pass bar the Builder's own Measure panel prints (profit factor at least 1.2, at least 60 trades, max drawdown no worse than 20%). Treat a template as a wired-up starting point, not a finished EA.
Where do I put the .ex5 file after I compile it?
The download arrives as EA_Builder.ex5. In MetaTrader 5 open File > Open Data Folder, then drop the file into MQL5/Experts and restart the terminal or refresh the Navigator. The free .ex5 is licensed to run only on a verified IB account with a supported broker, so you also need to add https://mt5depot.com under Tools > Options > Expert Advisors > Allow WebRequest, or the EA disables itself on start. Strategy Tester backtests are unaffected by that check, which is why testing works before the account linking does.
Can I sell or share an EA I build here?
You can share it. The Compile button opens a Share your EA to the pool dialog after the download, which submits the design to the free public pool with a name, a short description and an optional backtest note; every submission is reviewed. Selling is a different question from building: what the free tier hands you is a compiled binary licensed to a verified IB account, not portable source. The editable .mq5 is the Pro feature.