Вопросы от начинающих MQL4 MT4 MetaTrader 4 - страница 114
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добрый день ! Как можно создать триггер ? К примеру мне нужно это условие if(iClose(NULL,HTF,4)<BlueLine) если оно выполняется DayDown = 1! Вопрос: Как DayDown оставить в состоянии 1 и не опрашивать до следующего дня?
у меня к 1 объекту привязаны другие, и при удалении этого объекта, остальные просто висят на графике
У меня вышло так:
if(DayNext!= Day()) // Если новый день - нужно опросить
{
// Опрос
if(iClose(NULL,1440,2)<BlueLine)
if(iOpen(NULL,1440,1)<BlueLine && iClose(NULL,HTF,1)>BlueLine)
PROBOI1 = 1;Print("Закрылись Выше BlueLine = ",iClose(NULL,HTF,1));
if(iClose(NULL,1440,2)>RedLine)
if(iOpen(NULL,1440,1)>RedLine && iClose(NULL,HTF,1)<RedLine)
PROBOI1 = -1;Print("Закрылись ниже RedLine = ",iClose(NULL,HTF,1));
DayNext = Day(); // Запомнить день
}
Поправите если что то не так! Далее если я хочу отслеживать что происходит сейчас на младшем ТФ мне нужно писать за пределами Опроса Day? Верно - STARIJ:
if(iClose(NULL,60,1)>RedLine&&iClose(NULL,1440,2)>RedLine) ) Sell = 1
https://www.mql5.com/ru/forum/226620#comment_6481536
Для условия 1 выставляйте идентификатор magic number +1, для условия 2 magic number +2 и так далее. Таким образом потом можно понять, что эта позиция была открыта по условию 1 или по условию 2 ...
Добрый день. Получилось только для одной позиции БАЙ. Выставленный для СЕЛЛ магик не работает почему-то. Всё абсолютно идентично, за исключением самого магика конечно. Что я сделал не так?
Что я сделал не так?
извиняюсь, за то что не нашел начало переписки, но хотел бы сразу посоветовать избегать сложных условий и вычислений в них - это делает код нечитаемым и как следствие усложняет поиск логических ошибок, я бы Ваш код вот так записал бы:
если поняли о чем идет речь, то Вы можете приведенный мной код еще немного доработать, я про вынос в отдельное условие if(OrderType()==OP_BUY....
затем будет намного проще найти логические ошибки, имхо
извиняюсь, за то что не нашел начало переписки, но хотел бы сразу посоветовать избегать сложных условий и вычислений в них - это делает код нечитаемым и как следствие усложняет поиск логических ошибок, я бы Ваш код вот так записал бы:
если поняли о чем идет речь, то Вы можете приведенный мной код еще немного доработать, я про вынос в отдельное условие if(OrderType()==OP_BUY....
затем будет намного проще найти логические ошибки, имхо
Понял, спасибо, но, насколько я понимаю, для понимания кода платформой разницы нет, а для меня наоборот, дробление одного условия на несколько коротких кажется более сложным в поиске ошибок, т.к. увеличивается число вхождений операторов друг в друга. Но может вы и правы и я вскоре перейду на вашу сторону. Касательно логики кода - я не нашел разницы между моим и вашим и так и не вижу ошибки.
Касательно логики кода - я не нашел разницы между моим и вашим и так и не вижу ошибки.
именно так и есть - логика кода одинакова, просто если дробить условия, то быстрее находишь где логическая ошибка , ну и в Вашем случае, если вынести:
в отдельное условие, получим оптимизацию кода - условие будет проверенно один раз, а не 4 раза как в Вашем примере.
Оформите вывод в журнал экспертов через
Print()
для записи логов, чтобы видеть какой участок кода выполнен и с какими параметрами
Парни,
как считать показания индикатора Morning Flat в коде эксперта?
Пробую так и не получается.
Сам индикатор