Написал такой код, установил советника, но при пересечении двух мувингов не получил сигнал, подскажите в чем проблема. Прошу не пинать - осваиваю только.
== - вот это "жесть". Мягче нужно задавать условия для сравнения, а то вы вообще сигналов не дождётесь.
Написал такой код, установил советника, но при пересечении двух мувингов не получил сигнал, подскажите в чем проблема. Прошу не пинать - осваиваю только.
проблема в том, что вы не читали как правильно работать с вещественными числами https://www.mql5.com/ru/articles/1561
ну а если разберетесь, тогда наверное так: на предыдущем баре инд1 выше ли равно инд2, а на текущем баре инд1 ниже или равно инд2 ИЛИ на предыдущем баре инд1 ниже ли равно инд2, а на текущем баре инд1 выше или равно инд2 --> было пересечение линий
наверноекактотак :)
Написал такой код, установил советника, но при пересечении двух мувингов не получил сигнал, подскажите в чем проблема. Прошу не пинать - осваиваю только.
Условие задано не верно. Вы работаетет со значениями на нулевой свече. Ситуация: Цены равны, советник решил, что пересечение есть, открыл позу. На следующем тике ситуация изменилась и равенство цен исчезло. А поза-то открыта. Это всё закончится тем, что Вы будут смотреть на историю своих торгов и недоумевать, почему же советник пооткрывал ордера, если пересечение отсутствует?
Попробуйте получить значения скользящих на второй свече и на первой. Если на второй свече первая скользящая менее или равна второй скользящей и при этом если на первой свече первая скользящая больше второй, то произошло пересечение - скользящая первая пересекла вторую снизу вверх. Для большинства скользящих это сработает. Если копать глубже, то тут на форуме есть целая статья о том, как обрабатывать показания скользящих.
Вот пример, открытие совпадает с историей, только к сожалению профита это не принесет ...
Спасибо за науку. Разбираюсь только, вот и первая проблема.
Но только либо не дочитал, либо не понял. Изменил код, но также нет сигнала
MA_TB_13 = iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,0); //текущий бар MA_TB_50 = iMA(NULL,0,50,0,MODE_EMA,PRICE_CLOSE,0); //текущий бар MA_PB_13 = iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,1); //предыдущий бар MA_PB_50 = iMA(NULL,0,50,0,MODE_EMA,PRICE_CLOSE,1); //предыдущий бар if ((( MA_TB_13 <= MA_TB_50 ) && (MA_PB_13 >= MA_PB_50)) || (( MA_TB_13 >= MA_TB_50 ) && (MA_PB_13 <= MA_PB_50))) Alert(Symbol() + " " + "Есть касание или пересечение");
КАК получить сигнал пересечения двух МА?
КАК проверить пересечение МА с учетом требуемого расхождения?
Ребята, почаще заглядывайте в эту ветку, она придумана специально для вас!
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Написал такой код, установил советника, но при пересечении двух мувингов не получил сигнал, подскажите в чем проблема. Прошу не пинать - осваиваю только.