Индикатор ADX. Куда делся тип цены в Метатрейдере 5 и можно ли его вернуть?

 

Вопрос к разработчикам Метатрейдер 5.

Индикатор ADX. Куда делся тип цены в Метатрейдере 5 и можно ли его вернуть?


 
Fedor Arkhipov:

Вопрос к разработчикам Метатрейдер 5.

Индикатор ADX. Куда делся тип цены в Метатрейдере 5 и можно ли его вернуть?


Последний раз, когда я об этом спрашивал, получил бан. Ответа так и не дали.

 
Stanislav Korotky:

Последний раз, когда я об этом спрашивал, получил бан. Ответа так и не дали.

Ответ был дан в этой же ветке несколькими страницами ранее https://www.mql5.com/ru/forum/222557/page31#comment_6248803

2) ADX вычисляется на основе +DI, -DI, которые в свою очередь фиксированны по логике вычислений (high, low, close) и не имеют возможности выбирать от чего считать.

В поставке MetaTrader 5 есть полный исходный код ADX в MQL5\Indicators\Examples\ADX.mq5

 
Slava:

Ответ был дан в этой же ветке несколькими страницами ранее https://www.mql5.com/ru/forum/222557/page31#comment_6248803

Ответа на вопрос там нет. Там предложено смотреть MQL5 код, что некорректно.

Переформулирую вопрос, потому что его смысл, видимо, ускользает:

Каким образом ADX считается в MT4 с возможностью выбора типа цены?

В те давние времена стояла (и, как выясняется, может быть для кого-то и сейчас актуальна) задача добиться одинакового расчета ADX в MT4 и MT5.

Раз в МТ5 было решено тип цены удалить, то хотя бы приведите MQL4-код аналогичный расчету ADX в MT4 (вот есть такой вариант, но он очевидно не соответствует встроенному индикатору, потому что тоже не имеет типа цены), чтобы заинтересованные люди могли реализовать ADX с выбором типа цены на MQL5. Я себе сделал, но у меня нет гарантии, что получилось полное соответствие.

Average Directional Movement Index, ADX
Average Directional Movement Index, ADX
  • www.mql5.com
Average Directional Movement Index Technical Indicator (ADX) helps to determine if there is a price trend. It was developed and described in detail by Welles Wilder in his book "New concepts in technical trading systems". The simplest trading method based on the system of directional movement implies comparison of two direction indicators: the...
 
Stanislav Korotky:

Ответа на вопрос там нет. Там предложено смотреть MQL5 код, что некорректно.

Ещё раз

ADX вычисляется на основе +DI, -DI, которые в свою очередь фиксированны по логике вычислений (high, low, close) и не имеют возможности выбирать от чего считать.

Average Directional Movement Index - Трендовые индикаторы - Справка по MetaTrader 5
Average Directional Movement Index - Трендовые индикаторы - Справка по MetaTrader 5
  • www.metatrader5.com
Технический индикатор Индекс Среднего Направления Движения (Average Directional Movement Index, ADX) помогает определить наличие ценовой тенденции. Он построен на подходах, описанных в книге "Новые концепции технических торговых систем" Уэллса Уайлдера. Простейший метод торговли на основе системы направленного движения предполагает сравнение...
 
Slava:

Ещё раз

В МТ4 не убрали, просто потому что он заморожен?

 
Slava:

Ещё раз

Что "еще раз"? Вы не ответили на вопрос ещё раз.

В МТ4 был выбор типа цены. Повторю вопрос: как тип цены участвовал в вычислениях именно там?

Цитирование одной и той же фразы про +-DI, которая не имеет прямого отношения к вопросу, как минимум странно.

 

Вопрос был: "Индикатор ADX. Куда делся тип цены в Метатрейдере 5 и можно ли его вернуть?"

Вы прокомментировали: "Последний раз, когда я это спрашивал...". То есть, вопрос остался прежним.

Ответ именно на этот вопрос не изменился

ADX вычисляется на основе +DI, -DI, которые в свою очередь фиксированны по логике вычислений (high, low, close) и не имеют возможности выбирать от чего считать.

Вы не повторяете вопрос, а задёте новый: "как тип цены участвовал именно там?". То есть, вопрос уже про четвёрку.

   while(i>=0)
     {
      price_low=low[i];
      price_high=high[i];
      //----
      pdm=price_high-high[i+1];
      mdm=low[i+1]-price_low;
      if(pdm<0) pdm=0;  // +DM
      if(mdm<0) mdm=0;  // -DM
      if(pdm==mdm) { pdm=0; mdm=0; }
      else if(pdm<mdm) pdm=0;
           else if(mdm<pdm) mdm=0;
      //---- вычисляем истинный интервал
      double num1=MathAbs(price_high-price_low);
      double num2=MathAbs(price_high-close[i+1]);
      double num3=MathAbs(price_low-close[i+1]);
      tr=MathMax(num1,num2);
      tr=MathMax(tr,num3);
      //---- counting plus/minus direction
      if(tr==0) { PlusSdiBuffer[i]=0; MinusSdiBuffer[i]=0; }
      else      { PlusSdiBuffer[i]=100.0*pdm/tr; MinusSdiBuffer[i]=100.0*mdm/tr; }
      //----
      i--;
     }


Исходник отсюда https://www.mql5.com/ru/code/7955

Я отметил фоном место, где подставлялась соответствующая цена

Average Directional Movement Index - Трендовые индикаторы - Справка по MetaTrader 5
Average Directional Movement Index - Трендовые индикаторы - Справка по MetaTrader 5
  • www.metatrader5.com
Технический индикатор Индекс Среднего Направления Движения (Average Directional Movement Index, ADX) помогает определить наличие ценовой тенденции. Он построен на подходах, описанных в книге "Новые концепции технических торговых систем" Уэллса Уайлдера. Простейший метод торговли на основе системы направленного движения предполагает сравнение...
 
Slava:

Вопрос был: "Индикатор ADX. Куда делся тип цены в Метатрейдере 5 и можно ли его вернуть?"

Вопросы (старый и новый) об одном и том же: как получить расчет ADX с учетом типа цены в MT5. Понятно, что MQ не будет его добавлять в штатный индикатор и потому людям нужна реализация на MQL.

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

Сейчас, наконец, получен практический ответ с помеченным исходником, спасибо. Этот официальный ответ гарантирует интероперабельность ADX между МТ4 и МТ5.

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