Die Dual Moving Average Trend Tracking Strategie nutzt eine Kombination aus schnellen und langsamen gleitenden Durchschnitten, um die Trendrichtung zu bestimmen, zusammen mit der Leuchterkörperfarbe als Einstiegssignale.
Die Strategie verwendet einen langsam gleitenden 20-Perioden-Durchschnitt, um den Gesamttrend zu definieren. Ein Aufwärtstrend deutet auf einen Aufwärtstrend hin, während ein Abwärtstrend einen Abwärtstrend deutet. Ein 5-Perioden-schneller MA dient als Eintrittsfilter. Die Trades werden nur ausgelöst, wenn der Preis den schnellen MA durchbricht. Darüber hinaus werden die jüngsten N-Kerzenfarben überprüft.
Die Strategie untersucht die Preisbewegung anhand von drei Dimensionen - Trend, kurzfristige MA und Kerzenkörper, um die Signalzuverlässigkeit zu verbessern.
Kombination von Trendfolgen und mittlerer Umkehrung, anpassbar an alle Marktbedingungen.
Mehrfacher Überprüfung früherer Signale verbessert die Gewinnrate, indem falsche Signale vermieden werden.
Optimierbar unter Verwendung von MA-Längen, geprüften Kerzenfarben usw.
Klar, präzise Logik, für Anfänger geeignet.
Whipsaws während von Range-Märkten können zu Verlusten/Abzügen führen.
Versuchen Sie, die Anzahl der geprüften Kerzen zu ändern oder die mittlere Umkehrung zu deaktivieren.
Umfangreiche Rückprüfung erforderlich, um Parameter und Leistung zu validieren.
Erforschen Sie andere MA-Typen, z. B. EMA, KAMA usw.
Hinzufügen von Positionsgrößenregelungen, z. B. auf Basis von fester Menge oder Anteil an Eigenkapital.
Einbauen Sie einen Stop-Loss-Mechanismus.
Versuch mit verschiedenen Instrumenten zur Überprüfung der Stabilität.
Die Dual-MA-Strategie profitiert von Trend-Trades, während sie in kürzeren Zeitrahmen die mittlere Reversion-Alpha extrahiert. Leistung und Gewinnpotenzial können durch Optimierung weiter verbessert werden. Trotz ihrer Einfachheit ermöglicht sie Anfängern, die wichtigsten Konzepte rund um die Kombination von Trend und mittlerer Reversion zu verstehen.
/*backtest start: 2024-01-04 00:00:00 end: 2024-02-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = "Noro's Trend MAs 1.5", shorttitle = "Trend MAs 1.5", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) //Settings needlong = input(true, "long") needshort = input(true, "short") type = input(7, defval = 7, minval = 1, maxval = 7, title = "Type of Slow MA") src = input(close, defval = close, title = "Source of Slow MA") usefastsma = input(true, "Use fast MA Filter") fastlen = input(5, defval = 5, minval = 1, maxval = 50, title = "fast MA Period") len = input(20, defval = 20, minval = 2, maxval = 200, title = "slow MA Period") bars = input(2, defval = 2, minval = 0, maxval = 3, title = "Bars Q") fastsma = ema(src, fastlen) //DEMA dema = 2 * ema(src, len) - ema(ema(close, len), len) //TEMA xPrice = close xEMA1 = ema(src, len) xEMA2 = ema(xEMA1, len) xEMA3 = ema(xEMA2, len) tema = 3 * xEMA1 - 3 * xEMA2 + xEMA3 //KAMA xvnoise = abs(src - src[1]) nfastend = 0.20 nslowend = 0.05 nsignal = abs(src - src[len]) nnoise = sum(xvnoise, len) nefratio = iff(nnoise != 0, nsignal / nnoise, 0) nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2) kama = nz(kama[1]) + nsmooth * (src - nz(kama[1])) //PriceChannel lasthigh = highest(src, len) lastlow = lowest(src, len) center = (lasthigh + lastlow) / 2 //Trend ma = type == 1 ? sma(src, len) : type == 2 ? ema(src, len) : type == 3 ? vwma(src, len) : type == 4 ? dema : type == 5 ? tema : type == 6 ? kama : type == 7 ? center : 0 trend = low > ma ? 1 : high < ma ? -1 : trend[1] //Bars bar = close > open ? 1 : close < open ? -1 : 0 redbars = bars == 0 ? 1 : bars == 1 and bar == -1 ? 1 : bars == 2 and bar == -1 and bar[1] == -1 ? 1 : bars == 3 and bar == -1 and bar[1] == -1 and bar[2] == -1 ? 1 : 0 greenbars = bars == 0 ? 1 : bars == 1 and bar == 1 ? 1 : bars == 2 and bar == 1 and bar[1] == 1 ? 1 : bars == 3 and bar == 1 and bar[1] == 1 and bar[2] == 1 ? 1 : 0 //Signals up = trend == 1 and (low < fastsma or usefastsma == false) and redbars == 1 ? 1 : 0 dn = trend == -1 and (high > fastsma or usefastsma == false) and greenbars == 1 ? 1 : 0 //Lines colorfastsma = usefastsma == true ? red : na plot(fastsma, color = colorfastsma, title = "Fast MA") plot(ma, color = blue, linewidth = 3, transp = 0, title = "Slow MA") //Trading longCondition = up == 1 if (longCondition) strategy.entry("Long", strategy.long, needlong == false ? 0 : na) shortCondition = dn == 1 if (shortCondition) strategy.entry("Short", strategy.short, needshort == false ? 0 : na)