Diese Strategie kombiniert gleitende Durchschnitte, Preismuster und Volumen, um potenzielle Trendumkehrpunkte auf dem Markt zu identifizieren.
Die Kernidee dieser Strategie besteht darin, eine Kombination von gleitenden Durchschnitten, Preisbewegungsmustern und Volumen als Signale für bevorstehende Umkehrungen zu verwenden. Insbesondere können goldene Kreuze und Todeskreuze von gleitenden Durchschnitten auf Trendschwankungen hinweisen. Bullish/bearish Engulfing-Muster implizieren normalerweise kurzfristige Umkehrungen.
Logischerweise berechnet die Strategie zunächst schnelle und langsame gleitende Durchschnitte. Anschließend definiert sie Bedingungen zur Identifizierung von bullish/bearish Engulfing-Mustern. Unterstützungs- und Widerstandsniveaus werden zusammen mit Volumenerweiterung als zusätzliche Bedingungen berücksichtigt. Die Kaufsignale werden ausgelöst, wenn der schnelle MA über den langsamen MA überschreitet, ein bullishes Muster erscheint, der Widerstand bricht und das Volumen steigt. Die entgegengesetzten Bedingungen lösen Verkaufssignale aus.
Der größte Vorteil dieser Strategie besteht darin, eine Kombination von mehreren Signalen zu verwenden, um Umkehrungen zu bestätigen, was dazu beiträgt, falsche Signale zu vermeiden.
Darüber hinaus nutzt diese Strategie sowohl Trend- als auch Umkehrkonzepte. Umkehrungen werden nur nach einem bestehenden Trend gesucht. Mit anderen Worten, die Strategie sucht nur nach Gegentrend-Retracements innerhalb von Trendmärkten. Dies hilft, die Zufälligkeit zu reduzieren und die Rentabilität zu steigern.
Das größte Risiko dieser Strategie sind fehlgeschlagene Umkehrungen, bei denen sich der Preis nach Eintrittssignalen weiterhin gegen die Handelsrichtung bewegt.
Die Lösungen umfassen die Anpassung der gleitenden Durchschnittsperioden, um bessere Trends zu definieren, die Verwendung von breiteren Stop-Losses und die Einbeziehung mehrer Bestätigungsfaktoren vor dem Handel mit Umkehrsignalen.
Möglichkeiten der Optimierung dieser Strategie sind:
Anpassung der gleitenden Durchschnittsperioden, um optimale langfristige/kurzfristige Trends zu ermitteln.
Verschiedene Berechnungsmethoden für Unterstützung/Widerstand wie Pivot Points testen.
Ich versuche andere Volumen-Indikatoren wie Chaikin Geldfluss, Volumen-Oszillator.
Einbeziehung mehr Umkehrung Bestätigungsfaktoren wie langfristige Chart-Muster, riesige Volumen Spitzen usw.
Die Verwendung von Aktienindex-Futures zur Überprüfung von Signalen auf verschiedenen Märkten.
Durch strenge Tests von Parameterkombinationen können weitere Leistungsverbesserungen erzielt werden.
Diese Strategie kombiniert gleitende Durchschnitte, Preisbewegung und Volumen nur in Trendmärkten mit Umkehrungen.
/*backtest start: 2023-01-10 00:00:00 end: 2024-01-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Profit Table Strategy", overlay=true) // Input parameters fastLength = input(10, title="Fast MA Length") slowLength = input(20, title="Slow MA Length") takeProfitPercent = input(1, title="Take Profit (%)") / 100 stopLossPercent = input(1, title="Stop Loss (%)") / 100 trailingStopPercent = input(1, title="Trailing Stop (%)") / 100 // Price action conditions bullishEngulfing = close > open and close > open[1] and open < close[1] and open[1] > close[1] bearishEngulfing = close < open and close < open[1] and open > close[1] and open[1] < close[1] // Support and resistance levels supportLevel = input(100, title="Support Level") resistanceLevel = input(200, title="Resistance Level") // Volume conditions volumeCondition = volume > ta.sma(volume, 20) // Calculate moving averages fastMA = ta.sma(close, fastLength) slowMA = ta.sma(close, slowLength) // Buy condition buyCondition = (fastMA > slowMA) and (close > resistanceLevel) and bullishEngulfing and volumeCondition // Sell condition sellCondition = (fastMA < slowMA) and (close < supportLevel) and bearishEngulfing and volumeCondition // Strategy logic strategy.entry("Buy", strategy.long, when=buyCondition) strategy.close("Buy", when=sellCondition) // Calculate take profit, stop loss, and trailing stop levels takeProfitLevel = strategy.position_avg_price * (1 + takeProfitPercent) stopLossLevel = strategy.position_avg_price * (1 - stopLossPercent) trailingStopLevel = strategy.position_avg_price * (1 - trailingStopPercent) // Plotting levels on the chart plot(supportLevel, color=color.blue, style=plot.style_line, linewidth=2, title="Support Level") plot(resistanceLevel, color=color.purple, style=plot.style_line, linewidth=2, title="Resistance Level") plot(takeProfitLevel, color=color.green, style=plot.style_line, linewidth=2, title="Take Profit Level") plot(stopLossLevel, color=color.red, style=plot.style_line, linewidth=2, title="Stop Loss Level") plot(trailingStopLevel, color=color.orange, style=plot.style_line, linewidth=2, title="Trailing Stop Level") // Plotting buy and sell signals on the chart plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.labelup, location=location.belowbar) plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.labeldown, location=location.abovebar)