Сегодня мы рассмотрим индикатор MACD. Узнаем историю создания индикатора и то, как он рассчитывается.
Также к данной статье будут прикреплены готовые скрипты роботов на этом индикаторе с возможностью торговать на нашей платформе OsEngine.
Оглавление
1. История создания индикатора.
2. Как проводятся расчеты индикатора MACD.
3. Какие сигналы может подавать индикатор.
4. Роботы для OsEngine на индикаторе MACD.
4.1. Стратегия основанная на дивергенции индикатора MACD.
4.2. Стратегия с индикатором MACD, Ema и Rsi.
4.3. Стратегия основанная на индикаторах ADX и MACD.
4.4. Стратегия с MACD и четыре индикатора Ema.
4.5. Стратегия с MACD и индикатор Ema.
5. Итоговая таблица результатов.
1. История создания индикатора MACD.
Индикатор MACD был разработан Геральдом Аппелем в 1979 году. Аппель решил создать индикатор, который бы отражал ситуацию на рынке быстрее, чем тогда популярные индикаторы, такие как скользящие средние. Он начал экспериментировать с различными комбинациями скользящих средних и определил, что пересечение двух скользящих средних с разными периодами может сигнализировать об изменении тренда.
Он использовал 12-дневную и 26-дневную скользящие средние для расчета индикатора MACD. И также добавил 9-дневную экспоненциальную скользящую среднюю в качестве сигнальной линии. Это позволяло отслеживать различные периоды времени и сглаживать сигналы.
Индикатор MACD отображается на графике в виде гистограммы и сигнальной линии.
Индикатор MACD стал популярным среди трейдеров и был быстро внедрен в технический анализ. Его простота и универсальность позволяют использовать его на различных финансовых инструментах и временных интервалах.
2. Как проводятся расчеты индикатора MACD.
Индикатор MACD вычисляется следующим образом:
1. Расчет основной линии или линии MACD.
MacdLine = EmaFast – EmaSlow
где
- EmaFast – экспоненциальная скользящая средняя с меньшим периодом,
- EmaSlow — экспоненциальная скользящая средняя с большим периодом.
2. Расчет сигнальной линии.
Сигнальная линия представляет собой экспоненциальную скользящую среднюю основной линии MACD.
SignalLine = Ema(MacdLine, n)
где
- MacdLine – основная линия,
- n – период расчета сигнальной линии.
3. Расчет MACD-гистограммы.
Разность между основной линией MACD и сигнальной.
MacdHistogramm = MacdLine – SignalLine
где
- MacdLine – основная линия,
- SignalLine – сигнальная линия.
Расчёт индикатора в OsEngine можно посмотреть вот в этом файле:
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Indicators/Scripts/MACD.cs
3. Какие сигналы может подавать индикатор MACD.
Индикатор MACD-гистограмма может подавать следующие сигналы:
1. Пересечение сигнальной линии, когда MACD-гистограмма пересекает нулевую линию вверх или вниз, это может сигнализировать о смене тренда. Если гистограмма пересекает сигнальную линию вверх, это может быть сигналом о возможном повышении цен, а если вниз — о возможном понижении цен.
2. Дивергенция цены и гистограммы: если цена актива движется в одном направлении, а гистограмма MACD движется в противоположном направлении, это может сигнализировать о слабости тренда и возможном развороте цены.
3. Пересечение нулевой линии: если гистограмма пересекает нулевую линию снизу вверх, это может быть сигналом к покупке. Если гистограмма пересекает нулевую линию сверху вниз, это может быть сигналом к продаже.
4. Двойная вершина или двойное дно: когда гистограмма формирует двойную вершину или двойное дно, это может сигнализировать о возможном развороте цены.
5. Отклонение от средней – это когда гистограмма сильно отклоняется от среднего значения, это может сигнализировать о сильном движении цены и возможном развороте.
4. Роботы для OsEngine на индикаторе MACD.
4.1. Стратегия, основанная на дивергенции индикатора MACD.
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/DevergenceMACD.cs
Ссылка на ZigZag:
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Indicators/Scripts/ZigZag.cs
Ссылка на ZigZagMACD (отдельный индикатор):
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Indicators/Scripts/ZigZagMACD.cs
Для осуществления этой стратегии наша команда совместила индикатор MACD и ZigZag для более правильного определения дивергенции. На этот индикатор также будет ссылка, и он уже встроен в нашу платформу OsEngine. И также на графике мы тоже используем обычный индикатор ZigZag.
Логика входа:
- Покупаем, когда на графике цены минимум за определенный отрезок времени ниже предыдущего минимума, а на индикаторе минимум выше предыдущего.
- Продаём, когда на графике цены максимум за определенное количество времени выше предыдущего максимума, а на индикаторе максимум ниже предыдущего.
Выход:
- Устанавливаем стоп и профит в процентах от цены входа.
Рис. 1. Пример логики.
Рис. 2. Si, TF15 min, 2021-23, P/L 1 contract: 0,53%
Рис. 3. BR, TF15 min, 2021-23, P/L 1 contract: 0,38%
Рис. 4. BTCUSDT, TF15 min, 2021-23, P/L 1 contract: 2,52%
Рис. 5. ETHUSDT, TF15 min, 2021-23, P/L 1 contract: 0,41%
4.2. Стратегия с индикатором MACD, Ema и Rsi.
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/StrategyEmaWithRsiAndMACD.cs
Ссылка на Ema:
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Indicators/Scripts/Ema.cs
Ссылка на Rsi:
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Indicators/Scripts/RSI.cs
Логика входа:
- Свеча закрылась выше индикатора Ema;
- MACD-гистограмма ниже нуля и пересекает сигнальную линию снизу вверх;
- Индикатор Rsi пересекает уровень 30 снизу вверх.
- Свеча закрылась ниже индикатора Ema;
- MACD-гистограмма выше нуля и пересекает сигнальную линию сверху вниз;
- Индикатор Rsi пересекает уровень 70 сверху вниз.
Выход:
- Из покупки. Устанавливаем трейлинг-стоп на минимум за указанный для трейлинг-стопа период и переносим к новым минимумам цены, также за указанный период.
- Из продажи. Устанавливаем трейлинг-стоп на максимум за указанный для трейлинг-стопа период и переносим к новым максимумам цены, также за указанный период.
Рис. 6. Пример логики.
Рис. 7. Si, TF15 min, 2021-23, P/L 1 contract: 1,32%
Рис. 8. BR, TF15 min, 2021-23, P/L 1 contract: 0,23%
Рис. 9. BTCUSDT, TF15 min, 2021-23, P/L 1 contract: 0,46%
Рис. 10. ETHUSDT, TF15 min, 2021-23, P/L 1 contract: 0,64%
4.3. Стратегия, основанная на индикаторах ADX и MACD.
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/StrategyMACDandADX.cs
Ссылка на ADX:
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Indicators/Scripts/ADX/ADX.cs
Логика входа:
- Покупаем, когда индикатор MACD-гистограмма больше нуля или растущий, и индикатор ADX выше 20.
- Продаём, когда индикатор MACD-гистограмма меньше нуля или падающий, и индикатор ADX выше 20.
Выход:
- Из покупки, MACD-гистограмма меньше нуля.
- Из продажи, MACD-гистограмма больше нуля.
Рис. 11. Пример логики.
Рис. 12. Si, TF15 min, 2021-23, P/L 1 contract: 0,46%
Рис. 13. Br, TF15 min, 2021-23, P/L 1 contract: 0,40%
Рис. 14. BTCUSDT, TF15 min, 2021-23, P/L 1 contract: 0,36%
Рис. 15. ETHUSDT, TF15 min, 2021-23, P/L 1 contract: 0,30%
4.4. Стратегия с MACD и четыре индикатора Ema.
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/StrategyFourEmaWithMACD.cs
Ссылка на Ema:
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Indicators/Scripts/Ema.cs
Логика входа:
- Ema1 выше Ema2 и свеча закрылась выше Ema3 и Ema4;
- MACD-гистограмма выше нуля.
- Ema1 ниже Ema2 и свеча закрылась ниже Ema3 и Ema4;
- MACD-гистограмма ниже нуля.
Выход:
- Из покупки. Устанавливаем трейлинг-стоп на минимум за указанный для трейлинг-стопа период и переносим к новым минимумам цены, также за указанный период.
- Из продажи. Устанавливаем трейлинг-стоп на максимум за указанный для трейлинг-стопа период и переносим к новым максимумам цены, также за указанный период.
Рис. 16. Пример логики.
Рис. 17. Si, TF15 min, 2021-23, P/L 1 contract: 0,62%
Рис. 18. Br, TF15 min, 2021-23, P/L 1 contract: 0,15%
Рис. 19. BTCUSDT, TF15 min, 2021-23, P/L 1 contract: 0,21%
Рис. 20. ETHUSDT, TF15 min, 2021-23, P/L 1 contract: 0,30%
4.5. Стратегия с MACD и индикатор Ema.
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/StrategyEmaAndMACD.cs
Ссылка на Ema:
https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Indicators/Scripts/Ema.cs
Логика входа:
- цена выше индикатора Ema;
- MACD-гистограмма растущая не менее пяти свечей подряд.
- цена ниже индикатора Ema;
- MACD-гистограмма падающая не менее пяти свечей подряд.
Выход:
- Из покупки. Устанавливаем трейлинг-стоп в процентах от минимума свечи, на которой вошли.
- Из продажи. Устанавливаем трейлинг-стоп в процентах от максимума свечи, на которой вошли.
Рис. 21. Пример логики.
Рис. 22. Si, TF15 min, 2021-23, P/L 1 contract: 0,56%
Рис. 23. Br, TF15 min, 2021-23, P/L 1 contract: 0,41%
Рис. 24. BTCUSDT, TF15 min, 2021-23, P/L 1 contract: 1,44%
Рис. 25. ETHUSDT, TF15 min, 2021-23, P/L 1 contract: 0,56%
5. Итоговая таблица результатов.
Лучшие результаты у нас показала стратегия, основанная на дивергенции индикатора MACD.
* Информация представлена по расчетам OsEngine https://github.com/AlexWan/OsEngine
Ссылки на роботов на GitHub:
- https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/StrategyFourEmaWithMACD.cs
- https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/DevergenceMACD.cs
- https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/StrategyEmaWithRsiAndMACD.cs
- https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/StrategyMACDandADX.cs
- https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/StrategyFourEmaWithMACD.cs
- https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/bin/Debug/Custom/Robots/StrategyEmaAndMACD.cs
Пост из серии «Роботы и индикаторы»
Из данных статей Вы узнаете базовую информацию о том или ином индикаторе. А также можно посмотреть роботов на данных индикаторах с исходным кодом.
Оглавление здесь: https://smart-lab.ru/company/os_engine/blog
Комментарии открыты для друзей, добавляйтесь!
OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support
Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients
Программа лояльности от АЛОР БРОКЕР и OsEngine: https://smart-lab.ru/company/os_engine/blog/972745.php