Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 767

 
Ghabo:

Спасибо. Помогите получить сигнал. В индикаторе 3 буфера нулевой всегд заполнен, цвет чёрный, первый буфер синий, второй красный. нужен сигнал когда нет чёрной линии, она всегда при смене цвета. Понимаю, скачивать, устанавливать, трудоёмко, но очень интересно как так сделано, а кода нет.

Получаете данные цветных буферов, черный буфер не трогаете.

Проверить данные буферов легко

Если синий буфер не равен EMPTY_VALUE значит сейчас рисуется он соответственно красный буфер будет равен EMPTY_VALUE

и на оборот...

 
Vladimir Pastushak:

Получаете данные цветных буферов...

Это и делаю, однако нужно получить сигнал когда нет чёрной линии. Визуально, линия появляется на стыке красного и синего, а по факту буфер с чёрным цветом всегда заполнен. Заполнены одновременно 2 буфера всегда, либо 0 и 1 цвет синий, либо 0 и 2 цвет красный, но бывает заполнен 0 и 1 или 0 и 2 а цвет с..ка чёрный. Вот этот момент  и хочу отловить, чтобы исключить сигнал в это время.

длшг

 
Ghabo:

Это и делаю, однако нужно получить сигнал когда нет чёрной линии. Визуально, линия появляется на стыке красного и синего, а по факту буфер с чёрным цветом всегда заполнен. Заполнены одновременно 2 буфера всегда, либо 0 и 1 цвет синий, либо 0 и 2 цвет красный, но бывает заполнен 0 и 1 или 0 и 2 а цвет с..ка чёрный. Вот этот момент  и хочу отловить, чтобы исключить сигнал в это время.


Я Вам дал ответ, проверяйте буферы цветные на наличие значений...

 
Vladimir Pastushak:

Я Вам дал ответ, проверяйте буферы цветные на наличие значений...

Возможно я непонятно излагаю. При одинаковых значениях буферов, на графике может быть разный цвет линии. То есть, первый буфер не пустой - цвет синий, но иногда первый буфер не пустой - цвет чёрный.

 
Ghabo:

Возможно я непонятно излагаю. При одинаковых значениях буферов, на графике может быть разный цвет линии. То есть, первый буфер не пустой - цвет синий, но иногда первый буфер не пустой - цвет чёрный.

черный цвет это нет цвета.

Отталкивайтесь и работайте с цветными буферами...

 
Vladimir Pastushak:

черный цвет это нет цвета.

Нет цвета это clrNONE, а в индикаторе явно clrBlack

Как ещё, кроме чем так?

BUY_1=NormalizeDouble(iCustom(NULL,0,"4X Pip Snager Trend",1,1),Digits);//СИНИЙ
if(BUY_1!=EMPTY_VALUE)
{
//ДЕЙСТВИЕ
}
Vladimir Pastushak:

Отталкивайтесь и работайте с цветными буферами...

 
Vladimir Pastushak:

черный цвет это нет цвета.

Отталкивайтесь и работайте с цветными буферами...

Раньше было - черный по умолчанию. Сейчас, если не указать цвет, то индикатор невидим. 

 
Ghabo:

Спасибо. Помогите получить сигнал. В индикаторе 3 буфера, нулевой всегда заполнен, цвет чёрный, первый буфер синий, второй красный. нужен сигнал когда нет чёрной линии, она всегда при смене цвета. Понимаю, скачивать, устанавливать, трудоёмко, но очень интересно как так сделано, а кода нет.

Действительно странно написанный индикатор...

Обрати внимание на пересечение ценой линии индикатора. Я поставил вместо чёрного None


Получается если цена пробивает линию индикатора снизу вверх, красный меняется на синий и наоборот. А вот два крайних варианта, когда два и четыре пересечения подряд... тут засада.

Но если напрячь мышцы головы, то можно сочинить условия использования этой головоломки.

В любом случае надо понимать, что линия рисуется от бара до бара. Если взять к примеру средний разрыв, то получается что зелёный бар пересекая линию отменяет заполнение красного буфера и цвет пропадает. Затем на следующем баре заполняется синий буфер и отображение идёт от того бара который пересёк цену до текущего бара.

 
Alexey Viktorov:

Действительно странно написанный индикатор...

Спасибо. Моих мышцаф не хватает) Зафиксировать момент изменение цвета красного на синий не сложно, но как узнать, что в это время, синяя линия накрыта чёрной, не представляю. Какое условие нужно добавить к этому:-

        BUY_1=NormalizeDouble(iCustom(NULL,0,"4X Pip Snager Trend",1,1),Digits);
        if(iOpen(Symbol(), 0, 1)<=BUY_1&&iClose(Symbol(), 0,1)>BUY_1)
          {
        // ДЕЙСТВИЕ
          }

чтобы исключить сигнал при пересечении баром чёрной линии? На вашем скриншоте считать последнее пересечение вверх, а пересечение предыдущих трёх баров не считать.

 
Ghabo:

Спасибо. Моих мышцаф не хватает) Зафиксировать момент изменение цвета красного на синий не сложно, но как узнать, что в это время, синяя линия накрыта чёрной, не представляю. Какое условие нужно добавить к этому:-

чтобы исключить сигнал при пересечении баром чёрной линии? На вашем скриншоте считать последнее пересечение вверх, а пересечение предыдущих трёх баров не считать.

Синие и красные линии тут только для красоты. И чёрной линией они вряд-ли накрываются. Наоборот, чёрную накрывают то синяя, то красная.

Линия рисуется от значения предыдущего бара до значения текущего бара. А если на одном из этих баров нет значения в буфере индикатора, то и линию провести невозможно.

На мой взгляд этого кода достаточно чтобы определить факт, что красный буфер "потух". Но если есть желание, то прочтите ещё и синий буфер. Там обязательно будет значение равное значению чёрного буфера.

Вот для среднего случая на моём снимке, понятно что цвет изменился. А для первого, левого... пересечение снизу вверх, следующий бар - пересечение сверху вниз и опять красный буфер продолжает заполняться и отображаться. В последнем случае пересечение идёт аж 4 раза туда-сюда.

Для полной уверенности погоняй в тестере и понаблюдай момент "потухания", на закрытии свечи или в момент касания линии ценой идёт "выключение" цвета.

Причина обращения: