Die Ressourcen sind geladen. Beförderung...

Erweiterte Eintrittsstrategie basierend auf gleitendem Durchschnitt, Unterstützung/Widerstand und Volumen

Schriftsteller:ChaoZhang, Datum: 2024-06-14 15:40:46
Tags:

img

Übersicht

Diese Strategie kombiniert drei technische Indikatoren: einfacher gleitender Durchschnitt (SMA), Unterstützungs- und Widerstandsniveaus und erhöhtes Handelsvolumen, um eine umfassende Handelsstrategie zu konstruieren.

Strategieprinzip

  1. Berechnen der SMA, Unterstützung und Widerstandsniveau für einen bestimmten Zeitraum.
  2. Bestimmen Sie, ob sich das aktuelle Handelsvolumen im Vergleich zum Vorjahr erhöht hat.
  3. Long-Entry-Bedingung: Der aktuelle Schlusskurs ist größer als der Schlusskurs des vorhergehenden Zeitraums, größer als der SMA und das Unterstützungsniveau, und der Preis befindet sich in einem bestimmten Abstand vom Widerstandsniveau, begleitet von einem Anstieg des Handelsvolumens.
  4. Kurze Eintrittsbedingung: Der aktuelle Schlusskurs ist niedriger als der Schlusskurs des vorhergehenden Zeitraums, niedriger als der SMA und das Unterstützungsniveau, und der Preis befindet sich in einem gewissen Abstand vom Widerstandsniveau, begleitet von einem Anstieg des Handelsvolumens.
  5. Stand-Loss-Bedingung: Der lange Stand-Loss-Preis ist der Einstiegspreis multipliziert mit (1 - Stop-Loss-Prozent) und der kurze Stand-Loss-Preis ist der Einstiegspreis multipliziert mit (1 + Stop-Loss-Prozent).

Analyse der Vorteile

  1. Durch die Kombination mehrerer technischer Indikatoren werden die Zuverlässigkeit und Stabilität der Strategie verbessert.
  2. Die Berechnung der Preisausbrüche der SMA sowie der Unterstützungs-/Widerstandsniveaus ermöglicht eine bessere Nutzung von Trendchancen.
  3. Durch die Einführung des Handelsvolumenindikators wird sichergestellt, dass Preisausbrüche durch eine ausreichende Marktbeteiligung begleitet werden und die Wirksamkeit der Signale erhöht wird.
  4. Die Festlegung von Stop-Loss-Bedingungen kontrolliert das Handelsrisiko wirksam.

Risikoanalyse

  1. Die Berechnung der Unterstützungs- und Widerstandsniveaus stützt sich auf historische Daten und kann bei erheblichen Marktschwankungen an Wirksamkeit verlieren.
  2. Der Handelsvolumenindikator kann abnormale Schwankungen aufweisen, die zu falschen Signalen führen.
  3. Die Einstellung der Stop-Loss-Bedingung kann Verluste in extremen Marktsituationen nicht vollständig vermeiden.

Optimierungsrichtung

  1. Es sollte in Betracht gezogen werden, andere technische Indikatoren wie den Relative Strength Index (RSI) oder die Moving Average Convergence Divergence (MACD) einzuführen, um die Zuverlässigkeit der Handelssignale weiter zu validieren.
  2. Optimierung der Berechnungsmethode für Unterstützungs- und Widerstandsniveaus, beispielsweise durch eine dynamischere Herangehensweise, um sich an unterschiedliche Marktbedingungen anzupassen.
  3. Der Handelsvolumen-Indikator soll glättet werden, um die Auswirkungen von abnormalen Schwankungen auf die Strategie zu verringern.
  4. Optimieren Sie die Einstellung von Stop-Loss-Bedingungen, z. B. durch die Verwendung eines Trailing-Stop-Loss oder die dynamische Anpassung des Stop-Loss-Prozentsatzes anhand der Marktvolatilität.

Zusammenfassung

Diese Strategie kombiniert die SMA, Unterstützungs- und Widerstandsniveaus und Handelsvolumenindikatoren, um eine umfassende Handelsstrategie zu konstruieren. Der Vorteil der Strategie liegt in ihrer Fähigkeit, Trendchancen zu erfassen und gleichzeitig das Handelsrisiko zu kontrollieren. Die Strategie hat jedoch auch bestimmte Einschränkungen, wie z. B. die Anpassungsfähigkeit an extreme Marktsituationen, die verbessert werden müssen. In Zukunft kann die Strategie verbessert werden, indem andere technische Indikatoren eingeführt werden, die Berechnungsmethode für Unterstützungs- und Widerstandsniveaus optimiert, der Handelsvolumenindikator glättet und Stop-Loss-Bedingungen optimiert werden, um ihre Stabilität und Rentabilität zu verbessern.


/*backtest
start: 2023-06-08 00:00:00
end: 2024-06-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Advanced Entry Conditions with Support/Resistance, SMA, and Volume", overlay=true)

// Inputs
length = input(20, title="SMA Length")
stopLossPerc = input(1, title="Stop Loss Percentage", type=input.float) / 100
leftBars = input(15, title="Left Bars")
rightBars = input(15, title="Right Bars")
distanceThresh = input(1, title="Distance Threshold from Support/Resistance", type=input.float) / 100

// Calculations
smaValue = sma(close, length)
highUsePivot = fixnan(pivothigh(leftBars, rightBars)[1])
lowUsePivot = fixnan(pivotlow(leftBars, rightBars)[1])

// Volume Calculation
volumeIncrease = volume > volume[1]

// Entry Conditions
longEntryCondition = close[0] > close[1] and close[1] > smaValue and close[0] > smaValue and close[0] > lowUsePivot and close[1] > lowUsePivot and abs(close[0] - highUsePivot) > distanceThresh and volumeIncrease
shortEntryCondition = close[0] < close[1] and close[1] < smaValue and close[0] < smaValue and close[0] < lowUsePivot and close[1] < lowUsePivot and abs(close[0] - highUsePivot) > distanceThresh and volumeIncrease

// Calculate stop loss levels
longStopLoss = close * (1 - stopLossPerc)
shortStopLoss = close * (1 + stopLossPerc)

// Strategy Logic
strategy.entry("Long", strategy.long, when=longEntryCondition)
strategy.exit("Exit Long", "Long", stop=longStopLoss)

strategy.entry("Short", strategy.short, when=shortEntryCondition)
strategy.exit("Exit Short", "Short", stop=shortStopLoss)

// Plotting
plot(smaValue, color=color.blue, title="SMA")
plot(highUsePivot, color=color.red, linewidth=2, title="Resistance")
plot(lowUsePivot, color=color.green, linewidth=2, title="Support")

plotshape(series=longEntryCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Long Entry")
plotshape(series=shortEntryCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Short Entry")

// Background Color
bgcolor(longEntryCondition ? color.new(color.green, 90) : shortEntryCondition ? color.new(color.red, 90) : na)


Mehr