Стратегия двойного движущегося среднего тренда является количественной торговой стратегией, которая использует два движущихся средних с разными периодами для определения направления тренда рынка.
Стратегия использует две скользящие средние, включая быструю скользящую среднюю (например, 10-периодную) и медленную скользящую среднюю (например, 30-периодную). Если обе скользящие средние указывают вверх, это указывает на восходящий тренд. Если обе скользящие средние указывают вниз, это указывает на нисходящий тренд.
В частности, стратегия сначала рассчитывает быстрые и медленные скользящие средние. Затем она сравнивает текущий быстрый скользящий средний с предыдущим периодом, чтобы увидеть, является ли текущий большим, чем предыдущий. Если да, присвоите значение 1, указывающее на тенденцию к росту. В противном случае присвоите -1 для снижения тенденции. Сделайте то же самое для медленной скользящей средней.
Наконец, определите тенденцию по значениям двух скользящих средних. Если оба значения равняются 1, окончательное решение равняется 1, что указывает на восходящий тренд. Если оба значения равняются -1, окончательное решение равняется -1, что указывает на нисходящий тренд. Если значения различаются, сохраните предыдущее решение о тренде.
После определения направления тренда стратегия будет длинной при восходящем тренде и короткой при понижающем.
Стратегия имеет следующие направления:
Есть также некоторые риски этой стратегии:
Для снижения рисков параметры скользящих средних могут быть установлены более разумно, могут быть введены другие показатели, могут быть установлены стоп-лосс и прибыль, а размер позиции может быть соответствующим образом скорректирован.
Стратегия может быть дополнительно оптимизирована в следующих аспектах:
Стратегия Dual Moving Average Trend Tracking имеет четкую логику использования двойных скользящих средних для фильтрации шума и выявления тренда и торговли вдоль направления тренда. Это типичный тренд после стратегии. Трейдеры могут выбирать длинный только или короткий только на основе предпочтений.
/*backtest start: 2022-12-12 00:00:00 end: 2023-12-18 00:00:00 period: 1d basePeriod: 1h 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/ // © noro // 2020 //@version=4 strategy(title = "Noro's TrendMA Strategy", shorttitle = "TrendMA str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, commission_value = 0.1) //Settings needlong = input(true, title = "Long") needshort = input(true, title = "Short") fast = input(10, minval = 1, title = "MA Fast (red)") slow = input(30, minval = 2, title = "MA Slow (blue)") type = input(defval = "SMA", options = ["SMA", "EMA"], title = "MA Type") src = input(ohlc4, title = "MA Source") showma = input(true, title = "Show MAs") showbg = input(false, title = "Show Background") //MAs fastma = type == "EMA" ? ema(src, fast) : sma(src, fast) slowma = type == "EMA" ? ema(src, slow) : sma(src, slow) //Lines colorfast = showma ? color.red : na colorslow = showma ? color.blue : na plot(fastma, color = colorfast, title = "MA Fast") plot(slowma, color = colorslow, title = "MA Slow") //Trend trend1 = fastma > fastma[1] ? 1 : -1 trend2 = slowma > slowma[1] ? 1 : -1 trend = 0 trend := trend1 == 1 and trend2 == 1 ? 1 : trend1 == -1 and trend2 == -1 ? -1 : trend[1] //Backgrouns colbg = showbg == false ? na : trend == 1 ? color.lime : trend == -1 ? color.red : na bgcolor(colbg, transp = 80) //Trading if trend == 1 if needlong strategy.entry("Long", strategy.long) if needlong == false strategy.close_all() if trend == -1 if needshort strategy.entry("Short", strategy.short) if needshort == false strategy.close_all()