MACD. Возможности применения

Программирование прибыли: от азов к секретам мастерства. Читайте, спрашивайте, делитесь опытом.
Бонус за сообщение 0.5$
Ответственный Модератор - Haos

MACD. Возможности применения

Сообщение Haos » 01 июн 2018, 19:16

Рассмотрим определение тренда при помощи индикатора МАСД. Для определения тренда будем использовать гистограмму этого индикатора. Если столбики гистограммы выше нулевого уровня - тренд бычий, если столбики гистограммы ниже нулевого уровня - тренд медвежий. Сигнальная линия в данном контексте не применяется.
Напишем функцию, которая будет возвращать необходимые значения. Как обычно:
UP - бычий тренд;
DN - медвежий тренд;
NO - тренд не определен;
Код: выделить все
string f_MACDTre(int tf, int pefa, int pesl, int pesi, int maap, int shi)                 
{
/*
   22.05.2018 г.
   Ф-ия определяет тренд на основе гистограммы MACD
   возвращает "UP" если тренд бычий
   возвращает "DN" если тренд медвежий
   возвращает "NO" если тренд не определен
   Параметры:
   tf    - таймфрейм (0 - текущий ТФ)
   pefa  - период быстрой МАшки
   pesl  - период медленной МАшки   
   pesi  - период сигнальной МАшки
   maap  - тип используемой цены
   shi   - количество баров назад
*/
   // значение гистограммы MACD shi баров назад:
   double dblMACD = iMACD(NULL, tf, pefa, pesl, pesi, maap, MODE_MAIN, shi);
   if(dblMACD > 0) return("UP");
   if(dblMACD < 0) return("DN"); 
   
return("NO");
}

В качестве параметров в данную функцию передаются:
tf - таймфрейм (0 - текущий ТФ)
pefa - период быстрой МАшки
pesl - период медленной МАшки
pesi - период сигнальной МАшки
maap - тип используемой цены
shi - количество баров назад
Параметры скользящей средней, имеются в виду, те, на которых рассчитывается МАCD. Параметр shi позволяет определить тренд не только на прошлом баре, но и на любом заданном.
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.

MACD. Возможности применения

Сообщение Haos » 27 июл 2018, 06:13

Теперь можно рассмотреть сигнал по пересечению гистограммой MACD нулевого уровня. Этот сигнал подобен пересечению МАшек, т.е. может быть использован для определения момента заключения сделки.
Напишем соответствующую функцию. Теперь нам понадобятся два значения гистограммы МАКДи на двух соседних барах (не обязательно на последнем закрытом и предпоследнем), что реализовано в функции. Эти два значения сравниваются относительно нулевого уровня индикатора и определяется факт наличия пересечения.
Код: выделить все
string f_MACDSyg(int tf, int pefa, int pesl, int pesi, int maap, int shi)                 
{
/*
   16.09.2016 г.
   Ф-ия определяет сигнал по пересечению гистограммы MACD нулевого уровня
   возвращает "UP" если гистограмма пересекла вверх нулевой уровень
   возвращает "DN" если гистограмма пересекла вниз нулевой уровень
   возвращает "NO" если нет пересечения
   Параметры:
   tf    - таймфрейм (0 - текущий ТФ)
   pefa  - период быстрой МАшки
   pesl  - период медленной МАшки   
   pesi  - период сигнальной МАшки
   maap  - тип используемой цены
   shi   - количество баров назад
*/
   // значение гистограммы MACD shi баров назад:
   double dblMACD_1 = iMACD(NULL, tf, pefa, pesl, pesi, maap, MODE_MAIN, shi);
   // значение гистограммы MACD shi + 1 баров назад
   double dblMACD_2 = iMACD(NULL, tf, pefa, pesl, pesi, maap, MODE_MAIN, shi + 1);
 
   if(dblMACD_1 > 0 && dblMACD_2 < 0) return("UP");
   if(dblMACD_1 < 0 && dblMACD_2 > 0) return("DN");
   
return("NO");
}

Как обычно, функция возвращает строковое значение в виде "UP", "DN" или "NO":
- возвращает "UP" если гистограмма пересекла вверх нулевой уровень;
- возвращает "DN" если гистограмма пересекла вниз нулевой уровень;
- возвращает "NO" если нет пересечения.
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.


Вернуться в MQL – теория и практика

Кто сейчас на форуме?

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 51

Права доступа к форуму

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron