Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Опубликуй статью и заслужи признание тысячи трейдеров!
Vladimir Deryagin
343
Vladimir Deryagin 2016.08.14 09:50 
      int closebuy=-1;
//
                     while(closebuy<0 && !IsStopped())
                       {
                        RefreshRates();
                          {
                           closebuy=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slippage,CLR_NONE);
                           Print("Закрытие BUY");
                          }
                       }

Будет ли такой цикл работать до тех пор, пока, ордер не закроется (p.s. это часть кода ордер предварительно выбран) при реквотах.

Или просто

Slippage указывать с большими величинами 
Dmitry Fedoseev
42871
Dmitry Fedoseev 2016.08.14 10:18  
bool closebuy=false;
while(!closebuy && !IsStopped())

Еще надо бы Sleep(1) вставить под while.

Но лучше переменную-флаг, и на каждом тике повторять попытки.  

Vladimir Deryagin
343
Vladimir Deryagin 2016.08.14 10:25  
Dmitry Fedoseev:

Еще надо бы Sleep(1) вставить под while.

Но лучше переменную-флаг, и на каждом тике повторять попытки.  

То есть работать будет, Спасибо!
Dmitry Fedoseev
42871
Dmitry Fedoseev 2016.08.14 10:46  
Vladimir Deryagin:
То есть работать будет, Спасибо!
После исправления будет. Функция OrderClose() возвращает true/false, никогда не возвращает -1.
Vladimir Deryagin
343
Vladimir Deryagin 2016.08.14 10:55  
Dmitry Fedoseev:
После исправления будет. Функция OrderClose() возвращает true/false, никогда не возвращает -1.

теперь понятно по поводу OrderClose() ,получается при OrderSend() используя данную конструкцию правильно будет использовать не переменную-флаг, так как возвращает -1;

      int opbuy=-1;
//
                     while(opbuy<0 && !IsStopped())
Sleep(1);
{
/////
}
Dmitry Fedoseev
42871
Dmitry Fedoseev 2016.08.14 11:09  
Vladimir Deryagin:

теперь понятно по поводу OrderClose() ,получается при OrderSend() используя данную конструкцию правильно будет использовать не переменную-флаг, так как возвращает -1;

Да. Только Sleep() сделайте подольше, хотя бы пару секунд, или 5-ть сек - 5000.
Vladimir Deryagin
343
Vladimir Deryagin 2016.08.14 11:27  
Dmitry Fedoseev:
Да. Только Sleep() сделайте подольше, хотя бы пару секунд, или 5-ть сек - 5000.
Спасибо, теперь всё ясно. Sleep поставлю (1500) миллисекунд думаю для моего ДЦ будет нормально (при связи 1.21ms) ну а там методом тыка )))
Yuriy Asaulenko
3301
Yuriy Asaulenko 2016.08.14 17:44  
Vladimir Deryagin:
Спасибо, теперь всё ясно. Sleep поставлю (1500) миллисекунд думаю для моего ДЦ будет нормально (при связи 1.21ms) ну а там методом тыка )))
М.б. таймер попроще будет? И поток не блокирует.
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий