Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Хочешь написать технический индикатор? Загляни в Справочник MQL5!
Михаил
77
Михаил 2013.10.09 10:43 

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

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

Но даже нижеописанная конструкция не работает. Точнее, то выставит сразу 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);
ktest0
631
ktest0 2013.10.09 11:02  

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

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

Vlad
13
Vlad 2013.10.09 11:41  
Такая же проблема. Что значит "нормализовать" цену?
khorosh
8195
khorosh 2013.10.09 11:57  
Izdesbyll:
Такая же проблема. Что значит "нормализовать" цену?

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

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


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

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

TarasBY
1739
TarasBY 2013.10.09 12:42  
Stingerrr:

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

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

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

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

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

Vlad
13
Vlad 2013.10.09 12:56  
khorosh:

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


А что плохого то в Ask и Bid?
Vladimir Pastushak
68538
Vladimir Pastushak 2013.10.09 13:35  

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

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());
}
}
Vladimir Pastushak
68538
Vladimir Pastushak 2013.10.09 13:37  
Izdesbyll:

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

в том что разность между ними платишь ты .....
Михаил
77
Михаил 2013.10.09 13:39  
TarasBY:

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

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

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

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


Спасибо большое, попробую. А объясните пожалуйста, не очень понимаю, какую именно техническую пользу принесет нормализация?
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий