Handelsstrategie zur Umkehrung des Angebots-Nachfrage-Impulses

Schriftsteller:ChaoZhang, Datum: 2024-01-22 17:34:05
Tags:

img

Übersicht

Diese Strategie kombiniert Momentum-Indikatoren und gleitende Durchschnitte, um Markttrends und Umkehrpunkte für den Handel zu identifizieren, wenn der Trend die Richtung ändert. Sie gehört zu Trend- und Countertrend-Handelsstrategien. Zu den Hauptkomponenten gehören Angebot und Nachfragezonen, EMA, verschiedene HH, LL, LH, HL-Lange- und Kurzzonen, ATR-Trailing-Stop-Loss usw.

Strategie Logik

1. Identifizierung von Angebot und Nachfrage

Unterscheiden Sie das Angebot und die Nachfrage bezogen auf den hohen und niedrigen Bereich von Kline. Rote Flächen zeigen, dass das Angebot die Nachfrage-Versorgungszonen übersteigt. Grüne Flächen zeigen, dass die Nachfrage die Nachfrage-Versorgungszonen übersteigt.

2. EMA-Trendbeurteilung

Der Preis über der EMA gilt als Aufwärtstrend, während der Preis unterhalb der EMA als Abwärtstrend gilt.

3. Lange- und Kurzzonenmarkierung

Bestimmung der Umkehrzonen auf der Grundlage der letzten zwei Höchst- und Tiefpunkte der Kerze:

  • HH-Zone (Höhere Hochzone) - 2 aufeinanderfolgende Kerzenhöhe machen höhere hohe
  • LL-Zone (Low Low Zone) - 2 aufeinanderfolgende Kerzenniedrigkeiten machen niedrigere Niedrigkeiten
  • LH-Zone (Low High Zone) - jüngste Umkehrung des höheren Höchststandes in den unteren Höchststand
  • HL-Zone (Höhere Niedrig-Zone) - jüngste Umkehrung des niedrigeren Niedrigs in einen höheren Niedrig

4. ATR Trailing Stop Loss

Der Wert des ATR für die Periode 14 wird mit einem Faktor von 2 multipliziert, um den Stop-Loss-Level abzuleiten.

5. Eintritt und Stop-Loss-Ausgang

Überwachen Sie die Preisbeziehung zu den vorherigen High/Low-Punkten der Kerze. Das Long-Signal wird ausgelöst, wenn der Preis über das vorherige High bricht. Das Short-Signal wird ausgelöst, wenn der Preis unter das vorherige Tief bricht. Verzögern Sie die Bestätigung des Eintrittssignals bis zur 3. Kerze, um falsche Signale zu vermeiden. Verlassen Sie den Stop-Loss, wenn der Preis über das ATR-Stop-Loss-Level zurückzieht.

Analyse der Vorteile

  1. Nutzen Sie mehrere Indikatoren, um Trends und wichtige Umkehrbereiche zu identifizieren, um die Rentabilität zu verbessern.
  2. ATR-Stop Loss kann das Risiko eines Verlustes pro Handel effektiv begrenzen.
  3. Eine verzögerte Eingangssignalbestätigung minimiert den falschen Handel.

Risikoanalyse

  1. Wenn man sich ausschließlich auf technische Indikatoren stützt, ohne die grundlegenden Informationen zu berücksichtigen, kann dies zu Fehlverkäufen aufgrund fehlender Schlüsseldaten führen.
  2. ATR-Stop-Loss kann bei hoher Volatilität überschritten werden, was zu Verlusten führt.
  3. Häufige EMA-Umkehrsignale während der Schwellenmärkte können zu einem Überhandel führen.

Risikolösungen:

  1. Ergänzung durch wirtschaftliche Daten und politische Urteile.
  2. Ein breiterer Puffer für den ATR-Multiplikator-Koeffizienten ist zulässig.
  3. Einstellung des ATR-Periodenparameters, um Empfindlichkeit während der Bereiche zu vermeiden.

Möglichkeiten zur Verbesserung

  1. Ergänzung mit technischen Indikatoren wie MACD, RSI usw. zur Verbesserung des Timings.
  2. Zur Optimierung werden verschiedene Kombinationen von Perioden- und Multiplikatorparametern getestet.
  3. Überlegen Sie, ob Sie einen erneuten Ausbruchfilter hinzufügen, um Signalstörungen zu vermeiden.
  4. Einsatz von maschinellem Lernen usw. zur dynamischen Optimierung von Parametern.

Schlussfolgerung

Diese Strategie kombiniert Angebot / Nachfrageanalyse, Trendbestimmung, Umkehridentifizierung und Risikomanagement-Module, um Marktumkehrchancen in Schlüsselbereichen effektiv zu erkennen. Es ist ein robustes System für Trendverfolgung und Gegentrend-Setups. Kontinuierliche Tests, Optimierung und menschliche Erfahrungsurteile sind für langfristige stabile Gewinne von entscheidender Bedeutung.


/*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)


Mehr