Стратегия отслеживания тенденции конвергенции двойных скользящих средних

Автор:Чао Чжан, Дата: 2023-12-28 17:24:53
Тэги:

img

Обзор

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

Принцип

Стратегия сначала рассчитывает 12-дневную быструю скользящую среднюю, 26-дневную медленную скользящую среднюю и 200-дневную сверхмедленную скользящую среднюю. Когда быстрая скользящая средняя пересекает верхнюю часть медленной, происходит золотой крест, указывающий на бычий рынок. Когда быстрая пересекает ниже медленной, происходит мертвый крест, указывающий на медленный рынок. Стратегия длинна на золотых крестах и коротка на мертвых крестах.

Стратегия также использует индикатор MACD для определения направления тренда. MACD состоит из быстрой линии, медленной линии и MACD-бар. Когда быстрая линия пересекает медленную линию, это быстрый сигнал, а когда пересекается ниже, это медленный сигнал. В сочетании с долгосрочной скользящей средней, чтобы отфильтровать ложные сигналы, только когда быстрая линия нарушает медленную линию, MACD-бар переходит от отрицательного к положительному, и цена стоит выше 200-дневной МА, длинный сигнал запускает. Только когда быстрая линия нарушает медленную линию, MACD-бар переходит от положительного к отрицательному и цена падает ниже 200-дневной МА, короткий сигнал запускает.

С двойным подтверждением от системы скользящих средних и индикатора MACD можно избежать ложных перерывов и обеспечить вход в начале тренда.

Преимущества

  1. Двойное подтверждение предотвращает ложные перерывы, обеспечивая вход в начале тренда.

  2. 200-дневный MA отфильтровывает ошибочные сделки во время колебаний рынка.

  3. Стоп-потеря устанавливается для ограничения максимальных потерь.

  4. Настраиваемые параметры, такие как длины MA, уровень остановки потерь и т. д., чтобы адаптироваться к различным продуктам.

  5. Простая и понятная логика, легко понимаемая и оптимизируемая.

Риски

  1. Долгосрочное отслеживание тенденций не может поймать краткосрочные возможности.

  2. Эффект отслеживания зависит от настроек параметров.

  3. Неправильная установка стоп-лосса может быть слишком свободной или слишком плотной, увеличивая потерю или преждевременно останавливаясь.

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

Оптимизация

  1. Оптимизировать параметр длины MA для лучшей комбинации параметров.

  2. Добавьте другие показатели, такие как KDJ для вспомогательного суждения.

  3. Оптимизируйте стратегии стоп-лосса, такие как затяжные стопы, затяжные стопы и т.д.

  4. Корректировка параметров разрешения на выпуск на основе продукта и сроков.

  5. Добавьте фильтр громкости, чтобы избежать ложных сигналов.

Заключение

Стратегия Dual MA Convergence Trend Tracking оценивает направление тренда путем расчета нескольких систем MA и использует фильтр MACD. Ее преимущества - простая и ясная логика, контролируемые риски, подходят для отслеживания тренда. Ее можно улучшить путем оптимизации параметров, оптимизации стоп-лосса, добавления вспомогательных индикаторов и т. Д. Рекомендуемая стратегия отслеживания тренда.


/*backtest
start: 2022-12-21 00:00:00
end: 2023-12-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Trend Strategy", shorttitle="TSTrend Strategy", overlay=true)


// Trend Strategy
// If the inverse logic is true, the strategy
// goes short. For the worst case there is a
// max intraday equity loss of 50% filter.


// Input
source = input(close)
fastLength = input(12, minval=1, title="MACD fast moving average")
slowLength=input(26,minval=1, title="MACD slow moving average")
signalLength=input(9,minval=1, title="MACD signal line moving average")
veryslowLength=input(200,minval=1, title="Very slow moving average")
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Enable Moving Averages?")
switch3=input(true, title="Enable Background Color?")

// Calculation
fastMA = sma(source, fastLength)
slowMA = sma(source, slowLength)
veryslowMA = sma(source, veryslowLength)
macd = fastMA - slowMA
signal = sma(macd, signalLength)
hist = macd - signal

// Colors
MAtrendcolor = change(veryslowMA) > 0 ? green : red
trendcolor = fastMA > slowMA and change(veryslowMA) > 0 and close > slowMA ? green : fastMA < slowMA and change(veryslowMA) < 0 and close < slowMA ? red : blue
bartrendcolor = close > fastMA and close > slowMA and close > veryslowMA and change(slowMA) > 0 ? green : close < fastMA and close < slowMA and close < veryslowMA and change(slowMA) < 0 ? red : blue
backgroundcolor = slowMA > veryslowMA and crossover(hist, 0) and macd > 0 and fastMA > slowMA and close[slowLength] > veryslowMA ? green : slowMA < veryslowMA and crossunder(hist, 0) and macd < 0 and fastMA < slowMA and close[slowLength] < veryslowMA ? red : na
bgcolor(switch3?backgroundcolor:na,transp=80)
barcolor(switch1?bartrendcolor:na)

// Output
F=plot(switch2?fastMA:na,color=trendcolor)
S=plot(switch2?slowMA:na,color=trendcolor,linewidth=2)
V=plot(switch2?veryslowMA:na,color=MAtrendcolor,linewidth=4)
fill(F,V,color=gray)

// Strategy
buyprice = low
sellprice = high
cancelLong = slowMA < veryslowMA
cancelShort = slowMA > veryslowMA

if (cancelLong)
    strategy.cancel("MACDLE")

if crossover(hist, 0) and macd > 0 and fastMA > slowMA and close[slowLength] > veryslowMA 
    strategy.entry("MACDLE", strategy.long, stop=buyprice, comment="Bullish")

if (cancelShort)
    strategy.cancel("MACDSE")

if crossunder(hist, 0) and macd < 0 and fastMA < slowMA and close[slowLength] < veryslowMA 
    strategy.entry("MACDSE", strategy.short, stop=sellprice, comment="Bearish")

// maxIdLossPcnt = input(50, "Max Intraday Loss(%)", type=float)
// strategy.risk.max_intraday_loss(maxIdLossPcnt, strategy.percent_of_equity)

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Больше