Стратегия пересечения скользящих средних и комбинации MACD


Дата создания: 2023-10-24 13:51:02 Последнее изменение: 2023-10-24 13:51:02
Копировать: 1 Количество просмотров: 843
1
Подписаться
1617
Подписчики

Стратегия пересечения скользящих средних и комбинации MACD

Обзор

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

Принципы

Эта стратегия основана на комбинации системы пересечения равновесия с MACD-индикатором. В частности, когда краткосрочная средняя линия проходит через долгосрочную среднюю, делается больше; когда краткосрочная средняя линия проходит под долгосрочную среднюю, делается пустота. Здесь выбирается 21-дневная ЭМА как краткосрочная средняя линия и 100-дневная ЭМА как долгосрочная средняя линия.

В то же время, для подтверждения торгового сигнала используется MACD-индикатор. Полисигналами являются только те, которые проходят по линии DEA на линии DIFF MACD.

Кроме того, стратегия использует RSI, чтобы избежать чрезмерного пробега, открывая позиции только тогда, когда RSI ниже 30%.

С точки зрения остановки убытков, стратегия использует метод фиксированного процента отслеживания остановки, при этом многоодиночные остановки уменьшаются на 1% от цены входа, а пустые остановки увеличиваются на 1% от цены входа. В то же время, стратегия также реализует мобильные остановки, когда многоодиночные плавающие прибыли достигают 3% от цены входа.

Анализ преимуществ

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

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

Анализ рисков

Основные риски этой стратегии заключаются в следующем:

  1. В системе с пересечением средних линий существует задержка, которая может привести к задержке входа в систему и пропуску оптимальной точки входа. Задержку можно уменьшить, оптимизировав параметры средних линий.

  2. MACD-индикаторы легко создают ложные сигналы, требуют дополнительной фильтрации других индикаторов. Можно рассмотреть возможность использования таких индикаторов, как KDJ, для оптимизации.

  3. В некоторых случаях фиксированная стопроцентная остановка остановки не может быть вовремя остановлена. Можно изменить ее на динамическую.

  4. Стратегическое отступление может быть более крупным, можно рассмотреть возможность снижения позиции, чтобы избежать риска.

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

Направление оптимизации

Эта стратегия может быть оптимизирована в следующих аспектах:

  1. Оптимизируйте параметры средней линии, чтобы сигнал средней линии был более точным. Можно экспериментировать с различными типами средней линии, такими как EMA, SMA.

  2. Добавление фильтров на другие индикаторы, такие как KDJ, RSI и т. д., чтобы уменьшить ошибочные сделки.

  3. Попытайтесь использовать динамические методы остановки, чтобы лучше контролировать риск. Например, отслеживание остановки, остановка ATR и т. Д.

  4. Добавление дискортирующего механизма, позволяющего стратегии быть прибыльными в условиях падения.

  5. Оптимизация управления капиталом, изменение размеров позиций, снижение максимального вывода.

  6. Испытание эффективности контрактов различных сортов, расширение сферы применения стратегии.

  7. Добавление алгоритмов машинного обучения, автоматическая оптимизация параметров с использованием алгоритмов, уменьшение вмешательства человека.

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-10-16 00:00:00
end: 2023-10-23 00:00:00
period: 2m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Toxic_Cat_

//@version=5
// strategy("MA_50_200_CROSS", overlay=true, margin_long=100, margin_short=100)

EMA21 = ta.ema(close, 21)
EMA100 = ta.ema(close, 100)
[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9)

plot(EMA21)
plot(EMA100, color = color.orange)

openLong = ta.crossover(EMA21, EMA100) and macdLine > signalLine
openShort = ta.crossunder(EMA21, EMA100) and ta.rsi(close, 14) <= 33

crossunderMACD = ta.crossunder(macdLine, signalLine)


if (strategy.opentrades < 1)
    if openLong 
        strategy.entry("L",strategy.long, 1)

   if openShort
      strategy.entry("S",strategy.short, 1)

// slose long
// if ((strategy.opentrades.entry_price(0) + strategy.opentrades.entry_price(0)*0.03) <= open) 
//     strategy.exit("profit L", "L", limit = close)

// else if strategy.opentrades.entry_price(0) - strategy.opentrades.entry_price(0)*0.01 >= open or crossunderMACD
//     strategy.exit("loss L", "L", stop = close)

// slose short
// if (strategy.opentrades.entry_price(0) - strategy.opentrades.entry_price(0)*0.03) >= open
//     strategy.exit("profit S", "S", limit = (strategy.opentrades.entry_price(0) - strategy.opentrades.entry_price(0)*0.03))

// else if strategy.opentrades.entry_price(0) + strategy.opentrades.entry_price(0)*0.01 <= open
//    strategy.exit("loss S", "S", stop = (strategy.opentrades.entry_price(0) + strategy.opentrades.entry_price(0)*0.01))