Обманчивый ATR.

 

Решил поделиться наблюдениями.

Индикатор ATR определён как один из индикаторов волатильности. Чем выше его значение, тем выше волатильность за заданный период. И если есть система, построенная на пробое уровня волатильности, то этот индикатор должен, теоретически, показать области входа / невхода. При тестировании столкнулся со следующей ситуацией: ATR большой, а вход - ложный. Примеры:

Стрелки указывают не на один конкретный бар, а на область.

Свечи, вроде, высокие (расстояние между H и L), а толку мало. Цена топчется на месте. В данных примерах неважно какая рассматривается пара и на каком ТФ.

Поэтому написал простенькую функцию, дающую более реальную картину - высота "рабочей части" свечи:

//+------------------------------------------------------------------+
//| returns difference between Open and Close without sign           |
//+------------------------------------------------------------------+
double CandleHeight(int index)
  {
    if(Close[index]==Open[index])
      return (Point);
    else
      return (MathAbs(Close[index]-Open[index]));
        
  }

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

Пользуйтесь, может кому-то поможет.