Как прописать условия подачи алерта?

 
В готовый советник не могу прописать условия алерта. Оно одно - равенство Демаркера на двух парах
Файлы:
GbpChf.mq5  7 kb
 
Vladimir Baskakov:
В готовый советник не могу прописать условия алерта. Оно одно - равенство Демаркера на двух парах

Ну что за народ воровитый пошёл? Ну взял ты чужой код - зачем авторство затирать?

 
Vladimir Karputov:

Ну что за народ воровитый пошёл? Ну взял ты чужой код - зачем авторство затирать?

Я не стирал, просто копировал для других пар, и так получилось

 
Vladimir Baskakov:

Я не стирал, просто копировал для других пар, и так получилось

А, ну тогда ладно  :)

 
Vladimir Karputov:

А, ну тогда ладно  :)

Вообще вещь конечно! Все видно на одном листе, я даже те пары убрал, они не нужны. Изменил только период. И уже заработал. Спасибо. Был бы алерт, вообще можно спать

 

В OnTick() в конце:

   // NEW
   if (ArraySize(array_dem_1) > 0 && ArraySize(array_dem_2) > 0)
   {
      const int digits_deMark = 3; // разрядность Де Марка
      const double error_value = MathPow(10,-digits_deMark); // максимальная погрешность
      const double value = NormalizeDouble(MathAbs(array_dem_1[0] - array_dem_2[0]), digits_deMark); // разность ДеМарков
      
      if (value < error_value)
         Alert("DeMarker_1 = DeMarker_2");
   }
   //////

По сути, значение двух чисел типа double нужно сравнивать только с определенной точностью, для этого вводится "разрядность де марка", и относительно этой точности считается погрешность и смотрим, чтобы модуль разницы этих чисел был меньше чем допустимая погрешность

 
Vladimir Baskakov:

'if' - expressions are not allowed on a global scope EurChf.mq5 113 4


Все получилось. Круто!