Одновременное открытие противоположных сделок.

 

Доброго времени суток, уважаемые коллеги. Столкнулся с проблемой и не смог пока найти ответа, помогите пожалуйста. Необходимо одновременно открыть две противоположных сделки.

Если просто напросто вписать последовательно две инструкции на открытие, в основном открывается только первая сделка и все. Это понятно, открытие занимается время, вторую не успевает обрабатывать.

Но даже нижеописанная конструкция не работает. Точнее, то выставит сразу 2 сделку, то через минуту, то через 10. Подскажите, как правильно реализовать сей момент?

BuyTicket = OrderSend(Symbol(),OP_BUY,LotMassive[CounterLot],Ask,3,0, 0,"",Magic,0,Blue);
SellTicket = OrderSend(Symbol(),OP_SELL,LotMassive[CounterLot],Bid,3, 0, 0,"",Magic,0,Red);
while(SellTicket <=0)
SellTicket = OrderSend(Symbol(),OP_SELL,LotMassive[CounterLot],Bid,3, 0, 0,"",Magic,0,Red);
 

1. Нормализуйте цену и желательно лот.

2. Попробуйте поставить паузу между открытиями.

 
Такая же проблема. Что значит "нормализовать" цену?
 
Izdesbyll:
Такая же проблема. Что значит "нормализовать" цену?

Читайте здесь. А что не поймёте спрашивайте.

 
Izdesbyll:
Такая же проблема. Что значит "нормализовать" цену?


https://docs.mql4.com/ru/convert/normalizedouble

Очень рекомендую ознакомится с документацией, иначе каждый чих на форуме публиковать будете...

 
Stingerrr:

Доброго времени суток, уважаемые коллеги. Столкнулся с проблемой и не смог пока найти ответа, помогите пожалуйста. Необходимо одновременно открыть две противоположных сделки.

Если просто напросто вписать последовательно две инструкции на открытие, в основном открывается только первая сделка и все. Это понятно, открытие занимается время, вторую не успевает обрабатывать.

Но даже нижеописанная конструкция не работает. Точнее, то выставит сразу 2 сделку, то через минуту, то через 10. Подскажите, как правильно реализовать сей момент?

while(SellTicket <=0)
SellTicket = OrderSend(Symbol(),OP_SELL,LotMassive[CounterLot],Bid,3, 0, 0,"",Magic,0,Red);

Совершенно бесполезное действие - в цикле цена НЕ ОБНОВЛЯЕТСЯ!!!... если её принудительно не обновлять.

 
khorosh:

Читайте здесь. А что не поймёте спрашивайте.


А что плохого то в Ask и Bid?
 

На правильность не претендую, писал на скорую руку

int flag = 0 ;
int start()
{
if (сигнал для обнуления флага flag)
if (сигнал там какойнить && flag == 0 ) flag = 1 ;

if (IsTradeAllowed()==true)
{
if (flag == 1)
int tikb=OrderSend(Symbol(),0,NormalizeDouble(0.01,2),NormalizeDouble(Ask,Digits),Slip,0,0,0,0,Blue);
if (tikb>0)flag=2; else Print(GetLastError());

if (flag == 2)
int tiks=OrderSend(Symbol(),1,NormalizeDouble(0.01,2),NormalizeDouble(Bid,Digits),Slip,0,0,0,0,Blue);
if (tiks>0)flag=3; else Print(GetLastError());
}
}
 
Izdesbyll:

А что плохого то в Ask и Bid?

в том что разность между ними платишь ты .....
 
TarasBY:

Совершенно бесполезное действие - в цикле цена НЕ ОБНОВЛЯЕТСЯ!!!... если её принудительно не обновлять.

Я понял, спасибо. Думал, что график будет ходить и Ask браться всегда как цена на графике.
 
ktest0:

1. Нормализуйте цену и желательно лот.

2. Попробуйте поставить паузу между открытиями.


Спасибо большое, попробую. А объясните пожалуйста, не очень понимаю, какую именно техническую пользу принесет нормализация?
Причина обращения: