Несоответствие расчетных и графических данных индикатора ADX (MT4, build 221).

 

Добрый день!

Никак не могу обнаружить причину расхождения расчетных и графических данных индикатора ADX. Расчетные данные получены в МТ4 build 221 по формуле

TodayDIPlus=iADX(NULL,0,14,PRICE_CLOSE,MODE_PLUSDI,0);
TodayDIMinus=iADX(NULL,0,14,PRICE_CLOSE,MODE_MINUSDI,0);
TodayADX=iADX(NULL,0,14,PRICE_CLOSE,MODE_MAIN,0);

Print(" TodayDIPlus="+TodayDIPlus+" TodayDIMinus="+TodayDIMinus+" ADX="+TodayADX);


Соответствие ADX нашел на максимумах, примерно каждые 7 дней, причем D+ cходится с графиком первые три дня, D- остальные 3 дня.

В чем может быть проблема?



 

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

Добро пожаловать на www.mql4.com

 

To Slawa

Не подскажете как изменить индикатор ADX, чтобы он считал на сформировавшихся барах и результаты бы совпадали?

Спасибо!

 

Почитайте статью Strategy Tester: режимы моделирования при тестировании торговых стратегий и остальные из раздела Тестер

По ценам открытия

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



В этом режиме сначала моделируется открытие бара (Open = High = Low = Close, Volume=1), что дает возможность эксперту точно идентифицировать окончание формирования предыдущего ценового бара. Именно на этом зарождающемся баре запускается тестирование эксперта. На следующем шаге выдается уже полностью сформированный текущий бар, но на нем тестирование не производится!

То есть. перепишите так:

TodayDIPlus=iADX(NULL,0,14,PRICE_CLOSE,MODE_PLUSDI,1);

TodayDIMinus=iADX(NULL,0,14,PRICE_CLOSE,MODE_MINUSDI,1);

TodayADX=iADX(NULL,0,14,PRICE_CLOSE,MODE_MAIN,1);