Стратегия двойного движущегося среднего выхода - это количественная стратегия торговли, основанная на быстрой движущейся средней и медленной движущейся средней. Она использует два экспоненциальных движущихся средних (EMA) с разными периодами в качестве торговых сигналов. Когда быстрая EMA пересекает медленную EMA, генерируется сигнал покупки. Когда быстрая EMA пересекает медленную EMA, генерируется сигнал продажи.
Основная логика этой стратегии заключается в использовании быстрой скользящей средней и медленной скользящей средней для формирования торговых сигналов.
Использование перекрестка быстрой и медленной скользящей средней для определения рыночных тенденций и получения торговых сигналов является типичной стратегией двойной скользящей средней.
Стратегия двойного перемещающегося среднего имеет следующие преимущества:
Стратегия двойного перемещающегося среднего выхода также сопряжена с некоторыми рисками:
Решения:
Стратегия двойного прорыва скользящей средней может быть оптимизирована в следующих аспектах:
Стратегия двойной скользящей средней является простой и практичной количественной торговой стратегией. Она имеет такие преимущества, как простая логика и реализация, а также имеет некоторые проблемы с адаптацией рынка. Мы можем сделать ее стабильной прибыльной торговой системой посредством оптимизации параметров, фильтрации сигналов, контроля рисков и т. Д. В целом, стратегия двойной скользящей средней является отличным прототипом стратегии, достойным глубокого исследования и применения для количественных трейдеров.
/*backtest start: 2023-01-17 00:00:00 end: 2024-01-23 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("CDC Action Zone V.2", overlay=true) // CDC ActionZone V2 29 Sep 2016 // CDC ActionZone is based on a simple 2MA and is most suitable for use with medium volatility market // 11 Nov 2016 : Ported to Trading View with minor UI enhancement LSB = input(title="Long/Short", defval="Long only", options=["Long only", "Short only" , "Both"]) src = input(title="Data Array",type=input.source,defval=ohlc4) prd1=input(title="Short MA period", type=input.integer,defval=12) prd2=input(title="Long MA period",type=input.integer,defval=26) AP = ema(src,2) Fast = ema(AP,prd1) Slow = ema(AP,prd2) Bullish = Fast>Slow Bearish = Fast<Slow Green = Bullish and AP>Fast Red = Bearish and AP<Fast Yellow = Bullish and AP<Fast Blue = Bearish and AP>Fast Buy = Bullish and Bearish[1] Sell = Bearish and Bullish[1] alertcondition(Buy,"Buy Signal","Buy") alertcondition(Sell,"Sell Signal","Sell") //Plot l1=plot(Fast,"Fast", linewidth=1,color=color.red) l2=plot(Slow,"Slow", linewidth=2,color=color.blue) bcolor = Green ? color.lime : Red ? color.red : Yellow ? color.yellow : Blue ? color.blue : na barcolor(color=bcolor) fill(l1,l2,bcolor) // === INPUT BACKTEST RANGE === FromYear = input(defval = 2000, title = "From Year", minval = 1920) FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 1921) ToMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => true // create function "within window of time" if LSB == "Long only" and Buy and window() strategy.entry("L",true) if LSB == "Long only" and Sell and window() strategy.close("L",qty_percent=100,comment="TP Long") if LSB == "Both" and Buy and window() strategy.entry("L",true) if LSB == "Both" and Sell and window() strategy.entry("S",false) if LSB == "Short only" and Sell and window() strategy.entry("S",false) if LSB == "Short only" and Buy and window() strategy.close("S",qty_percent=100,comment="TP Short")