Given that it is a Market product and you can't show your code, I doubt you will be able to get any satisfactory answer.
However, I will ask this ... is your EA for "hedging" account, "netting" account or both?
If it is only for "hedging" accounts, did you correctly identify that in the Market product classification so that it does not carry out "netting" tests?
Given that it is a Market product and you cant show your code, I doubt you will be able to get any satisfactory answer.
However, I will ask this ... is your EA for "hedging" account, "netting" account or both?
If it is only for "hedging" accounts, did you correctly identify that in the Market product classification so that it does not carry out "netting" tests?
"Belief" has no place in the world of programming. It is or it is not!
So, I will ask again, irrespective of what changes you made, have you tested it yourself on both "netting" and "hedging" accounts?
Do your tests work correctly in both cases?
What did you state in your product's description properties—did you select "hedging", "netting" or both?
"Belief" has no place in the world of programming. It is or it is not!
So, I will ask again, irrespective of what changes you made, have you tested it yourself on both "netting" and "hedging" accounts?
Do your tests work correctly in both cases?
What did you state in your product's description properties—did you select "hedging", "netting" or both?
Create one! Create a "demo" account and select non-hedging. Almost all brokers I know allow the creation of "netting" accounts for MT5.
If you have never tested your EA under "netting" conditions, then don't classify it has being able to trade on "netting", and also don't be surprised if the validation fails for "netting".
Do your due diligence. Either classify it as "Hedging only" or do the proper testing and validations.
Create one! Create a "demo" account and select non-hedging. Almost all brokers I know allow the creation of "netting" accounts for MT5.
If you have never tested your EA under "netting" conditions, then don't classify it has being able to trade on "netting", and also don't be surprised if the validation fails for "netting".
Do your due diligence. Either classify it as "Hedging only" or do the proper testing and validations.
Thanks didn't know i could do this with MetaQuotes demo... so far working perfectly on netting account? So still not sure why validator is failing...
How can you state it works "perfectly on netting account", when you have just confessed never having used or tested on a netting account?
By the way, make a backup of everything before connecting to e MetaQuotes demo trading server as it will push out "beta" builds of MetaTrader.
You will need to restore afterwards.
Its best to use a broker netting account.
How can you state it works "perfectly on netting account", when you have just confessed never having used or tested on a netting account?
Well its trading as usual the only difference is only one position on asset as a time which is not a problem... (thats what i understood the only difference is?)
It works as it was designed... is it optimised? maybe not.... but it works... what can i say ;)
Hello Dear Friends, I have managed to pass the MQL5 Market Validation for my MT4 TEST EA, it has overcome multiple errors like proper order send, proper order close, invalid volume checks error 131 and insufficient funds, EA code is attached here for you reference, thanks.
//+------------------------------------------------------------------+ //| MQL5AutoValidationPassEA.mq4 | //| Copyright 2024, FxProfitBots ltd. | //| fxprofitbots.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2024, FxProfitBots ltd." #property link "fxprofitbots.com" #property version "1.00" #property strict // Input parameters input double Lots = 0.1; input int StopLoss = 100; input int TakeProfit = 100; #define MAGIC_NUMBER 123456 //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { Print("SimpleEA initialized."); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { Print("SimpleEA deinitialized."); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { if (OrdersTotal() == 0) // Check if there are no open orders { if (ShouldOpenTrade()) { double volume = NormalizeLotSize(Lots); if (volume > 0 && CheckMoneyForTrade(Symbol(), volume, OP_BUY)) { OpenBuyTrade(volume); } } } } //+------------------------------------------------------------------+ //| Function to open a buy trade | //+------------------------------------------------------------------+ void OpenBuyTrade(double volume) { double price = Ask; double sl = price - StopLoss * Point; double tp = price + TakeProfit * Point; int ticket = OrderSend(Symbol(), OP_BUY, volume, price, 3, sl, tp, "SimpleEA Buy", MAGIC_NUMBER, 0, Blue); if (ticket < 0) { Print("OrderSend failed with error #", GetLastError()); } else { Print("Buy order opened successfully. Ticket: ", ticket); } } //+------------------------------------------------------------------+ //| Function to close all trades | //+------------------------------------------------------------------+ void CloseAllTrades() { for (int i = OrdersTotal() - 1; i >= 0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderType() == OP_BUY || OrderType() == OP_SELL) { bool result = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 3, clrRed); if (!result) { Print("OrderClose failed with error #", GetLastError()); } else { Print("Order closed successfully. Ticket: ", OrderTicket()); } } } } } //+------------------------------------------------------------------+ //| Function to check if trade should be opened | //+------------------------------------------------------------------+ bool ShouldOpenTrade() { // Example condition: simple moving average crossover int maPeriod = 14; double maCurrent = iMA(Symbol(), 0, maPeriod, 0, MODE_SMA, PRICE_CLOSE, 0); double maPrevious = iMA(Symbol(), 0, maPeriod, 0, MODE_SMA, PRICE_CLOSE, 1); return (maCurrent > maPrevious); } //+------------------------------------------------------------------+ //| Function to normalize the lot size according to market conditions| //+------------------------------------------------------------------+ double NormalizeLotSize(double lotSize) { double minLot = MarketInfo(Symbol(), MODE_MINLOT); double maxLot = MarketInfo(Symbol(), MODE_MAXLOT); double lotStep = MarketInfo(Symbol(), MODE_LOTSTEP); if (lotSize < minLot) lotSize = minLot; if (lotSize > maxLot) lotSize = maxLot; lotSize = MathFloor(lotSize / lotStep) * lotStep; if (lotSize < minLot || lotSize > maxLot) { Print("Lot size out of range. Adjusted to ", lotSize); return 0; } return lotSize; } //+------------------------------------------------------------------+ //| Function to check if there is enough money for trade | //+------------------------------------------------------------------+ bool CheckMoneyForTrade(string symb, double lots, int type) { double free_margin = AccountFreeMarginCheck(symb, type, lots); //-- if there is not enough money if (free_margin < 0) { string oper = (type == OP_BUY) ? "Buy" : "Sell"; Print("Not enough money for ", oper, " ", lots, " ", symb, " Error code=", GetLastError()); return false; } //--- checking successful return true; }
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Anybody had problems validating their EA, service desk says its a time out... but I have a bigger slower EA that validated fine...
Unless these are recent changes?
This is the error i get:
test on EURUSD,H1 (netting) there are no trading operations test on XAUUSD,D1 (netting) there are no trading operations test on GBPUSD,M30 (netting) there are no trading operations test on EURUSD,M1 (netting) there are no trading operations
Validation state: Validation completed with errors
I was told to read this but nothing in here has a solution as i have used it for my Traders Toolbox EA to make sure it passes tests in the past...
The checks a trading robot must pass before publication in the Market
Any Ideas?