Another idea, can you try to set volume to 1.0 instead of 1.
And if that doesn’t change, try with a double variable : double myvolume=1.0; mrequest.volume=myvolume
Another idea, can you try to set volume to 1.0 instead of 1.
And if that doesn’t change, try with a double variable : double myvolume=1.0; mrequest.volume=myvolume
i am not sure if it matters in the mqltraderequest structure but you can also try to change the order.
In the initialisation list, members can go in any order, but all members of the class will be initialised according to the order of their announcement.This should be taken into account in cases where the initialisation of some members of the class depends on the values in other class members.
Market Execution
This is a trade order to open a position in the Market Execution mode. It requires to specify the following 5 fields:
action
symbol
volume
type
type_filling
i am not saying this should get rid of the error but i always tend to follow the same order as explained in the docs.
The ACCOUNT_TRADE_EXPERT returns 1.
Setting the volume that way did not show changes on the error, but that could be because the symbol will stop trading in less than 30 minutes counting from now, and when that happens the broker closes all trades from Metatrader (on my broker, metatrader is only to be used as a daytrade tool). So, to be sure I will have to try that again on monday.
I appreciate the time you are spending trying to help me.
If I find the solution I will make sure to make it known here.
The broker offers an expert advisor (a gui) to do trades(but they don’t give the source code, only the ex), and it works, so there has to be a way.
If you have any other ideas, please share them with me, even if you think that they might not work. Thank you
@rpenright25 I didn’t think about that! Thank you!
It pains me that I will have to wait until monday to test it! I will let you know if it works or not.
If anyone else has other suggestions that have a chance to work, please let me know!
thanks
Guys! omg! I figured it out! You won’t believe what actually solved the issue!
As I said before, my broker offered an EA (only the .Ex, not the source code). And when I made a trade with it, it worked. So, there was something that EA was doing that mine wasn’t. Then I decided to use some mql5 functions to get all the info on the order it was generating and then I just copied all that info to my EA order and it worked. Then, when removing lines to try to figure out what was actually causing the order to be rejected before I found that it was the lack of the mrequest.comment line! (who could guess!)
So I just put the mrequest.comment line exactly like it was in the EA from the broker and the order actually went through!
Thanks for the support guys!
You need to add a comment for an order request to work ? What’s that !!!
Which comment by the way ?
Exactly!!! I would never have figured out that if I didn’t try everything!!
the line is mrequest.comment=“Turbo”; (Turbo is the name of the EA that the broker offers) (if I remove that line, the same error will appear again)
My guess is that my broker didn’t want inexperienced users to use random EA’s out there so they restricted the EA with that requirement, idk. (they are still working on the demo account thing and didn’t release demo accounts yet)
HAHA !! does it mean the comment on every trade has to be “Turbo” ?
thats kinda weird that is very hard to find out i think you did a great job at finding this issue !!
Thanks man . But if you guys didn’t say that my original EA was supposed to be working, then I would have a much harder time figuring it out. If it was supposed to be working but it was not, then it must be something very unusual, like that
And yes, It’s exactly as you say. I just tried changing the comment to “Turba” and the error came back lol. The broker really wanted the ppl to only use their EA and not another!
Hello @ydeans23 I think you’re talking about CLEAR-PRD, a Brazilian broker. Please ask the broker’s IT personnel about restrictions while running expert advisors on this broker.
As far as I know, expert advisors are temporarily blocked on this broker, as they do some IT-related improvements on the server-side.
Regards,
eu também sou cliente XP aqui no Brasil e este problema está acontecendo comigo também somente na conta real. Na conta demo está funcionando normalmente. Já li alguns posts seus e você é daqui do Brasil também, correto? Poderia me informar o que pode está acontecendo com o meu código? O servidor da XP chega a aceitar minha ordem, conforme mensagens da captura de tela que anexei na imagem abaixo. Mas me parece que o OMS cancela minha ordem pendente em milésimos de segundo. Agradeço se me der uma caminho. Amanhã estarei entrando em contato com eles para saber se há algum bloqueio semelhante ao amigo acima da CLEAR.
double volume=Lots;
string symbol=_Symbol; // specify the symbol, at which the order is placed
double point=SymbolInfoDouble(symbol,SYMBOL_POINT); // point
double ask=SymbolInfoDouble(symbol,SYMBOL_ASK); // current buy price
double bid=SymbolInfoDouble(symbol,SYMBOL_BID); // current sell price
double price_buy=bid; // preço de compra não normalizado
double price_sell=ask; // preço de venda não normalizado
price_buy=NormalizeDouble(price_buy,2); // normalizing open price
price_sell=NormalizeDouble(price_sell,2); // normalizing open price
double SL_BuyLimit=price_buy-SL+point; // Stop Loss não normalizado das ordens BuyLimit
double SL_SellLimit=price_sell+SL*point; // Stop Loss não normalizado das ordens SellLimit
SL_BuyLimit=NormalizeDouble(SL_BuyLimit,2); // Stop Loss normalizado das ordens BuyLimit
SL_SellLimit=NormalizeDouble(SL_SellLimit,2); // Stop Loss normalizado das ordens SellLimit
double TP_BuyLimit=price_buy+TP*point; // Stop Loss não normalizado das ordens BuyLimit
double TP_SellLimit=price_sell-TP*point; // Stop Loss não normalizado das ordens SellLimit
TP_BuyLimit=NormalizeDouble(TP_BuyLimit,2); // Stop Loss normalizado das ordens BuyLimit
TP_SellLimit=NormalizeDouble(TP_SellLimit,2); // Stop Loss normalizado das ordens SellLimit
datetime expiration=TimeTradeServer()+PeriodSeconds(PERIOD_D1);
string comment_buy=StringFormat("Buy Limit %s, lote de %d ações a %f, SL=%f TP=%f",
symbol,volume,
DoubleToString(price_buy,2),
DoubleToString(SL_BuyLimit,2),
DoubleToString(TP_BuyLimit,2));
string comment_sell=StringFormat("Sell Limit %s, lote de %d ações a %f, SL=%f TP=%f",
symbol,volume,
DoubleToString(price_sell,2),
DoubleToString(SL_SellLimit,2),
DoubleToString(TP_SellLimit,2));
//--- Todas as variaveis prontas, enviando ordens pendentes de BuyLimit e SellLimit ao servidor
if(!Trade.BuyLimit(volume,price_buy,symbol,SL_BuyLimit,TP_BuyLimit,ORDER_TIME_GTC,expiration,comment_buy))
{
//--- Mensagem caso a ordem BuyLimit falhe
Print("BuyLimit() method failed. Return code=",Trade.ResultRetcode(),
". Descrição do código: ",Trade.ResultRetcodeDescription());
}
else
{
//--- Mensagem caso a ordem seja executada com sucesso
Print("BuyLimit() method executed successfully. Return code=",Trade.ResultRetcode(),
" (",Trade.ResultRetcodeDescription(),") and Ticket order=", Trade.ResultOrder());
buylimit_order=Trade.ResultOrder();
}
if(!Trade.SellLimit(volume,price_sell,symbol,SL_SellLimit,TP_SellLimit,ORDER_TIME_GTC,expiration,comment_buy))
{
//--- Mensagem caso a ordem BuyLimit falhe
Print("SellLimit() method failed. Return code=",Trade.ResultRetcode(),
". Descrição do código: ",Trade.ResultRetcodeDescription());
}
else
{
Print("SellLimit() method executed successfully. Return code=",Trade.ResultRetcode(),
" (",Trade.ResultRetcodeDescription(),") and Ticket order=", Trade.ResultOrder());
selllimit_order=Trade.ResultOrder();
}
Please post in English on this forum.
Translation:
I am also XP client in Brazil and this problem is happening to me also only the real account. In the demo account it is operating normally. I’ve read some of your posts and you are here in Brazil too, right? Could you tell me what’s going on can with my code? The XP server comes to take my order as screenshot of messages that have attached the image below. But it seems that the WHO cancel my pending order in milliseconds. I appreciate if you give me one way. Tomorrow I will be contacting them to find out if there are any similar blocking his friend above the CLEAR.
sorry. I am new here in this forum and did not realize that. Thanks!
I am also CLEAR user and I am getting the same error: orders are rejected without an error message. I also tried using “Turbo” comment and then I started receiving “Expert not authorized!” error.
The EA works perfect using DEMO account, but in PROD don’t.
Yes. About 3 minutes ago they answered my e-mail saying PROD server does not allow automated trades using Meta Trader. It requires risk management and tools that they do not have available. I thought: WTF???
So, if you are reading this and planning to sign up a contract to use Meta Trader with Clear, you will only have DEMO mode.
At this time I am closing my account at Clear Broker.
Hi everyone,
I think that I have the same problem with Clear Broker, and I just send an e-email just a minutes ago, and now searching the problem I find this poster.
I would like to know what home’s broker are avaible here in Brazil without that problem. I want to use the metatrader 5 in read account.
Thanks for the comments
rejected exchange (Expert not authorized!)
How I can I authorise my Expert ?
@ydeans23
Hi bro,
I have the same problem but in different broker!
I don’t know where can I find the comment if my broker uses the same trick?
Best regards.
Maybe
Request.deviation = 100;