
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Answering the question"How to work correctly in MT5 with OrderSend"
There is a simple answer.
Until the developers fix the problem, then
ulong order_ticket; //Тикет ордера
//---
if(OrderSend(request,result))
{
if(result.retcode==TRADE_RETCODE_DONE)
{
pre_ticket=result.order;
}
}
//----------------------------------------------------------------+
//| TradeTransaction function |
//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction &trans,
const MqlTradeRequest &request,
const MqlTradeResult &result)
{
switch(trans.type)
{
case TRADE_TRANSACTION_ORDER_UPDATE:
if((pre_ticket>0) && (trans.order==pre_ticket))
{
switch(trans.order_state)
{
case ORDER_STATE_PLACED:
order_ticket = pre_ticket;
break;
}
}
break;
}
}
When they do, then
//---
if(OrderSend(request,result))
{
if(result.retcode==TRADE_RETCODE_DONE)
{
order_ticket=result.order;
}
}
I have the general impression that the 5 is raw, raw...
No one is immune to mistakes.
Another thing is that mistakes take a very long time to correct.
Answering the question"How to work correctly in MT5 with OrderSend"
There is a simple answer.
Until the developers fix it
ulong order_ticket; //Тикет ордера
//---
if(OrderSend(request,result))
{
if(result.retcode==TRADE_RETCODE_DONE)
{
pre_ticket=result.order;
}
}
//----------------------------------------------------------------+
//| TradeTransaction function |
//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction &trans,
const MqlTradeRequest &request,
const MqlTradeResult &result)
{
switch(trans.type)
{
case TRADE_TRANSACTION_ORDER_UPDATE:
if((pre_ticket>0) && (trans.order==pre_ticket))
{
switch(trans.order_state)
{
case ORDER_STATE_PLACED:
order_ticket = pre_ticket;
break;
}
}
break;
}
}
What if the OrderSend bundle?
And when it is fixed, then
What if an OrderSend pack?
For lovers of PACHE
ulong order_ticket_1 = 0; //Тикет ордера
ulong order_ticket_2 = 0; //Тикет ордера
ulong order_ticket_3 = 0; //Тикет ордера
ulong order_ticket_4 = 0; //Тикет ордера
ulong order_ticket_5 = 0; //Тикет ордера
uint num_order = 0;
//---
if(OrderSend(request,result))
{
if(result.retcode==TRADE_RETCODE_DONE)
{
pre_ticket=result.order;
num_order++;
}
}
//----------------------------------------------------------------+
//| TradeTransaction function |
//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction &trans,
const MqlTradeRequest &request,
const MqlTradeResult &result)
{
switch(trans.type)
{
case TRADE_TRANSACTION_ORDER_UPDATE:
if((pre_ticket>0) && (trans.order==pre_ticket))
{
switch(trans.order_state)
{
case ORDER_STATE_PLACED:
switch(num_order)
{
case 1:
order_ticket_1 = pre_ticket;
pre_ticket = 0;
break;
case 2:
order_ticket_2 = pre_ticket;
pre_ticket = 0;
break;
case 3:
order_ticket_3 = pre_ticket;
pre_ticket = 0;
break;
case 4:
order_ticket_4 = pre_ticket;
pre_ticket = 0;
break;
case 5:
order_ticket_5 = pre_ticket;
pre_ticket = 0;
break;
}
break;
}
}
break;
}
}
void OnTick()
{
if(pre_ticket == 0)
{
OrderSend();////////
}
}
Or like this
ulong pre_ticket = 0; //Претикет ордера
ulong order_ticket_1 = 0; //Тикет ордера
ulong order_ticket_2 = 0; //Тикет ордера
ulong order_ticket_3 = 0; //Тикет ордера
ulong order_ticket_4 = 0; //Тикет ордера
ulong order_ticket_5 = 0; //Тикет ордера
uint num_order = 0;
//---
if(OrderSend(request,result))
{
if(result.retcode==TRADE_RETCODE_DONE)
{
pre_ticket=result.order;
num_order++;
}
}
//----------------------------------------------------------------+
//| TradeTransaction function |
//+------------------------------------------------------------------+
void OnTradeTransaction(const MqlTradeTransaction &trans,
const MqlTradeRequest &request,
const MqlTradeResult &result)
{
switch(trans.type)
{
case TRADE_TRANSACTION_ORDER_UPDATE:
if((pre_ticket>0) && (trans.order==pre_ticket))
{
switch(trans.order_state)
{
case ORDER_STATE_PLACED:
switch(num_order)
{
case 1:
order_ticket_1 = pre_ticket;
pre_ticket = 0;
OrderSend();
break;
case 2:
order_ticket_2 = pre_ticket;
pre_ticket = 0;
OrderSend();
break;
case 3:
order_ticket_3 = pre_ticket;
pre_ticket = 0;
OrderSend();
break;case 4:
order_ticket_4 = pre_ticket;
pre_ticket = 0;
OrderSend();
break;
case 5:
order_ticket_5 = pre_ticket;
pre_ticket = 0;
break;
}
break;
}
}
break;
}
}
They won't. It's a chip.
It's a pity the developers don't comment on OrderSend() situation.
Is it a "chip" or will they fix it?
They won't. It's a chip.
SD replies that OrderSend() will work properly in the next build :)
open positions the complete structure of the trade or position".
Nevertheless, I got the answer I wrote above.
Maybe you didn't write very convincingly or you didn't make the argument about the lack of function.