Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Где-то год или два назад я лично читал от МетаКвоты сообщение, что с текущего билда IF прекращает дальнейшую проверку если не выполнено очередное условие.
Хотя возможно это касалось только МТ5, не помню.
Но с тех пор стараюсь именно по этой логике размещать проверки.
Поправьте, кто знает ТОЧНЫЙ ответ, пожалуйста.
Проверить самому - одна минута. #property strict...
Оператор continue
С ним всё понятно.
Вопрос был по составному if
Оператор continue
Редкостная гадость.
С ним всё понятно.
Вопрос был по составному if
проверить можно если сделать несколько функций и вызвать их из if(func1()>0 && func2()>0 && func3()>0) Print("3 условия")
в теле каждой функции написать: Print(___FUNCTION____); и вернуть значение через return(1);
в принтах() будет видно какие функции были вызваны, а какие уже нет
проверить можно если сделать несколько функций .....
Можно. Но всегда интересно услышать компетентное мнение )))
П.С. да и лень тоже присутствует, та, что "двигатель прогресса" говорят ))
Где-то год или два назад я лично читал от МетаКвоты сообщение, что с текущего билда IF прекращает дальнейшую проверку если не выполнено очередное условие.
Хотя возможно это касалось только МТ5, не помню.
Но с тех пор стараюсь именно по этой логике размещать проверки.
Поправьте, кто знает ТОЧНЫЙ ответ, пожалуйста.
https://www.mql5.com/ru/docs/basis/operations/bool
Это МТ5.
Вопрос был по МТ4.
В документации ничего не сказано о составных выражениях в операторе if
https://docs.mql4.com/ru/basis/operators/if
Это МТ5.
Вопрос был по МТ4.
В документации ничего не сказано о составных операторах
https://docs.mql4.com/ru/basis/operators/if
https://docs.mql4.com/ru/basis/operations/bool
О! Спасибо!
Значит я был прав по поводу переноса проверки ВремениЗакрытияОрдера на первое место в цикле.
Уважаемые коллеги!
Совсем недавно я увлекся программированием, и как у всех новичков столкнулся с проблемой правильного написания кода. А именно;
Мне необходимо задать советнику такие условия:
Если предыдущий ордер закрылся с минусом по стопу, то нужно перевернуться и открыть ордер в противоположную сторону.
Допустим предыдущий ордер был на BUY, значит если он получил стоп - то открыться на SELL.
Я так понимаю, мне необходимо сделать переборку ордеров из истории, я сделал это так:
for(int i=0, i<OrdersHistoryTotal(), i++) //создаю цикл
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true) // выбираю ордер
{
Continue; // оператор Continue продолжает цикл перебора ордеров до тех пор пока не дойдет до последнего ордера..
}
}
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true) // теперь, когда в переменную i записался номер последнего ордера
{
if(OrderProfit<0 && OrderType==OP_BUY) // Проверяю, если Прибыль выбранного ордера меньше нуля и данный ордер я вляется ордером на покупку, то..
{
ticket=OrderSend.. OP_SELL.. и так далее..
}
}
Вроде по моей логике все правильно, и компилятор ошибок в коде не выдает. Но что то не работает.
Если кому не трудно, хотя бы в кратце подскажите - что я делаю не так и как исправить код чтобы все было
У Вас цикл совсем не цикл. Вот эти две строчки не в цикле for:
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true) // теперь, когда в переменную i записался номер последнего ордера
{
if(OrderProfit<0 && OrderType==OP_BUY) // Проверяю, если Прибыль выбранного ордера меньше нуля и данный ордер я вляется ордером на покупку, то..
{
ticket=OrderSend.. OP_SELL.. и так далее..
}
}