
Diese Strategie verwendet eine Kombination aus Dynamikindikatoren und Durchschnittslinien, um Markttrends und Wendepunkte zu identifizieren und bei Trendwende zu handeln. Sie gehört zu den Strategien für Trendverfolgung und Gegenwärtigkeitshandel. Sie besteht hauptsächlich aus Modulen wie Angebots- und Nachfragezonen, EMA-Einheit, verschiedene HH-, LL-, LH- und HL-Freiheitszonenmarkierungen und ATR-Stopp.
Die K-Linien unterscheiden die Angebots-Nachfrage-Beziehungen nach den Höhen und Tiefen, wobei die roten Bereiche die Überangebots-Bereiche und die grünen die Bedarfsbereiche darstellen, die überangeboten sind.
Die EMA-Mittellinie mit einer Länge von 200 wird berechnet und durch die Größenverhältnis zwischen dem Preis und der EMA beurteilt. Preise, die über der EMA liegen, werden als Aufwärtstrend betrachtet, Preise, die unter der EMA liegen, als Abwärtstrend.
Die Umkehrzonen wurden nach den letzten beiden Höhen- und Tiefpunkten der K-Linie beurteilt:
Berechnen Sie den ATR für 14 Zyklen und multiplizieren Sie den Faktor 2 mit dem Stop-Loss für diese Strategie.
Die Überwachung des Preises bezieht sich auf die Höhe und das Tief des Kline am Vortag. Wenn der Preis höher ist als der Hoch des Vortages, wird ein Mehrkopfsignal erzeugt. Wenn der Preis niedriger ist als der Tief des Vortages, wird ein Leerkopfsignal erzeugt.
Die Risiken können auf folgende Weise gelöst werden:
Die Strategie, die eine umfassende Anwendung von Angebots- und Bedarfsanalyse, Trendbeurteilung, Reverse-Identifikation und Stop-Loss-Management-Modulen umfasst, ist eine effektive Strategie zur Trendverfolgung und Gegenwärtigkeits-Handelsstrategie, um die Chancen für eine Marktumkehr in wichtigen Regionen effektiv zu identifizieren. Gleichzeitig muss die Strategie ständig getestet und optimiert werden, um langfristige stabile Erträge zu erzielen.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-20 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Supply and Demand Zones with EMA and Trailing Stop", shorttitle="SD Zones", overlay=true)
showBuySignals = input(true, title="Show Buy Signals", group="Signals")
showSellSignals = input(true, title="Show Sell Signals", group="Signals")
showHLZone = input(true, title="Show HL Zone", group="Zones")
showLHZone = input(true, title="Show LH Zone", group="Zones")
showHHZone = input(true, title="Show HH Zone", group="Zones")
showLLZone = input(true, title="Show LL Zone", group="Zones")
emaLength = input(200, title="EMA Length", group="EMA Settings")
atrLength = input(14, title="ATR Length", group="Trailing Stop")
atrMultiplier = input(2, title="ATR Multiplier", group="Trailing Stop")
// Function to identify supply and demand zones
getZones(src, len, mult) =>
base = request.security(syminfo.tickerid, "D", close)
upper = request.security(syminfo.tickerid, "D", high)
lower = request.security(syminfo.tickerid, "D", low)
multiplier = request.security(syminfo.tickerid, "D", mult)
zonetype = base + multiplier * len
zone = src >= zonetype
[zone, upper, lower]
// Identify supply and demand zones
[supplyZone, _, _] = getZones(close, high[1] - low[1], 1)
[demandZone, _, _] = getZones(close, high[1] - low[1], -1)
// Plot supply and demand zones
bgcolor(supplyZone ? color.new(color.red, 80) : na)
bgcolor(demandZone ? color.new(color.green, 80) : na)
// EMA with Linear Weighted method
ema = ta.ema(close, emaLength)
// Color code EMA based on its relation to candles
emaColor = close > ema ? color.new(color.green, 0) : close < ema ? color.new(color.red, 0) : color.new(color.yellow, 0)
// Plot EMA
plot(ema, color=emaColor, title="EMA")
// Entry Signal Conditions after the third candle
longCondition = ta.crossover(close, high[1]) and (bar_index >= 2)
shortCondition = ta.crossunder(close, low[1]) and (bar_index >= 2)
// Trailing Stop using ATR
atrValue = ta.atr(atrLength)
trailStop = close - atrMultiplier * atrValue
// Strategy Entry and Exit
if (longCondition)
strategy.entry("Buy", strategy.long)
strategy.exit("TrailStop", from_entry="Buy", loss=trailStop)
if (shortCondition)
strategy.entry("Sell", strategy.short)
strategy.exit("TrailStop", from_entry="Sell", loss=trailStop)
// Plot Entry Signals
plotshape(series=showBuySignals ? longCondition : na, title="Buy Signal", color=color.new(color.green, 0), style=shape.triangleup, location=location.belowbar)
plotshape(series=showSellSignals ? shortCondition : na, title="Sell Signal", color=color.new(color.red, 0), style=shape.triangledown, location=location.abovebar)
// Plot Trailing Stop
plot(trailStop, color=color.new(color.red, 0), title="Trailing Stop")
// Plot HH, LL, LH, and HL zones
plotshape(series=showHHZone and ta.highest(high, 2)[1] and ta.highest(high, 2)[2] ? 1 : na, title="HH Zone", color=color.new(color.blue, 80), style=shape.triangleup, location=location.abovebar)
plotshape(series=showLLZone and ta.lowest(low, 2)[1] and ta.lowest(low, 2)[2] ? 1 : na, title="LL Zone", color=color.new(color.blue, 80), style=shape.triangledown, location=location.belowbar)
plotshape(series=showLHZone and ta.highest(high, 2)[1] and ta.lowest(low, 2)[2] ? 1 : na, title="LH Zone", color=color.new(color.orange, 80), style=shape.triangleup, location=location.abovebar)
plotshape(series=showHLZone and ta.lowest(low, 2)[1] and ta.highest(high, 2)[2] ? 1 : na, title="HL Zone", color=color.new(color.orange, 80), style=shape.triangledown, location=location.belowbar)