Market submission
Rejected again,
and the note says nothing.
The MQL5 Market moderator does not debug your EA for you. Send what you have and get it back in a state that passes — with the strategy untouched and a note on what was wrong, so the next one you write does not repeat it.
What actually gets EAs rejected
The moderator's reply is short by design and rarely names the line. In practice the same handful of faults account for most rejections, and none of them are about whether your strategy is any good:
- Trading without checking free margin first. The order is sent, the server refuses it, and the EA carries on as though it opened. Every entry path needs the check, not just the main one.
- Volume not normalised. Lot size has a minimum, a maximum and a step, and they differ per symbol and per broker. A calculated lot of 0.037 is an instant rejection on a broker with a 0.01 step.
- Stops level and freeze level ignored. Placing a stop closer than the symbol allows fails, and modifying an order inside the freeze distance fails. Both are read from the symbol, never assumed.
- Order and position limits unhandled. Accounts cap how many orders may be open at once. An EA that keeps sending into a full account looks broken to whoever is testing it.
- A crash the tester finds and you did not. Usually a division by zero, an array read past its end, or an indicator handle that failed and was used anyway. It appears on a symbol or period you never tried, and the moderator did.
- No recovery after a restart. The terminal is closed mid-trade and the EA comes back with no idea what it has open. Positions must be read from the account, not remembered in a variable.
- Hard-coded symbol names, magic numbers or paths. "EURUSD" is not what every broker calls it, and a file path from your machine is not on theirs.
Read that list again and notice what is missing: nothing about profitability. Market review is a technical inspection, not a judgement on the strategy. That is good news — it means a rejection is a fixable problem.
What gets changed, and what does not
Your strategy is not touched. Entries, exits, filters, the logic that makes it yours — all of it stays exactly as written. What gets fixed is everything standing between that logic and approval: the pre-trade checks, the normalisation, the error handling, the restart recovery.
If a rule genuinely conflicts with how the strategy works — a stop distance the symbol will not accept, say — you are told and given the options rather than having one picked for you behind your back.
What comes back
- The corrected source, yours to keep and to build on.
- A written list of what was wrong and what each fix does — the point being that the next EA you write arrives at review already clean.
- Tester runs across several symbols and periods, including the awkward ones moderators reach for: an exotic pair, a symbol with an unusual lot step, a period with a gap in it.
- A pass over the listing text itself, since a description that promises profitability or shows an unrealistic backtest gets a product rejected no matter how clean the code is.
What to send
-
The source, not the compiled file
An
.ex5cannot be corrected. Send the.mq5or.mq4and any include files it depends on. -
The rejection message, in full
Every one of them, if there have been several. They are terse, but together they usually point straight at the fault — and the sequence tells you what has already been ruled out.
-
What the EA is meant to do
Enough to fix it without breaking it: which symbols and periods it targets, how it sizes positions, and anything deliberate that looks like a bug from outside.
Honest limits
- Approval is not something anyone can guarantee. The moderator decides, and they occasionally reject for reasons no external review would predict. What is offered is the technical work; if a fixed version is rejected again for a code fault that was missed, it gets fixed at no charge.
- Not a rewrite. If the EA needs rebuilding rather than correcting, you are told that up front and quoted for what it really is — nobody benefits from patching something that should be replaced.
- Not a way past the rules. An EA whose problem is that it does something the Market does not permit cannot be made to pass by being tidier.
Send it over
A fixed price usually comes back the same day, and nothing starts until you agree to it. If the job is not one worth paying for, you will be told that too — it is cheaper for both of us than a half-useful build.