Makarov:
Нет, не корректна. OrderSend не возвращает 0, либо номер тикета ордера,
либо -1, но я бы рекомендовал на всякий случай ставить проверку
не на ==-1, а на <0.Корректна ли такая запись:
if (OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point,"", MAGIC,0,Green) == 0) Sleep(5000);
P.S. Кстати, если подразумевается возможность нескольких торговых операций на одном тике, то Sleep лучше делать независимо от результата операции.
Спасибо. Попробую переадресовать этот вопрос Mak -у в ветке: https://www.mql5.com/ru/users/sashken
Mak:
Да, там опечатка, нужно проверять на < 0
Почему Sleep(5000) непомню, видимо надо было :))
Да, там опечатка, нужно проверять на < 0
Почему Sleep(5000) непомню, видимо надо было :))
Попробую читать мысли :) . Наверно, в случае ошибки сделать паузу, и через заданное время сделать новую попытку оправки ордера. Тогда встречный вопрос – эффективно ли это, и нужно ли на практике?
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Корректна ли такая запись:
if (OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point,"", MAGIC,0,Green) == 0) Sleep(5000);
Из хелпа следует, что OrderSend "Возвращает номер тикета, который назначен ордеру торговым сервером или -1 в случае неудачи".
Какой смысл здесь может подразумеваться?