Der Zweck dieser Strategie besteht darin, die Umkehrpunkte von kurzfristigen Abwärtstrends von Vermögenswerten zu identifizieren und an diesen Punkten einen festen Geldbetrag zu investieren.
Diese Strategie funktioniert monatlich, wobei 240 1-Stunden-Streifen pro Monat verwendet werden, um den Zeitpunkt der Trendumkehrung zu bestimmen.
Insbesondere berechnet die Strategie die Differenz zwischen schneller EMA und langsamer EMA (EMA_CD) sowie die Signallinie von EMA_CD. Wenn die schnelle Linie über die Signallinie geht, bestimmt sie das Ende eines kurzfristigen Abwärtstrends und löst ein Kaufsignal aus.
Nach dem Kaufsignal schließt die Strategie alle Positionen am Ende des Monats, und wiederholt sich der Prozess im nächsten Monat mit einem festen, regelmäßigen Kauf und Halten für einen Monat.
Dies erlaubt es uns, am Ende von kurzfristigen Rückgängen und Dollarpreisdurchschnitt in festen Abständen zu befischen.
Der größte Vorteil dieser Strategie besteht darin, dass sie die Märkte im Bereich herausfiltern und nur an Trendumkehrpunkten kaufen kann, wodurch die Dollarkosten zu relativ besseren Preisen durchschnittlich werden.
Auch kann die Verwendung von EMA zur Bestimmung von Umkehrpunkten stabiler und genauer sein als nur auf Kerzenumkehrungen zu achten.
Schließlich wird der monatliche Stop-Loss für jede Monatsinvestition auf die Performance gesetzt, wodurch der maximale Verlust pro Monat begrenzt wird.
Das größte Risiko dieser Strategie besteht darin, dass die Preise nach dem Kauf weiter sinken, was zum Stop-Loss am Monatsende führt.
Wir können die Parameter der EMA optimieren, um die Identifizierung zu verbessern, oder andere Indikatoren wie RSI kombinieren, um Umkehrsignale zu bestätigen.
Ein weiteres Risiko ist die Stop-Loss-Ebene. Ein zu enge Stop-Loss kann durch kurzfristige Schwankungen leicht gestoppt werden. Ein zu breiter Stop-Loss kann Verluste nicht begrenzen. Der optimale Parameter muss durch das Testen verschiedener Stop-Loss-Ebenen gefunden werden.
Die Strategie kann in folgenden Bereichen verbessert werden:
Optimieren Sie EMA-Perioden, um die optimale Parameterkombination für die Identifizierung von Umkehrungen zu finden.
Fügen Sie andere Filter wie RSI hinzu, um Umkehrsignale zu bestätigen.
Testen Sie verschiedene Stop-Loss-Levels, um den optimalen Punkt zu finden, der die Verlustverhütung maximiert, ohne dass Sie geschlagen werden.
Überlegen Sie, ob Sie einen Trailing-Stop zusätzlich zum Stop-Loss hinzufügen, um den Stop-Level dynamisch anhand des Preises anzupassen.
Testen Sie verschiedene Zeitrahmen wie täglich oder wöchentlich, um zu sehen, welche für diese Strategie am besten funktioniert.
Die allgemeine Idee dieser Strategie ist einfach und klar - mit EMA, um kurzfristige Trendumkehrungen zu identifizieren, und Dollar-Kosten-Durchschnitt an Umkehrpunkten monatlich. Es kann effektiv herausfiltern, unruhige Märkte und investieren zu relativ niedrigen Preisen. Der Optimierungsraum liegt hauptsächlich in Parameter-Tuning und Stop-Loss-Techniken. Insgesamt ist dies ein ausgezeichnetes Strategie-Konzept für die Zuweisung von Anlagen, die es wert sind, weiter getestet und verbessert.
/*backtest start: 2023-09-07 00:00:00 end: 2023-10-07 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © BHD_Trade_Bot // @version=5 // strategy( // shorttitle = 'DCA After Downtrend', // title = 'DCA After Downtrend (by BHD_Trade_Bot)', // overlay = true, // calc_on_every_tick = true, // calc_on_order_fills = true, // use_bar_magnifier = true, // pyramiding = 100, // initial_capital = 0, // default_qty_type = strategy.cash, // default_qty_value = 1000, // commission_type = strategy.commission.percent, // commission_value = 0.1) // Backtest Time Period start_year = input(title='Start year' ,defval=2017) start_month = input(title='Start month' ,defval=1) start_day = input(title='Start day' ,defval=1) start_time = timestamp(start_year, start_month, start_day, 00, 00) end_year = input(title='end year' ,defval=2050) end_month = input(title='end month' ,defval=1) end_day = input(title='end day' ,defval=1) end_time = timestamp(end_year, end_month, end_day, 23, 59) window() => true // EMA ema50 = ta.ema(close, 50) ema200 = ta.ema(close, 200) // EMA_CD emacd = ema50 - ema200 emacd_signal = ta.ema(emacd, 20) hist = emacd - emacd_signal // Count n candles after x long entries var int nPastCandles = 0 var int entryNumber = 0 nPastCandles := nPastCandles + 1 // ENTRY CONDITIONS // 8 hours per day => 240 hours per month entry_condition1 = nPastCandles > entryNumber * 240 // End of downtrend entry_condition2 = ta.crossover(emacd, emacd_signal) ENTRY_CONDITIONS = entry_condition1 and entry_condition2 if ENTRY_CONDITIONS and window() entryNumber := entryNumber + 1 entryId = 'Long ' + str.tostring(entryNumber) strategy.entry(entryId, strategy.long) // CLOSE CONDITIONS // Last bar CLOSE_CONDITIONS = barstate.islast if CLOSE_CONDITIONS strategy.close_all() // Draw plot(ema50, color=color.orange, linewidth=3) plot(ema200, color=entry_condition1 ? color.green : color.red, linewidth=3)