Алерты TMA

Технарь

Новичок форума
Всем привет!
Изучая ТС Коперник и кластерные ТС я столкнулся с тем, что индикатор TMA периодически сыпет алерты, двже если они в параметрах выключены (false).
В темах по ТС я так же видел жалобы на такую проблему.

Посмотрел код индикатора, обнаружил там следующее:
PHP:
      buffer1[i] = iCustom(NULL,timeFrame,indicatorFileName,"calculateTma",HalfLength,Price,ATRMultiplier,ATRPeriod,0,y);
Индикатор вызывает сам себя с текущими параметрами HalfLength,Price,ATRMultiplier,ATRPeriod.

Но у этого индикатора параметрами также являются настройки интерполяции и алертов. Так вот, при таком вызове, они берутся по-умолчанию, т.е. те, что прописаны в коде. А в коде по-умолчанию прописано:
PHP:
extern bool   alertsOn        = true;

Таким образом, даже если мы настроим в свойствах индикатора alertsOn=false, он все равно внутри будет делать вызовы с значением по-умолчанию (а оно true)

Решения два:
1. изменить в коде значения по-умолчанию на false.
2. Более грамотный вариант, передавать текущие настройки алертов при внутренних вызовах:
PHP:
      buffer1[i] = iCustom(NULL,timeFrame,indicatorFileName,"calculateTma",HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,alertsOn,alertsOnCurrent,alertsOnHighLow,alertsMessage,alertsSound,alertsEmail, 0,y);

Прилагаю исправленный индикатор

Я протестировал, алерты прекратились. Если кому интересно - прошу скачать, потестировать и прокомментировать
 

Вложения

  • TMA-tech.mq4
    8,8 КБ · Просмотры: 174
Последнее редактирование модератором:
Верх