Kauf von Dips - MA200 Optimierte Strategie

Schriftsteller:ChaoZhang, Datum: 2024-01-08 16:54:21
Tags:

img

Übersicht

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.

Strategieprinzip

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.

Analyse der Vorteile

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.

Risikoanalyse

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.

Optimierungsrichtlinien

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.

Zusammenfassung

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)

Mehr