Die doppelte gleitende Durchschnittsverfolgungsstrategie ist eine auf gleitenden Durchschnitten basierende Trendverfolgungsstrategie. Sie bestimmt die Trendrichtung, indem sie gleitende Durchschnitte verschiedener Perioden berechnet und entsprechend Handelssignale erzeugt. Sie geht lang, wenn der kurzfristige gleitende Durchschnitt über den langfristigen überschreitet, und geht kurz, wenn der kurzfristige gleitende Durchschnitt unter den langfristigen überschreitet.
Der doppelte gleitende Durchschnitt nach der Strategie beurteilt die Trendrichtung, indem er die 14-Perioden- und 28-Perioden-einfachen gleitenden Durchschnitte (SMA) des Schlusskurses berechnet. Insbesondere berechnet er den 14-Perioden-SMA und den 28-Perioden-SMA des Schlusskurses am Ende jeder Periode. Wenn der 14-Perioden-SMA den 28-Perioden-SMA überschreitet, sendet er ein Long-Signal und eröffnet eine Long-Position. Wenn der 14-Perioden-SMA unter den 28-Perioden-SMA überschreitet, sendet er ein Short-Signal und eröffnet eine Short-Position.
Nach dem Eintritt in Positionen verwaltet es Risiken, indem es Gewinn- und Stop-Loss-Levels festlegt. Die Gewinn- und Stop-Loss-Punkte werden anhand der Eingabeparameter in Preise umgewandelt. Es zeichnet auch die Gewinnlinie, Stop-Loss-Linie und die Durchschnittspreislinie für die visuelle Beurteilung von Gewinn und Risiko auf dem Diagramm ab.
Die doppelte gleitende Durchschnittsstrategie hat folgende Vorteile:
Die folgende Strategie des doppelten gleitenden Durchschnitts birgt ebenfalls einige Risiken:
Die Risiken können aus folgenden Aspekten verwaltet werden:
Der doppelte gleitende Durchschnitt kann auf folgende Weise optimiert werden:
Hinzufügen von Volatilitätsindikatoren für den dynamischen Stop-Loss-Punkt. Zum Beispiel kombinieren mit ATR, um den Stop-Loss zu erweitern, wenn die Volatilität steigt, um einen vorzeitigen Ausstieg zu vermeiden.
Optimieren Sie die Parameter des gleitenden Durchschnittszyklus, indem Sie mehr Kombinationen testen und geeignete Perioden mit geeigneter Handelssignalfrequenz auswählen.
Hinzufügen von Trendfilterindikatoren wie MACD, DMI, um falsche Signale in der Nähe von Trendwendepunkten zu vermeiden und unnötige Trades zu reduzieren.
Erhöhung von Modellen des maschinellen Lernens zur Vorhersage von Preistrends und Ersetzung traditioneller Regeln.
Diversifizierung der Handelsvarianten unter Verwendung einer geringen Korrelation zur Verringerung des Gesamtverbrauchs.
Zusammenfassend ist die doppelte gleitende Durchschnittsverfolgungsstrategie ein einfaches und praktisches Trendverfolgungssystem. Es bewegt sich entlang des Trends und hat somit geringere Ziehrisiken und ist einfach zu implementieren. Wir können es optimieren, indem wir Zyklusparameter anpassen, Stop-Loss und Take-Profit festlegen, Trendbeurteilungsindikatoren hinzufügen, um uns mehr Marktumgebungen anzupassen und stetigere Renditen zu erzielen.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © coinilandBot // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © adolgov // @description // //@version=4 strategy("coiniland copy trading platform", overlay=true) // random entry condition longCondition = crossover(sma(close, 14), sma(close, 28)) if (longCondition) strategy.entry("My Long Entry Id", strategy.long) shortCondition = crossunder(sma(close, 14), sma(close, 28)) if (shortCondition) strategy.entry("My Short Entry Id", strategy.short) moneyToSLPoints(money) => strategy.position_size !=0 ? (money / syminfo.pointvalue / abs(strategy.position_size)) / syminfo.mintick : na p = moneyToSLPoints(input(200, title = "Take Profit $$")) l = moneyToSLPoints(input(100, title = "Stop Loss $$")) strategy.exit("x", profit = p, loss = l) // debug plots for visualize SL & TP levels pointsToPrice(pp) => na(pp) ? na : strategy.position_avg_price + pp * sign(strategy.position_size) * syminfo.mintick pp = plot(pointsToPrice(p), style = plot.style_linebr ) lp = plot(pointsToPrice(-l), style = plot.style_linebr ) avg = plot( strategy.position_avg_price, style = plot.style_linebr ) fill(pp, avg, color = color.green) fill(avg, lp, color = color.red)