Стратегия Dual Moving Average Trend Tracking использует комбинацию быстрых и медленных средних движений для определения направления тренда, а также цвет тела свечи в качестве сигналов входа.
Стратегия использует 20-периодный медленный скользящий средний для определения общей тенденции. Вверх перекресток предполагает восходящий тренд, в то время как вниз перекресток предполагает нисходящий тренд. 5-периодный быстрый MA служит фильтром входа. Торги запускаются только тогда, когда цена нарушает быстрый MA. Кроме того, проверяются последние цвета тела свечи N. Длинные сигналы запускаются, когда цвет тела становится красным в восходящем тренде. Короткие сигналы запускаются, когда цвет тела становится зеленым в нисходящем тренде. Это помогает избежать ложных прорывов.
Стратегия рассматривает ценовое движение с использованием трех измерений - тренд, краткосрочный MA и тело свечи, улучшая надежность сигнала.
Сочетает в себе тенденцию и среднее изменение, адаптируемое в различных рыночных условиях.
Многофакторный обзор предварительных сигналов улучшает процент победы, избегая ложных сигналов.
Оптимизируется с использованием длин MA, цветов свечей проверяются и т.д.
Ясная, лаконичная логика, удобная для начинающих.
Убытки на рынках с диапазоном могут привести к убыткам / убыткам.
Попробуйте изменить количество проверенных свечей или отключить среднее обратное движение.
Для проверки параметров и производительности необходима обширная обратная проверка.
Исследуйте другие типы МО, например, EMA, KAMA и т.д.
Добавить правила размещения позиций, например, на основе фиксированного количества или процента собственного капитала.
Подумайте о выходе из длинных позиций, если цена закрывается ниже медленного MA.
Испытание на различных приборах для проверки стабильности.
Стратегия Dual MA получает прибыль от трендовых сделок при извлечении среднего реверсионного альфа в более короткие временные рамки. Производительность и потенциал прибыли могут быть улучшены за счет оптимизации. Несмотря на свою простоту, она позволяет новичкам понять ключевые концепции, связанные с сочетанием тренда и среднего реверсия.
/*backtest start: 2024-01-04 00:00:00 end: 2024-02-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = "Noro's Trend MAs 1.5", shorttitle = "Trend MAs 1.5", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) //Settings needlong = input(true, "long") needshort = input(true, "short") type = input(7, defval = 7, minval = 1, maxval = 7, title = "Type of Slow MA") src = input(close, defval = close, title = "Source of Slow MA") usefastsma = input(true, "Use fast MA Filter") fastlen = input(5, defval = 5, minval = 1, maxval = 50, title = "fast MA Period") len = input(20, defval = 20, minval = 2, maxval = 200, title = "slow MA Period") bars = input(2, defval = 2, minval = 0, maxval = 3, title = "Bars Q") fastsma = ema(src, fastlen) //DEMA dema = 2 * ema(src, len) - ema(ema(close, len), len) //TEMA xPrice = close xEMA1 = ema(src, len) xEMA2 = ema(xEMA1, len) xEMA3 = ema(xEMA2, len) tema = 3 * xEMA1 - 3 * xEMA2 + xEMA3 //KAMA xvnoise = abs(src - src[1]) nfastend = 0.20 nslowend = 0.05 nsignal = abs(src - src[len]) nnoise = sum(xvnoise, len) nefratio = iff(nnoise != 0, nsignal / nnoise, 0) nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2) kama = nz(kama[1]) + nsmooth * (src - nz(kama[1])) //PriceChannel lasthigh = highest(src, len) lastlow = lowest(src, len) center = (lasthigh + lastlow) / 2 //Trend ma = type == 1 ? sma(src, len) : type == 2 ? ema(src, len) : type == 3 ? vwma(src, len) : type == 4 ? dema : type == 5 ? tema : type == 6 ? kama : type == 7 ? center : 0 trend = low > ma ? 1 : high < ma ? -1 : trend[1] //Bars bar = close > open ? 1 : close < open ? -1 : 0 redbars = bars == 0 ? 1 : bars == 1 and bar == -1 ? 1 : bars == 2 and bar == -1 and bar[1] == -1 ? 1 : bars == 3 and bar == -1 and bar[1] == -1 and bar[2] == -1 ? 1 : 0 greenbars = bars == 0 ? 1 : bars == 1 and bar == 1 ? 1 : bars == 2 and bar == 1 and bar[1] == 1 ? 1 : bars == 3 and bar == 1 and bar[1] == 1 and bar[2] == 1 ? 1 : 0 //Signals up = trend == 1 and (low < fastsma or usefastsma == false) and redbars == 1 ? 1 : 0 dn = trend == -1 and (high > fastsma or usefastsma == false) and greenbars == 1 ? 1 : 0 //Lines colorfastsma = usefastsma == true ? red : na plot(fastsma, color = colorfastsma, title = "Fast MA") plot(ma, color = blue, linewidth = 3, transp = 0, title = "Slow MA") //Trading longCondition = up == 1 if (longCondition) strategy.entry("Long", strategy.long, needlong == false ? 0 : na) shortCondition = dn == 1 if (shortCondition) strategy.entry("Short", strategy.short, needshort == false ? 0 : na)