Привет, Сэмюэль,
Я тестировал ваш индикатор, и оказалось, что настройка периода работает в обратную сторону.
Я использовал индикатор МакГинли в формате .mq4, и настройка периода ведет себя так же, как и для MA, чем больше число, тем более плоской становится кривая.
При таком подходе правило 60% не может быть применено.
MT5 Build 1795
Есть отличие от оригинальной формулы.
Вы:
MDBuffer[i]=MDBuffer[i-1]+(close[i]-MDBuffer[i-1])/(MD_smooth*(close[i]/MDBuffer[i-1]));
Макгинли:
MDBuffer[i]=MDBuffer[i-1]+(close[i]-MDBuffer[i-1])/(0.6* MD_smooth*MathPow( close[i]/MDBuffer[i-1],4));
Есть отличие от оригинальной формулы.
Вы:
Макгинли:
следует ли нам изменить код на тот, который вы показали как "McGinley"?
Нужно ли изменить код на тот, который вы указали как "McGinley"?
Есть отличие от оригинальной формулы.
Вы:
Макгинли:
Кажется, я вижу ошибку или недосмотр, похоже, что формула была взята из:
https://www.investopedia.com/terms/m/mcginley-dynamic.asp.
В ней есть ошибка, в которой отсутствует константа 0.6, а автор индикатора пропустил мощность 4.
Правильная формула, которую процитировал lippmaje, находится в:
https://www.investopedia.com/articles/forex/09/mcginley-dynamic-indicator.asp
Поэтому, если вы хотите получить индикатор McGinley Dynamic в том виде, в котором он был задуман МакГинли, я бы исправил его так, как советует
- www.investopedia.com
if(useImprovedFormula) { mcg[i] = ma[i+1]+(price-ma[i+1])/MathMin(McgPeriod,MathMax(1,(McgConstant*McgPeriod*MathPow(price/ma[i+1],4)))); //Improved } else { mcg[i] = ma[i+1]+(price-ma[i+1])/(McgConstant*McgPeriod*MathPow(price/ma[i+1],4)); //Original }Вот пример кода mql4 для оригинальной старой формулы Макгили и улучшенной версии той же формулы.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования

McGinley Dynamic Indicator:
McGinley Dynamic Indicator был разработан Джоном МакГинли и описан в журнале "Journal Of Technical Analysis" Ассоциации аналитиков рынка в 1991 году. Цель этого индикатора — устранить недостатки, найденные у обычных скользящих средних: например, гэпы и "пилу". Результат — индикатор, который следует за средней ценой инструмента и адаптируется к текущей скорости рынка.
Автор: Samuel Williams