Die Dual Moving Average Breakout Strategie ist eine quantitative Handelsstrategie, die auf einem schnellen und einem langsamen gleitenden Durchschnitt basiert. Sie verwendet zwei exponentielle gleitende Durchschnitte (EMA) mit verschiedenen Perioden als Handelssignale.
Die Kernlogik dieser Strategie besteht darin, einen schnellen gleitenden Durchschnitt und einen langsamen gleitenden Durchschnitt zu verwenden, um Handelssignale zu bilden.
Die Verwendung des Crossover des schnellen und des langsamen gleitenden Durchschnitts zur Bestimmung von Markttrends und zur Erzeugung von Handelssignalen ist eine typische Strategie mit zwei gleitenden Durchschnitten.
Die Strategie des doppelten gleitenden Durchschnitts hat folgende Vorteile:
Die Strategie des Breakouts mit doppelten gleitenden Durchschnitten birgt ebenfalls einige Risiken:
Lösungen:
Die doppelte gleitende Durchschnittsbreakout-Strategie kann in folgenden Aspekten optimiert werden:
Die Dual Moving Average Breakout Strategie ist eine einfache und praktische quantitative Handelsstrategie. Sie hat Vorteile wie einfache Logik und Implementierung und hat auch einige Probleme mit der Marktanpassungsfähigkeit. Wir können sie durch Parameteroptimierung, Signalfilterung, Risikokontrolle usw. zu einem stabilen profitablen Handelssystem machen. Insgesamt ist die Dual Moving Average Strategie ein großartiger Strategieprototyp, der eine gründliche Forschung und Anwendung für quantitative Trader wert ist.
/*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")