Liquiditäts-Sweep-Multi-Bestätigungsstrategie

LIQUIDITY VOLUME EMA Pivot
Erstellungsdatum: 2025-12-17 15:33:28 zuletzt geändert: 2025-12-17 15:33:28
Kopie: 10 Klicks: 288
2
konzentrieren Sie sich auf
421
Anhänger

Liquiditäts-Sweep-Multi-Bestätigungsstrategie Liquiditäts-Sweep-Multi-Bestätigungsstrategie

Liquiditätsausfall + Transaktionsbestätigung, das ist das wahre institutionelle Denken

Die Strategie kombiniert die drei Dimensionen der Liquiditätsscan, der Transaktionsschwankungen, der EMA-Trends, der 11-Zyklus-Schwankung zur Identifizierung der kritischen Unterstützungswiderstände und der 31-Zyklus-EMA-Filterung der Trendrichtung perfekt. Die Rückmeldung zeigt, dass die Mehrfachbestätigungsmechanismen die Störung durch falsche Durchbrüche effektiv reduzieren, aber auf Kosten der Signalfrequenz um etwa 30%.

Die Filter werden um ein Vielfaches vergrößert, um minderwertige Signale abzulehnen.

Das größte Problem mit einer normalen Fluiditäts-Scan-Strategie ist zu viel Lärm. Hier wird das 11-Zyklus-Transfer-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gewinn-Gew

Das Rückwärtssignal schaltet sofort ab, es wird nie Krieg geben.

Die schärfste Konstruktion ist hier: Sobald ein umgekehrtes Liquiditäts-Sweep-Signal auftritt, sofort auszugleichen. Diese “Refro” -Logik ist empfindlicher als ein traditioneller Stop-Loss und kann zu Beginn einer Trendwende zurückgezogen werden. In Kombination mit einem Preis-Refro-Sweep-Mechanismus nach 3 Perioden bildet dies einen Doppel-Schutz.

EMA-Untergang: Zwangs-Ausstieg, der Trend ist König

Die 31-Zyklus-EMA dient nicht nur als Eintrittsfilter, sondern auch als letzte Verteidigungslinie, um einen Ausstieg zu erzwingen. Die unbedingte Ausgleichsstellung bei einem Preisbruch der EMA spiegelt die Kernidee des “Trend ist König” wider. Historische Rückblenden zeigen, dass dieser Mechanismus einen starken Rückzug wirksam verhindert, aber in einem bewegten Umfeld häufig ausgelöst wird.

Signalverriegelung gegen Duplikate, um übermäßige Transaktionen zu vermeiden

Die Buy_Lock- und Sell_Lock-Codes sind sehr geschickt entworfen. Sobald ein Sweep-Signal ausgelöst wird, wird das Signal in derselben Richtung gesperrt, bis der Preis wieder in die Schlüsselposition zurückkehrt. Dies verhindert die Wiederholung von Positionen in derselben Welle und reduziert die Transaktionskosten und die Risikobereitschaft.

Anwendbarer Szenario: Trendbewusste und schwankende Märkte

Diese Strategie eignet sich am besten für ein Marktumfeld mit klaren Trends, aber hoher Volatilität. Sie funktioniert hervorragend bei einseitigen Auf- oder Abwärtsbewegungen, wird aber häufig bei Querplattenbewegungen unterbrochen. Es wird empfohlen, sie auf Tageszeiten zu verwenden, da die Geräusche auf Minutenniveau zu groß sind.

Risiko-Hinweis: Vergangenheit ist kein Hinweis auf zukünftige Erträge

Die Strategie besteht in der Gefahr, kontinuierlich zu verlieren, insbesondere wenn sich die Marktstruktur ändert. Die Schwankungen der 11-Zyklus-Identifizierung können unter bestimmten Extremsituationen fehlschlagen, und die 31-Zyklus-EMA ist in einer schnellen Umkehrung rückständig. Es wird empfohlen, die Einzelsituation auf nicht mehr als 10% des Gesamtkapitals zu begrenzen und die Parameter an die Marktbedingungen anzupassen.

Strategiequellcode
/*backtest
start: 2024-12-17 00:00:00
end: 2025-12-15 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":500000}]
*/

//@version=5
strategy(
     "Liquidity Sweep + Volume + OB + EMA Cross Exit (Fixed)",
     overlay=true,
     max_boxes_count=500,
     max_lines_count=500,
     initial_capital=100000,
     default_qty_type=strategy.percent_of_equity,
     default_qty_value=10,
     pyramiding=1)

//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// INPUTS
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
len = input.int(11, "Swing Length", minval=1)

