Сообщение от traderEvgen Посмотреть сообщение
Написал функцию открытия одновременно двух ордеров.

И вроде все работало правильно, на тестере точно правильно, но на счете была проблема. Было открыто 4 позиции одновременно вместо 2.

Может кто знает почему ? Может будут советы как переделать ?

MQL код:
void OrdersWorker::OrderSendX(int cmd, double stoploss, double takeprofit1, double takeprofit2, string comment)
{
int count = 0;
double price = 0;
ticket1 = -1;
ticket2 = -1;

while(true)
{
if(cmd == OP_BUY) price = Ask;
if(cmd == OP_SELL) price = Bid;

if(ticket1 == -1 )
ticket1 = OrderSend(Symbol(), cmd, lot, price, 3, stoploss, takeprofit1, comment + "_1", magicNumber, 0, Red);

if(ticket1<0)
{
Print("OrderSend1 завершилась с ошибкой #",GetLastError());
}

Sleep (100);
RefreshRates();

if(cmd == OP_BUY) price = Ask;
if(cmd == OP_SELL) price = Bid;

if(ticket2 == -1 )
ticket2 = OrderSend(Symbol(), cmd, lot, price, 3, stoploss, takeprofit2, comment + "_2", magicNumber, 0, Green);

if(ticket2<0)
{
Print("OrderSend2 завершилась с ошибкой #",GetLastError());
}


if(ticket1==-1 || ticket2==-1)
{
count++;
Sleep(2000);
RefreshRates();
}
if ((ticket1!=-1 && ticket2!=-1) || count>5)
{
return;
}
}

return;
}