
Es ist eine integrierte Handelsstrategie, die eine Kreuzung von Moving Averages, die Identifizierung von Angebots- und Nachfragegebieten und die dynamische Stop-Loss-Stop-Strategie kombiniert. Die Strategie bestimmt die Richtung des Handels durch die Kreuzung von kurz- und langfristigen Moving Averages, während die Angebots- und Nachfragegebiete als wichtige Preisstützpunkte und Widerstandspunkte genutzt werden, und die Risiken in Verbindung mit den prozentualen Stop-Loss-Stopps verwaltet werden. Der Kern der Strategie besteht darin, Positionen nur in der Nähe bestimmter Angebots- und Nachfragegebiete zu eröffnen, wodurch die Gewinnrate des Handels erhöht wird.
Die Strategie verwendet ein einfaches Moving Average (SMA) mit 9 und 21 Zyklen, um die Richtung des Trends zu bestimmen. Das System gibt mehrere Signale aus, wenn der Preis in der Nachfragezone (Unterstützungsbereich) 1% liegt und die kurzfristige Durchschnittslinie die langfristige Durchschnittslinie aufwärts überquert. Das System gibt ein Leersignal aus, wenn der Preis in der Versorgungszone (Widerstandsbereich) 1% liegt und die kurzfristige Durchschnittslinie die langfristige Durchschnittslinie nach unten überquert.
Es ist ein Strategie-System, das klassische Methoden der technischen Analyse mit modernen Risikomanagement-Konzepten kombiniert. Die Strategie bietet einen relativ zuverlässigen Handelsrahmen, indem sie in der Nähe von wichtigen Preisregionen gehandelt wird und in Kombination mit einem beweglichen Durchschnittskreuzsignal. Die Konzeption von dynamischen Stop-Loss-Stopps hilft bei der Anpassung an verschiedene Marktumgebungen, aber die praktische Anwendung der Strategie muss auch an die spezifischen Markteigenschaften angepasst werden.
/*backtest
start: 2024-12-01 00:00:00
end: 2025-02-01 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("MA Crossover with Demand/Supply Zones + Stop Loss/Take Profit", overlay=true)
// Input parameters for Moving Averages
shortLength = input.int(9, title="Short MA Length", minval=1)
longLength = input.int(21, title="Long MA Length", minval=1)
// Input parameters for Demand/Supply Zones
zoneLookback = input.int(50, title="Zone Lookback Period", minval=10)
zoneStrength = input.int(2, title="Zone Strength (Candles)", minval=1)
// Input parameters for Stop Loss and Take Profit
stopLossPerc = input.float(1.0, title="Stop Loss (%)", minval=0.1) / 100
takeProfitPerc = input.float(2.0, title="Take Profit (%)", minval=0.1) / 100
// Calculate moving averages
shortMA = ta.sma(close, shortLength)
longMA = ta.sma(close, longLength)
// Plot moving averages
plot(shortMA, color=color.blue, title="Short MA")
plot(longMA, color=color.red, title="Long MA")
// Identify Demand and Supply Zones
var float demandZone = na
var float supplyZone = na
// Detect Demand Zones (Price makes a significant low and bounces up)
if (ta.lowest(low, zoneLookback) == low[zoneStrength] and close[zoneStrength] > open[zoneStrength])
demandZone := low[zoneStrength]
// Detect Supply Zones (Price makes a significant high and drops down)
if (ta.highest(high, zoneLookback) == high[zoneStrength] and close[zoneStrength] < open[zoneStrength])
supplyZone := high[zoneStrength]
// Draw Demand and Supply Zones using lines
var line demandLine = na
var line supplyLine = na
// Trade Logic: Only open trades near Demand/Supply Zones
isNearDemand = demandZone > 0 and close <= demandZone * 1.01 // Within 1% of demand zone
isNearSupply = supplyZone > 0 and close >= supplyZone * 0.99 // Within 1% of supply zone
// Calculate Stop Loss and Take Profit levels
stopLossLevel = strategy.position_avg_price * (1 - stopLossPerc) // Stop loss for long positions
takeProfitLevel = strategy.position_avg_price * (1 + takeProfitPerc) // Take profit for long positions
stopLossLevelShort = strategy.position_avg_price * (1 + stopLossPerc) // Stop loss for short positions
takeProfitLevelShort = strategy.position_avg_price * (1 - takeProfitPerc) // Take profit for short positions
// Generate buy/sell signals based on MA crossover and zones
if (ta.crossover(shortMA, longMA) and isNearDemand)
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", stop=stopLossLevel, limit=takeProfitLevel)
if (ta.crossunder(shortMA, longMA) and isNearSupply)
strategy.entry("Sell", strategy.short)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", stop=stopLossLevelShort, limit=takeProfitLevelShort)
// Optional: Plot buy/sell signals on the chart
plotshape(series=ta.crossover(shortMA, longMA) and isNearDemand, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=ta.crossunder(shortMA, longMA) and isNearSupply, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")