
Die Strategie nutzt die Angebots- und Nachfragezone, den Index-Moving Average (EMA) und den Index-Moving Stop (ATR) für die Beurteilung von Handelssignalen. Der Benutzer kann die EMA-Parameter-Einstellungen und die Sichtbarkeit von Kauf- und Verkaufssignalen anpassen. Die Strategie markiert die Angebotsregionen wie höher höher (HH), niedriger niedriger (LL), niedriger höher LH und höher niedriger H. Nach der Bestätigung des Signals der dritten K-Linie werden Handelsanweisungen ausgegeben.
Der EMA bewegt sich durchschnittlich:
ATR-Durchschnittswirkungsgrad:
Diese Berechnungen werden verwendet, um EMA-Trends zu beurteilen und ATR-Moving-Stops auf Basis von Marktfluktuationen zu setzen. Die Strategie soll ein Kauf- und Verkaufssignal basierend auf der Beziehung zwischen dem Schlusskurs, den EMA- und den ATR-Werten liefern.
Die Strategie verwendet die Begriffe HHH (höher, höher), LLL (niedriger, niedriger), HLH (hoher, niedriger) und LHH (niedriger, höher) zur Identifizierung verschiedener Preisverhaltensmuster, die häufig in der Trendanalyse verwendet werden:
Höherer HöhererDie aktuellen Höchststände sind höher als die vorherigen Höchststände, was auf eine potenzielle Aufwärtsbewegung hindeutet.
Niedrigere NiedrigereDer aktuelle Preistief ist niedriger als der vorherige, was auf eine potenzielle Abwärtsbewegung hindeutet.
Hoher und niedrigerDer aktuelle Preistief ist höher als der vorherige, was darauf hindeutet, dass sich der potenzielle Aufwärtstrend fortsetzt.
Niedrigerer, höhererDie aktuellen Höchststände sind niedriger als die vorherigen Höchststände, was darauf hindeutet, dass der potenzielle Abwärtstrend fortgesetzt wird.
Diese Modelle können in Kombination mit anderen technischen Indikatoren verwendet werden, um eine Umkehrung oder Fortsetzung eines potenziellen Trends zu bestimmen. Die Strategie nutzt diese Modelle, um Ein- oder Ausstiegsmomente zu erkennen.
EintrittszeichenDer dritte K-Linie-Ausgang erzeugt ein Kauf-/Verkaufssignal, wenn der Preis höher/nieder als der Höchst-/Tiefstpreis des Vortages ist.
Verlustbewältigung: mit einer bestimmten Multiplikation des ATR-Wertes (default 2x) als Rücknahme-Stopppunkt.
Die Strategie, die mehrere technische Indikatoren wie Trends, Umkehrungen, Volatilität und Preisverhältnisse analysiert, hat sich in der Rückmeldung gut entwickelt. Die Strategie ist eine grundlegende Strategie, die erweitert werden kann, wenn sie mit anderen Faktoren oder Modellen kombiniert wird.
/*backtest
start: 2023-12-18 00:00:00
end: 2024-01-17 00:00:00
period: 2h
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)