Die gleitende Durchschnitts-Crossover-Handelsstrategie erzeugt Kauf- und Verkaufssignale, indem sie die Überschneidung der schnellen EMA (fastLength) und der langsamen EMA (slowLength) Linien berechnet. Wenn die schnelle Linie über die langsame Linie kreuzt, wird ein Kaufsignal erzeugt. Wenn die schnelle Linie unter die langsame Linie kreuzt, wird ein Verkaufssignal erzeugt. Diese Strategie ist einfach und praktisch und eignet sich für den mittelfristigen und kurzfristigen Handel.
Die Strategie verwendet zwei gleitende Durchschnittslinien, eine schnelle Linie und eine langsame Linie. Der Parameter der schnellen Linie EMAfastLength wird standardmäßig auf eine 9-tägige Linie und der Parameter der langsamen Linie EMAslowLength auf eine 26-tägige Linie eingestellt. Berechnen Sie die Kreuzung der beiden EMA-Linien, um Marktkauf- und Verkaufssignale zu bestimmen:
Die spezifischen Handelssignale und Strategieregeln sind wie folgt:
Diese Strategie basiert also auf dem goldenen Kreuz und dem toten Kreuz der beiden gleitenden Durchschnittslinien.
Um die Risiken zu beheben, sind unter anderem der gleitende Durchschnittszyklus, die Handelsvielfalt, die Gewinn- und Stop-Loss-Ratio usw. zu optimierbaren Parametern. Umfassende Tests sind erforderlich, um Risiken zu reduzieren.
Die Idee des gleitenden Durchschnitts Crossover dieser Strategie ist einfach und praktisch und kann auf folgende Weise optimiert werden:
Durch diese Optimierungstests können die praktische Wirkung und Stabilität der Strategie erheblich verbessert werden.
Die Idee der gleitenden Durchschnitts-Crossover-Strategie ist einfach, aber die praktische Anwendung erfordert eine kontinuierliche Optimierung. Diese Strategie gibt die Logik der Erzeugung von Handelssignalen und grundlegenden Handelsregeln. Auf dieser Grundlage kann sie stark optimiert werden, um eine brauchbare quantitative Strategie zu werden. Die Anwendung des gleitenden Durchschnitts bietet uns auch Ideen für Strategien, auf deren Grundlage wir innovativ und verbessern können.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("EMA Cross by MarketAlpha", overlay=true) EMAfastLength = input(defval = 9, minval = 2) EMAslowLength = input(defval = 26, minval = 2) Targetpercentage = input(defval = 0.15, title = "Profit Target in percentage", minval = 0.05) StopLosspercentage = input(defval = 0.20, title = "Stop Loss in percentage", minval = 0.05) profitpoints = close*Targetpercentage stoplosspoints = close*StopLosspercentage price = close FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2018, title = "From Year", minval = 2000) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2017) 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" emafast = ema(price, EMAfastLength) emaslow = sma(price, EMAslowLength) plot(emafast,color=green) plot(emaslow,color=red) enterLong() => crossover(emafast, emaslow) strategy.entry(id = "MarketAlpha Long", long = true, when = window() and enterLong()) strategy.exit("Exit Long", from_entry = "MarketAlpha Long", profit = profitpoints,loss = stoplosspoints) enterShort() => crossunder(emafast, emaslow) strategy.entry(id = "MarketAlpha Short", long = false, when = window() and enterShort()) strategy.exit("Exit Short", from_entry = "MarketAlpha Short", profit = profitpoints,loss = stoplosspoints)