Diese Strategie kombiniert einen entgegengesetzten Ansatz (Kauf von Dips) mit einer Trendfollowing-Logik (nur wenn der Preis über dem MA200 liegt). Die Strategie zielt darauf ab, den besten Zeitpunkt für den Kauf von Dips zu finden, der am wahrscheinlichsten profitabel ist. Der Preis über dem langfristigen gleitenden Durchschnitt zeigt eine Dynamik an, die die Möglichkeit erhöht, während einer kurzfristigen Schwäche vom Kauf von Vermögenswerten zu profitieren.
Diese Strategie berechnet die Gesamtprozentsatzänderung des Preises über den Lookback-Zeitraum, um festzustellen, ob der Preis einen relativen Rückgang erlebt hat. Wenn der Gesamtwechselprozentsatz unter -3% liegt, wird der Preis beim Rückgang betrachtet. Darüber hinaus setzt die Strategie auch den 200-tägigen einfachen gleitenden Durchschnitt als Indikator, um den Trend zu beurteilen. Kaufsignale werden nur ausgelöst, wenn der Preis über dem 200-tägigen gleitenden Durchschnitt liegt. Durch die Verwendung des Mittelumkehrprinzips und der Long-Short-Pairing kauft die Strategie den Rückgang während eines Aufwärtstrends, um einen Gewinn zu erzielen.
Diese Strategie kombiniert die Vorteile des Trendhandels und des Kontrasthandels. Auf der einen Seite vermeidet die Verwendung des langfristigen gleitenden Durchschnitts zur Bestimmung des Trends einen blinden Kauf während eines Abwärtstrends. Auf der anderen Seite bietet der Kauf von Dips bessere Einstiegsmöglichkeiten bei kurzfristigen Korrekturen. Die Kombination sorgt sowohl für Handelssicherheit als auch für eine höhere Gewinnwahrscheinlichkeit. Darüber hinaus verfügt die Strategie über einen großen Optimierungsraum für Parameter, die an verschiedene Märkte angepasst werden können, was ihr eine starke Anpassungsfähigkeit verleiht.
Das größte Risiko besteht darin, dass der Preis nach dem Auslösen des Kaufsignals weiter sinken kann, was zu vergrößerten Verlusten führt. Darüber hinaus würde die Strategie ebenfalls scheitern, wenn der Markt lange Zeit im Bereich bleibt und der Preis den gleitenden Durchschnitt nicht durchbrechen kann. Um solche Risiken zu mindern, könnte der gleitende Durchschnittszeitraum entsprechend verkürzt und Kaufkriterien optimiert werden, um eine ausreichende Sicherheitsmarge zu gewährleisten.
Die Strategie kann in mehreren Aspekten optimiert werden: 1) Optimierung der gleitenden Durchschnittsperiode, um sich an verschiedene Märkte anzupassen; 2) Optimierung der Kaufkriterien, um eine ausreichende Marge zu gewährleisten; 3) Hinzufügen von Stop-Loss, um Verluste zu kontrollieren; 4) Kombination anderer Indikatoren zur Beurteilung von Trends und Einbrüchen, um die Genauigkeit zu verbessern.
Im Allgemeinen ist dies eine typische Strategie, die Trendfolgung und entgegengesetzte Handelsideen kombiniert. Es gewährleistet sowohl Handelssicherheit als auch höhere Gewinnwahrscheinlichkeit, mit starkem praktischem Wert. Weitere Verbesserungen der Stabilität und der realen Handelswirkungen können durch Parameteroptimierung und Stop-Loss-Optimierung erzielt werden.
/*backtest start: 2023-12-08 00:00:00 end: 2024-01-07 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Buy The Dips - MA200 Optimised", overlay=false) //Moving average MAinp = input(defval = 100, title = "MA", type = input.integer, minval = 1, step = 1) MA=sma(close, MAinp) //Percent change inp_lkb = input(1, title='Lookback Period') perc_change(lkb) => overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100 // Call the function overall = perc_change(inp_lkb) // === INPUT BACKTEST RANGE === fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12) fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31) fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970) thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12) thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31) thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970) showDate = input(defval = true, title = "Show Date Range", type = input.bool) start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => true // create function "within window of time" //Entry/Exit strategy.entry(id="long", long = true, when = window() and overall<-3 and close > MA) strategy.close(id="long", when = window() and overall>1) bgcolor(color = showDate and window() ? color.gray : na, transp = 90) plot(overall, color=color.black, title='Overall Percentage Change', linewidth=3) band1 = hline(1, "Upper Band", color=#C0C0C0) band0 = hline(-2, "Lower Band", color=#C0C0C0) fill(band1, band0, color=#9915FF, transp=90, title="Background") hline(0, title='Center Line', color=color.orange, linestyle=hline.style_solid, linewidth=2)