Примеры: Консультант-советник трейдера на основе расширенного анализа MACD

 

New article Консультант-советник трейдера на основе расширенного анализа MACD has been published:

Скрипт консультант-советник трейдера по принятию решения об открытии позиций на основании расширенного анализа состояния MACD по трем последним барам в реальном времени торгов на любом периоде, и для проведения анализа на истории.

Одним из лучших признанных индикаторов направления движения цены является гистограмма MACD. По рекомендациям доктора А.Элдера тенденция направления движения цены (тренд) определяется двумя последними барами на соответствующем периоде. Однако по двум барам кроме направления движения ничего другого практически сказать нельзя. Конечно, опытный трейдер по внешнему виду гистограммы может представить себе несколько больше, опираясь на интуицию. А если для анализа взять три последних бара, то качество и количество информации значительно расширятся.

Алгоритм скрипта основан на сравнении разностей приростов нулевого, первого и второго баров гистограммы MACD. Например: если величина разности между значениями текущего и предыдущего бара больше величины разности между значениями предыдущего и предпредыдущего баров, то тренд, (или тенденция) - растущая и с положительным ускорением, если разность меньше, то тренд замедляет скорость своего роста (тренд затухающий) и нужно думать о закрытии длинной позиции.

Немного о самом скрипте:

Скрипт можно использовать, по меньшей мере, в двух направлениях.

Первое - использование как советника-консультанта во время торговли для определения момента входа в рынок и выхода из него, а так же для определения объема сделки (лота) в зависимости от положения, направления и положительного или отрицательного ускорения прироста объема гистограммы.

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

В скрипте анализируются основные значимые возможные переходные состояния (ситуации). Например:

Author: Genkov

 

Это, по-сути, анализ первой производной MACD. На росте скорости входим, на торможении выходим.

 
код вида:
if(r1>r2) 
     {
     Alert("На ",a," баре MACD<0 = ",Macd_h1_a,
           "  Тренд идет вниз \\\'с ускорением");
     }
    if(r1<r2) 
     {
     Alert("На ",a," баре MACD<0 = ",Macd_h1_a,
           "  Тренд идет вниз \^с замедлением");
     }
    if((r1==r2)||MathAbs(r1-r2)<0.000015)
     {
     Alert("На ",a," баре MACD<0 = ",Macd_h1_a,
           "  Тренд идет вниз равноускоренно");
     }
лучше оформлять как:
if((r1==r2)||MathAbs(r1-r2)<0.000015)
 {
 Alert("На ",a," баре MACD<0 = ",Macd_h1_a,
           "  Тренд идет вниз равноускоренно");
 }
else
  if(r1>r2) 
    {
     Alert("На ",a," баре MACD<0 = ",Macd_h1_a,
           "  Тренд идет вниз \\\'с ускорением");
    }
  else
    if(r1<r2) 
     {
     Alert("На ",a," баре MACD<0 = ",Macd_h1_a,
           "  Тренд идет вниз \^с замедлением");
     }
Таким образом вы избежите вывод сначала сообщения "... с ускорением" и тут же "равноускоренно".
 
johngull:
код вида:
if(r1>r2) 
     {
     Alert("На ",a," баре MACD<0 = ",Macd_h1_a,
           "  Тренд идет вниз \\\'с ускорением");
     }
    if(r1<r2) 
     {
     Alert("На ",a," баре MACD<0 = ",Macd_h1_a,
           "  Тренд идет вниз \^с замедлением");
     }
    if((r1==r2)||MathAbs(r1-r2)<0.000015)
     {
     Alert("На ",a," баре MACD<0 = ",Macd_h1_a,
           "  Тренд идет вниз равноускоренно");
     }
лучше оформлять как:
if((r1==r2)||MathAbs(r1-r2)<0.000015)
 {
 Alert("На ",a," баре MACD<0 = ",Macd_h1_a,
           "  Тренд идет вниз равноускоренно");
 }
else
  if(r1>r2) 
    {
     Alert("На ",a," баре MACD<0 = ",Macd_h1_a,
           "  Тренд идет вниз \\\'с ускорением");
    }
  else
    if(r1<r2) 
     {
     Alert("На ",a," баре MACD<0 = ",Macd_h1_a,
           "  Тренд идет вниз \^с замедлением");
     }
Таким образом вы избежите вывод сначала сообщения "... с ускорением" и тут же "равноускоренно".
Спасибо. Вы правы. Предложенный Вами вариант лучше.
 

Спасибо за работу, возможно кому то будет польза.

А нельзя ли сделать так - в момент когда происходит разворот тренда раздаётся звуковой сигнал, и я - лежащий на диване просыпаюсь.

 
YuriF:

Спасибо за работу, возможно кому то будет польза.

А нельзя ли сделать так - в момент когда происходит разворот тренда раздаётся звуковой сигнал, и я - лежащий на диване просыпаюсь.

      Спасибо за спасибо! А в связи с тем, что в MQL4 есть ограничения в частности: цитата • Скрипт (Script) - программа, предназначенная для одноразового выполнения каких-либо действий. В отличие от экспертов, скрипты запускаются не потиково, а по запросу, и потому будильник из этого не получиться! Для выполнения Вашего желания нужна другая программа. Если есть вопросы как? и т.д. прошу на мыло genkov@br.ru.  
 

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

Дело в том, что доктор А.Элдер под гистограммой-MACD подразумевает разницу между быстрой (отражаемой, как правило, в форме гистограммы) и сигнальной линиями. Такм образом, вместо вызова iMACD следует вызывать iOsMA.

Увы, это очень важно, но нисколько не уменьшает значимость и полезность Вашей работы.

Спасибо.

 
ArtemRG:

Это, по-сути, анализ первой производной MACD. На росте скорости входим, на торможении выходим.


Нет, не так!

Во-первых, этот (по сути) индикатор не предназначен для принятия решений типа "входим/выходим". Его предназначение - торможение, то есть предотвращение неправильного входа в рынок или преждевременного выхода. Он показывает основной тренд и дает оценку скорости смены тенденции.
Если Вы, например, работаете на M15, то установленный индикатор на на H1, будет показывать основной, не побоюсь этого слова, глобальный тренд рынка. Самое простое - не вываливайтесть против этого тренда! Хотя есть и более изощренные варианты, кстати, хорошо изложенные доктором А.Элдером.

Во-вторых, как я уже писал автору, это должен быть не анализ первой производной MACD, а анализ первой производной разности быстрой (отражаемой на графике MACD гистограммой) и сигнальной линиями. Эта разность, как правило, опережающий индикатор. Вход и выход по рынку делают на основании MACD (если упрощенно, без точных условий) в моменты пересечения линий, то есть в моменты, когда их разность нулевая, а производная разности в максимуме или близка к нему.

Автор большой молодец. Действительно, его работа позаволяет убрать до 80% неверных выходов. При правильном применении этот скрипт сохранит много денег малоопытных трейдеров.

 
А может было бы полезнее оформить его в качестве индикатора?
 
BluesBoy:

Во-вторых, как я уже писал автору, это должен быть не анализ первой производной MACD, а анализ первой производной разности быстрой (отражаемой на графике MACD гистограммой) и сигнальной линиями. Эта разность, как правило, опережающий индикатор. 


Скорее всего, автор имел в виду именно iMA, но согласен с замечанием - лучше использовать iOsMA. Обратите внимание, кто хочет его использовать.
Причина обращения: