Diese Strategie berechnet verschiedene Arten von gleitenden Durchschnitten, um die Kurstrendrichtung zu bestimmen und einen einseitigen Einstieg zu implementieren.
Die Strategie erlaubt die Auswahl aus 7 verschiedenen gleitenden Durchschnittsarten, darunter einfacher gleitender Durchschnitt (SMA), exponentieller gleitender Durchschnitt (EMA), volumengewichteter gleitender Durchschnitt (VWMA), doppelter exponentieller gleitender Durchschnitt (DEMA), dreifacher exponentieller gleitender Durchschnitt (TEMA), Kaufman's adaptive gleitender Durchschnitt (KAMA) und Preiskanal Mittellinie. Sie beurteilt die Kurstrendrichtung anhand der Beziehung zwischen dem ausgewählten gleitenden Durchschnitt und dem Schlusskurs.
Wenn der Schlusskurs durch die gleitende Durchschnittslinie nach oben bricht, wird er als Aufwärtstrend beurteilt und eine Long-Position eröffnet. Wenn der Schlusskurs durch die gleitende Durchschnittslinie nach unten bricht, wird er als Abwärtstrend beurteilt und eine Short-Position eröffnet. Dies kann Wendepunkte im Preistrend erfassen und einen einseitigen Einstieg erreichen.
Die Vorteile dieser Strategie sind:
Für die Flexibilität können verschiedene Arten von gleitenden Durchschnitten ausgewählt werden, die verschiedenen Produkten und Zyklen entsprechen.
Einseitige Einträge können Risiken wirksam kontrollieren.
Eintritt in die Trendrichtung ist leicht zu profitieren.
Es ist leicht zu verstehen und umzusetzen.
Diese Strategie birgt auch einige Risiken:
Wenn der Preis um die gleitende Durchschnittslinie schwingt, gibt es mehrere falsche Signale und umgekehrte Eintrittspositionen.
Es ist nicht möglich, die Risiken, die durch schnelle Kursbewegungen nach oben oder unten entstehen, vollständig zu vermeiden.
Der Analyst muss geeignete gleitende Durchschnittsparameter auswählen.
Die Strategie kann aus folgenden Gesichtspunkten optimiert werden:
Kombination mit anderen technischen Indikatoren wie MACD, RSI, um das Trendsignal zu beurteilen und eine Handelskombination zu bilden.
Hinzufügen von Stop-Loss-Logik, wie z. B. Trailing Stop-Loss oder pending Order Stop-Loss.
Testen und optimieren Sie Parameter wie gleitende Durchschnittszeit, gleitende Durchschnittsart, um die optimale Parameterkombination zu finden.
Überlegen Sie, ob Sie für den Eintrag den Auftragstyp MarketIfTouched verwenden, um dem Trend zu folgen.
Die Strategie bestimmt die Kursentwicklungsrichtung basierend auf gleitenden Durchschnitten und implementiert einseitigen Eintrag. Sie ist einfach zu bedienen und zu implementieren und kann Risiken effektiv kontrollieren. Es gibt aber auch Risiken von falschen Signalen und umgekehrten Einträgen. Sie kann kontinuierlich verbessert werden, indem andere Signalindikatoren kombiniert, Parameter optimiert, Stop-Loss hinzugefügt werden, um die Strategie stabiler und zuverlässiger zu machen.
/*backtest start: 2023-11-24 00:00:00 end: 2023-12-24 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = "Noro's MAs Tests v1.1", shorttitle = "MAs tests 1.1", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) needlong = input(true, "long") needshort = input(true, "short") len = input(30, defval = 30, minval = 2, maxval = 1000, title = "MA length") type = input(1, defval = 1, minval = 1, maxval = 7, title = "Type") src = input(close, defval = close, title = "Source") anti = input(true, defval = true, title = "Antipila") //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 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 plot(ma, color = blue, linewidth = 3, transp = 0) trend = anti == false and close > ma ? 1 : anti == false and close < ma ? -1 : low > ma ? 1 : high < ma ? -1 : trend[1] longCondition = trend == 1 and trend[1] == -1 if (longCondition) strategy.entry("Long", strategy.long, needlong == false ? 0 : na) shortCondition = trend == -1 and trend[1] == 1 if (shortCondition) strategy.entry("Short", strategy.short, needshort == false ? 0 : na)