Ответ был дан в этой же ветке несколькими страницами ранее 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
Ответ был дан в этой же ветке несколькими страницами ранее https://www.mql5.com/ru/forum/222557/page31#comment_6248803
Ответа на вопрос там нет. Там предложено смотреть MQL5 код, что некорректно.
Переформулирую вопрос, потому что его смысл, видимо, ускользает:
Каким образом ADX считается в MT4 с возможностью выбора типа цены?
В те давние времена стояла (и, как выясняется, может быть для кого-то и сейчас актуальна) задача добиться одинакового расчета ADX в MT4 и MT5.
Раз в МТ5 было решено тип цены удалить, то хотя бы приведите MQL4-код аналогичный расчету ADX в MT4 (вот есть такой вариант, но он очевидно не соответствует встроенному индикатору, потому что тоже не имеет типа цены), чтобы заинтересованные люди могли реализовать ADX с выбором типа цены на MQL5. Я себе сделал, но у меня нет гарантии, что получилось полное соответствие.
- www.mql5.com
Ответа на вопрос там нет. Там предложено смотреть MQL5 код, что некорректно.
Ещё раз
ADX вычисляется на основе +DI, -DI, которые в свою очередь фиксированны по логике вычислений (high, low, close) и не имеют возможности выбирать от чего считать.
- www.metatrader5.com
Ещё раз
В МТ4 не убрали, просто потому что он заморожен?
Ещё раз
Что "еще раз"? Вы не ответили на вопрос ещё раз.
В МТ4 был выбор типа цены. Повторю вопрос: как тип цены участвовал в вычислениях именно там?
Цитирование одной и той же фразы про +-DI, которая не имеет прямого отношения к вопросу, как минимум странно.
Вопрос был: "Индикатор ADX. Куда делся тип цены в Метатрейдере 5 и можно ли его вернуть?"
Вы прокомментировали: "Последний раз, когда я это спрашивал...". То есть, вопрос остался прежним.
Ответ именно на этот вопрос не изменился
ADX вычисляется на основе +DI, -DI, которые в свою очередь фиксированны по логике вычислений (high, low, close) и не имеют возможности выбирать от чего считать.
Вы не повторяете вопрос, а задёте новый: "как тип цены участвовал именно там?". То есть, вопрос уже про четвёрку.
{
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
Я отметил фоном место, где подставлялась соответствующая цена
- www.metatrader5.com
Вопрос был: "Индикатор ADX. Куда делся тип цены в Метатрейдере 5 и можно ли его вернуть?"
Вопросы (старый и новый) об одном и том же: как получить расчет ADX с учетом типа цены в MT5. Понятно, что MQ не будет его добавлять в штатный индикатор и потому людям нужна реализация на MQL.
То, что вопрос перефразирован мной в терминах исходника MQL4, вызвано тем, что по каким-то причинам прежняя формулировка приводила к цитированию фрагмента документации, который никак не связан с типом цены в алгоритме.
Сейчас, наконец, получен практический ответ с помеченным исходником, спасибо. Этот официальный ответ гарантирует интероперабельность ADX между МТ4 и МТ5.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Вопрос к разработчикам Метатрейдер 5.
Индикатор ADX. Куда делся тип цены в Метатрейдере 5 и можно ли его вернуть?