Эта стратегия основана на скользящих средних. Она идет долго после краткосрочной коррекции в восходящей тенденции. Она относится к следующей тенденции стратегии.
Эта стратегия использует 3 линии EMA с различными периодами. Линия EMA1 с более коротким периодом используется для оценки краткосрочного тренда. Линии EMA2 и EMA3 с более длительными периодами используются для определения средне-долгосрочного тренда, где EMA3 имеет самый длинный период. Когда краткосрочная линия EMA1 поднимается, это указывает на то, что она находится в краткосрочном восходящем тренде. Если EMA2 выше EMA3, это означает, что средне-длинный также находится в восходящем тренде, поэтому это хорошее время для долгого входа. В частности, торговый сигнал генерируется, когда цена пересекает линию EMA1. Для дальнейшей проверки стабильности тренда требуется, чтобы EMA2 и EMA3 указывали вверх, а последняя панель также повышается в панели фильтра сигналов, что помогает избежать неправильных коррекций в краткосрочной перспективе.
Линия стоп-лосса и линия прибыли устанавливаются для блокировки прибыли и убытков.
Наибольшее преимущество этой стратегии заключается в том, что она может эффективно отслеживать средне-долгосрочную тенденцию к росту, а также учитывать краткосрочную коррекцию, что делает ее время хранения и пространство прибыли значительными.
Кроме того, установка стоп-лосса и прибыли также делает его риск контролируемым.
Наибольший риск этой стратегии заключается в том, что она не может определить точку переворота тренда. Если среднесрочная долгосрочная тенденция перевернется, в то время как краткосрочная все еще растет, это создаст неправильный длинный сигнал для входа на рынок, что может привести к большему убытку.
Кроме того, на рынках с ограниченным диапазоном могут также возникать ненужные торговые потери.
Подумайте о корректировке параметров цикла EMA на основе характеристик конкретных сортов торговли, чтобы лучше соответствовать средне-длинному циклу сорта.
Сочетание с другими показателями для определения окончания краткосрочных корректировок позволяет избежать ошибочного ввода.
Рассмотреть возможность корректировки коэффициента стоп-потери на основе значения ATR, а также соответствующего ослабления расстояния стоп-потери при большом ATR.
В целом, эта стратегия является средне-долгосрочной тенденцией, следующей за стратегией, которая хорошо работает. Она определяет направление тренда через скользящие средние, время входа через сигналы отзыва и блокирует прибыль и убытки через настройки стоп-лосса и прибыли. Но есть также определенный риск слепого тренда. Трейдеры должны сделать свое собственное суждение о рынке, чтобы решить, входить или нет.
/*backtest start: 2024-01-21 00:00:00 end: 2024-01-28 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('Trend Continuation', shorttitle='Trend_Continuation', overlay=true) // Input price = input(close) MA1_Length = input.int(50, step=1, title='EMA 1 Length') MA2_Length = input.int(80, step=1, title='EMA 2 Length') MA3_Length = input.int(200, step=1, title='EMA 3 Length') numberOfCandles = input(1) slATRFactor = input(3.5) tpATRFactor = input(3.5) ATRLength = input(14) // switch1=input(true, title="Show Bar Color?") // switch2=input(true, title="Show Moving Averages?") // Calculation MA1 = ta.ema(price, MA1_Length) MA2 = ta.ema(price, MA2_Length) MA3 = ta.ema(price, MA3_Length) prev_price = close[numberOfCandles] // Strategy allPositive = true for i = 0 to numberOfCandles - 1 by 1 if close[i] < close[i + 1] or close[i] < MA1 allPositive := false break long = MA2 > MA3 and price > MA1 and ta.crossunder(prev_price, MA1) and allPositive // short = crossover(price, MA3) or ( change(price)>0 and change(MA1)>0 and crossover(price,MA1) and change(MA2)<0 ) if long strategy.entry('Long', strategy.long, comment='Long') bought = strategy.position_size[0] > strategy.position_size[1] atrAtLong = ta.valuewhen(bought, ta.atr(ATRLength), 0) // Stop loss and take profit slPrice = strategy.position_avg_price - slATRFactor * atrAtLong tpPrice = strategy.position_avg_price + tpATRFactor * atrAtLong SL = plot(slPrice, title='SL', style=plot.style_linebr, linewidth=1, color=color.new(color.red, 0)) if price >= tpPrice and price < MA1 strategy.close('Long') if price < strategy.position_avg_price strategy.exit('Stop Loss', 'Long', stop=slPrice) // Strategy Alert alertcondition(long, title='Long Alert', message='Go Long!') // alertcondition(short, title='EMA Slope + EMA Cross Strategy, Short Alert', message='Go Short!') // MA trend bar color // up = change(MA2)>0 and change(MA3)>0 // dn = change(MA2)<0 and change(MA3)<0 // bar_color = up?green:dn?red:blue // barcolor(switch1?bar_color:na) // MA trend output color change_1 = ta.change(MA2) MA2_color = ta.change(MA2) > 0 ? color.lime : change_1 < 0 ? color.red : color.blue change_2 = ta.change(MA3) MA3_color = ta.change(MA3) > 0 ? color.lime : change_2 < 0 ? color.red : color.blue // MA output // EMA2 = plot(switch2?MA2:na, title="EMA 2", style=linebr, linewidth=2, color=MA2_color) // EMA3 = plot(switch2?MA3:na, title="EMA 3", style=linebr, linewidth=4, color=MA3_color) // fill(EMA2, EMA3, color=silver, transp=50) color_1 = MA2 > MA3 ? color.green : color.red EMA1 = plot(MA1, title='EMA 1', style=plot.style_linebr, linewidth=1, color=color_1) // EMA2 = plot(MA2, title="EMA 2", style=linebr, linewidth=2, color=blue) // EMA3 = plot(MA3, title="EMA 3", style=linebr, linewidth=3, color=red) //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)