volLen  = input.int(11, "Volume MA Length", group="Volume Filter")
volMult = input.float(1, "Volume Multiplier", step=0.1, group="Volume Filter")

emaLength  = input.int(31, "EMA Length", minval=1, group="EMA Filter")
extendBoxes = input.bool(true, "Extend Boxes")

//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// EMA
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
emaVal = ta.ema(close, emaLength)
plot(emaVal, title="EMA", color=color.orange)


//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// COLORS
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
buyCol   = color.lime
sellCol  = color.red

liqBuyCol  = color.new(color.lime, 85)
liqSellCol = color.new(color.red, 85)

obBuyCol  = color.new(color.green, 75)
obSellCol = color.new(color.maroon, 75)

//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// VOLUME FILTER
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
volMA   = ta.sma(volume, volLen)
highVol = volume > volMA * volMult

//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// PIVOTS
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ph = ta.pivothigh(len, len)
pl = ta.pivotlow(len, len)

var float lastPH = na
var float lastPL = na

if not na(ph)
    lastPH := ph
if not na(pl)
    lastPL := pl

//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// LIQUIDITY SWEEPS
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
sellSweep = not na(lastPH) and high > lastPH and close < lastPH and highVol
buySweep  = not na(lastPL) and low  < lastPL and close > lastPL and highVol

//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// ANTI-SPAM LOCK
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
var bool buyLock  = false
var bool sellLock = false

if buySweep
    buyLock := true
else if not na(lastPL) and close < lastPL
    buyLock := false

if sellSweep
    sellLock := true
else if not na(lastPH) and close > lastPH
    sellLock := false

buySignal  = buySweep  and not buyLock[1]
sellSignal = sellSweep and not sellLock[1]

//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// TRADE STATE
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
var float entryPrice = na
var int   entryBar   = na
var int   entryDir   = 0   // 1 = BUY, -1 = SELL
var bool  tradeAlive = false

//━━━━━━━━ ENTRY ━━━━━━━━━━━━━━━━━━━
if buySignal and not tradeAlive
    strategy.entry("BUY", strategy.long)
    entryPrice := close
    entryBar   := bar_index
    entryDir   := 1
    tradeAlive := true

if sellSignal and not tradeAlive
    strategy.entry("SELL", strategy.short)
    entryPrice := close
    entryBar   := bar_index
    entryDir   := -1
    tradeAlive := true

barsFromEntry = tradeAlive ? bar_index - entryBar : na

//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// EXIT LOGIC
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
exitBuyAfter3  = tradeAlive and entryDir == 1  and barsFromEntry >= 3 and close < entryPrice
exitSellAfter3 = tradeAlive and entryDir == -1 and barsFromEntry >= 3 and close > entryPrice

exitOppBuy  = tradeAlive and entryDir == 1  and sellSignal
exitOppSell = tradeAlive and entryDir == -1 and buySignal

// EMA downside cross exit
emaCrossDown = tradeAlive and ta.crossunder(close, emaVal)
exitEMA      = emaCrossDown

exitSignal = exitBuyAfter3 or exitSellAfter3 or exitOppBuy or exitOppSell or exitEMA

if exitSignal
    if entryDir == 1
        strategy.close("BUY")
    if entryDir == -1
        strategy.close("SELL")

    tradeAlive := false
    entryPrice := na
    entryBar   := na
    entryDir   := 0

//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// PLOTS
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
plotshape(buySignal,  "BUY",  shape.labelup,   location.belowbar, color=buyCol,  text="BUY",  textcolor=color.black)
plotshape(sellSignal, "SELL", shape.labeldown, location.abovebar, color=sellCol, text="SELL", textcolor=color.white)

plotshape(exitBuyAfter3,  "EXIT BUY 3+",  shape.xcross, location.abovebar, color=color.orange)
plotshape(exitSellAfter3, "EXIT SELL 3+", shape.xcross, location.belowbar, color=color.orange)

plotshape(exitOppBuy,  "EXIT BUY OPP",  shape.flag, location.abovebar, color=color.yellow)
plotshape(exitOppSell, "EXIT SELL OPP", shape.flag, location.belowbar, color=color.yellow)

plotshape(exitEMA and entryDir == 1, "EXIT EMA BUY",  shape.triangledown, location.abovebar, color=color.blue)
plotshape(exitEMA and entryDir == -1, "EXIT EMA SELL", shape.triangleup,  location.belowbar, color=color.blue)

//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// ALERTS
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
alertcondition(buySignal,  "BUY Alert",  "Liquidity Sweep BUY")
alertcondition(sellSignal, "SELL Alert", "Liquidity Sweep SELL")
alertcondition(exitEMA,title="EXIT EMA CROSS",message="Price crossed below EMA")