
Die Strategie basiert auf der Kreuzung von einfachen Moving Averages und gewichteten Moving Averages, um Handelssignale zu erzeugen, und verwaltet die Positionen in Kombination mit Stopps und Stopps. Die Strategie kombiniert dynamische Faktoren (Kreuzung von Moving Averages) und statische Faktoren (Feststopp-Stopp-Stopp-Verhältnis), um die Wirkung einer dynamischen Static-Verwebung zu erzielen.
Die Kernlogik ist die Berechnung von Moving Averages für zwei verschiedene Perioden, ein 9-Tage-Simple Moving Average und ein 21-Tage-Gewogen-Moving Average. Ein Kaufsignal wird erzeugt, wenn der 9-Tage-Simple Moving Average für die kurze Periode den 21-Tage-Gewogen-Moving Average für die lange Periode durchläuft; ein Verkaufssignal wird erzeugt, wenn die kurze Periode unter der langen Periode durchläuft.
Nach dem Empfang des Signals wird der Stop-Loss-Stopp-Ratio nach dem eingestellten Preis festgelegt. Zum Beispiel, wenn der Stop-Loss-Ratio auf 5% festgelegt ist, wird der Stop-Loss-Preis auf 95% des Einstiegspreises festgelegt. Wenn der Stop-Loss-Ratio auf 5% festgelegt ist, wird der Stop-Loss-Preis auf 105% des Einstiegspreises festgelegt.
Die Strategie kombiniert dynamische technische Indikatoren mit statischen Strategieparametern und bietet die Vorteile eines dynamischen Systems. Die technischen Indikatoren können die Markteigenschaften dynamisch erfassen, was dazu beiträgt, die Trends zu erfassen. Die Parameter-Einstellungen bieten eine stabile Risiken- und Rendite-Kontrolle, was dazu beiträgt, die Zufälligkeit der Positionsverwaltung zu verringern.
Verglichen mit einem rein dynamischen System ist diese Strategie im Positionsmanagement stabiler und kann die Auswirkungen irrationaler Entscheidungen reduzieren. Im Vergleich zu einem rein statischen System ist die Einstiegsoption dieser Strategie flexibler und kann sich an Veränderungen des Marktes anpassen. Daher ist die Strategie insgesamt stabiler und rentabler.
Die Risiken für diese Strategie bestehen hauptsächlich aus zwei Aspekten. Erstens ist die Möglichkeit, dass der Moving Average falsche Signale erzeugt. Wenn der Markt in einer schwankenden Korrektur ist, können sich die Moving Averages häufig kreuzen, so dass die Strategie eingesperrt wird. Zweitens ist das Risiko, dass die festen Stop-Loss-Stopps sich nicht an spezielle Marktbedingungen anpassen können.
Die erste Strategie besteht darin, kritische Zeitpunkte zu vermeiden und die Wahrscheinlichkeit von Fehlsignalen zu verringern. Die zweite Strategie besteht darin, einen anpassungsfähigen Stop-Loss-Algorithmus zu aktivieren, der die Stop-Loss-Anpassung an die Marktfluktuation und spezielle Ereignisse ermöglicht.
Diese Strategie kann in folgenden Bereichen optimiert werden:
Tests mit verschiedenen Parameterkombinationen, um die besten Parameter zu finden;
Das ist eine sehr wichtige Frage, die wir uns stellen müssen.
Die Anwendung von adaptiven Stop-Loss-Algorithmen, die mit den Märkten verbunden sind;
In Kombination mit anderen Indikatoren, um starke oder schwache Trends zu beurteilen, und um sich von Marktschwankungen fernzuhalten;
Automatische Optimierung der Parameter mittels maschineller Lernmethoden.
Durch das Testen verschiedener Parameter, das Hinzufügen von Filterbedingungen, die Verbesserung von Stop-Loss-Stopps und die Beurteilung von Trends können die Stabilität und die Rendite der Strategie weiter verbessert werden.
Die Strategie kombiniert erfolgreich dynamische Kennzahlen mit statischen Parametern, wobei Flexibilität und Stabilität zugleich berücksichtigt werden. Die Strategie hat eine bessere Gesamtperformance als die rein dynamischen und rein statischen Strategien. Natürlich gibt es noch Optimierungsmöglichkeiten, die die Strategie durch Parameteranpassung, Filterbedingungen, Adaptive Stop Loss und Machine Learning verbessern können.
/*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"}]
*/
//@version=5
strategy("WMA vs MMA Crossover Strategy with SL/TP", shorttitle="WMA_MMA_Cross_SL_TP", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Définition des périodes pour les moyennes mobiles
wmaLength = input.int(9, title="WMA Length")
mmaLength = input.int(21, title="MMA Length")
// Paramètres de Stop Loss et Take Profit en pourcentage
stopLossPercentage = input.float(5, title="Stop Loss (%)") / 100
takeProfitPercentage = input.float(5, title="Take Profit (%)") / 100
// Calcul des moyennes mobiles
wmaValue = ta.wma(close, wmaLength)
mmaValue = ta.sma(close, mmaLength)
// Conditions pour les signaux d'achat et de vente
buySignal = ta.crossover(wmaValue, mmaValue)
sellSignal = ta.crossunder(wmaValue, mmaValue)
// Génération des ordres en fonction des signaux
if buySignal
strategy.entry("Buy", strategy.long)
strategy.exit("Exit Buy", "Buy", stop=strategy.position_avg_price * (1 - stopLossPercentage), limit=strategy.position_avg_price * (1 + takeProfitPercentage))
if sellSignal
strategy.entry("Sell", strategy.short)
strategy.exit("Exit Sell", "Sell", stop=strategy.position_avg_price * (1 + stopLossPercentage), limit=strategy.position_avg_price * (1 - takeProfitPercentage))
// Affichage des moyennes mobiles sur le graphique
plot(wmaValue, color=color.blue, title="WMA")
plot(mmaValue, color=color.red, title="MMA")
// Affichage des signaux sur le graphique pour référence
plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY")
plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL")