Diese Strategie heißtGewichtete quantitative gleitende Durchschnitts-Crossover-StrategieDie Grundidee besteht darin, schnelle und langsame Linien basierend auf Preis, Handelsvolumen und anderen Indikatoren zu entwerfen und Kauf- und Verkaufssignale zu erzeugen, wenn zwischen ihnen ein goldenes Kreuz und ein totes Kreuz auftreten.
Der Kernindikator dieser Strategie ist der quantitative gleitende Durchschnitt (QMA). QMA misst die Trendrichtung, indem er den gewichteten Durchschnittspreis über einen bestimmten Zeitraum berechnet. Im Gegensatz zum regulären gleitenden Durchschnitt werden die Gewichte (Gewicht = Preis * Handelsvolumen) der Preise in QMA im Laufe der Zeit abnehmen. So haben die neuesten Preise größere Gewichte, die schneller auf die Marktänderung reagieren können.
Insbesondere erzeugt diese Strategie eine schnelle QMA-Linie mit 25 Tagen und eine langsame QMA-Linie mit 29 Tagen. Sie erzeugt ein Kaufsignal, wenn die schnelle Linie über die langsame Linie überschreitet, und ein Verkaufssignal, wenn die schnelle Linie unter die langsame Linie überschreitet.
Im Vergleich zum regulären gleitenden Durchschnitt hat diese Strategie folgende Vorteile:
Diese Strategie birgt auch einige Risiken:
Die oben genannten Risiken könnten durch eine angemessene Anpassung der Häufigkeit, eine strenge Vorwärtsanalyse und die Einbeziehung anderer Indikatoren gemindert werden.
Diese Strategie kann noch weiter optimiert werden:
Im Allgemeinen handelt es sich um eine stabile kurzfristige Handelsstrategie. Im Vergleich zu einem einzelnen Preisdurchschnitt kann sein Indikator die Angebots-Nachfrage-Beziehung auf dem Markt besser widerspiegeln. Mit der richtigen Parameter-Ausrichtung und dem Risikomanagement kann diese Strategie langfristig stabil operieren und solide Gewinne erzielen.
/*backtest start: 2022-11-29 00:00:00 end: 2023-12-05 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Brad VWMACD Strategy 2233", overlay=false, max_bars_back=500,default_qty_type=strategy.percent_of_equity,commission_type=strategy.commission.percent, commission_value=0.18, default_qty_value=100) // === INPUT BACKTEST RANGE === FromMonth = input(defval = 9, 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 = 2017) 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) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create function "within window of time" // === INPUT SMA === //fastMA = input(defval = 16, type = integer, title = "FastMA", minval = 1 ) //slowMA = input(defval = 23, type = integer, title = "SlowMA", minval = 1) fastMA = input(defval = 25, title = "FastMA", minval = 1 ) slowMA = input(defval = 29, title = "SlowMA", minval = 1) Long_period = slowMA Short_period = fastMA Smoothing_period = input(9, minval=1) xLongMAVolPrice = ema(volume * close, Long_period) xLongMAVol = ema(volume, Long_period) xResLong = (xLongMAVolPrice * Long_period) / (xLongMAVol * Long_period) xShortMAVolPrice = ema(volume * close, Short_period) xShortMAVol = ema(volume, Short_period) xResShort = (xShortMAVolPrice * Short_period) / (xShortMAVol * Short_period) xVMACD = xResShort - xResLong xVMACDSignal = ema(xVMACD, Smoothing_period) nRes = xVMACD - xVMACDSignal //plot(nRes*20+slowMA, color=blue, style = line ) //plot(3000, color=red, style = line ) // === SERIES SETUP === buy = crossover( xVMACD,xVMACDSignal) // buy when fastMA crosses over slowMA sell = crossunder( xVMACD,xVMACDSignal) // sell when fastMA crosses under slowMA // === SERIES SETUP === //buy = crossover(vwma(close, fastMA),7+vwma(close, slowMA)) // buy when fastMA crosses over slowMA //sell = crossunder(vwma(close, fastMA),vwma(close, slowMA)-7) // sell when fastMA crosses under slowMA // === EXECUTION === strategy.entry("L", strategy.long, when = window() and buy) // buy long when "within window of time" AND crossover strategy.close("L", when = window() and sell) // sell long when "within window of time" AND crossunder // === EXECUTION === strategy.entry("S", strategy.short, when = window() and sell) // buy long when "within window of time" AND crossover strategy.close("S", when = window() and buy) // sell long when "within window of time" AND crossunder plotshape(window() and buy, style=shape.triangleup, color=green, text="up") plotshape(window() and sell, style=shape.triangledown, color=red, text="down") plot(xVMACD*100, title = 'FastMA', color = orange, linewidth = 2, style = line) // plot FastMA plot(xVMACDSignal*100, title = 'SlowMA', color = aqua, linewidth = 2, style = line) // plot SlowMA