Estrategia de cazador de liquidez del oro

EMA Pivot ATR Liquidity Sweep
Fecha de creación: 2025-11-06 11:42:28 Última modificación: 2025-11-06 11:42:28
Copiar: 0 Número de Visitas: 197
2
Seguir
319
Seguidores

Estrategia de cazador de liquidez del oro Estrategia de cazador de liquidez del oro

¿Qué está haciendo esta estrategia?

¿Sabías que hay un grupo de “dinero inteligente” en el mercado que siempre le gusta poner trampas en lugares clave? ¡Esta estrategia es como un cazador experimentado que identifica específicamente estas trampas y las opera de manera inversa! En pocas palabras, cuando el precio intencionalmente “finge romper” el soporte de resistencia importante y luego retrocede rápidamente, seguimos el ritmo de los grandes capitales!

El sistema de triple filtración de la lechuga es revelado

¡Acentrarse en las cosas!Esta estrategia utiliza tres niveles de protección:

🔸 El filtro de tendenciasEl EMA de 200 ciclos es como un conductor viejo que te dice si es un camino cuesta arriba o cuesta abajo. 🔸 Identificación de bits claveEn el video, los usuarios de Twitter han mostrado sus puntos de apoyo y de resistencia. 🔸 Detección de la pérdida de liquidezEl gobierno de la República Democrática del Congo (RDC) ha anunciado que el gobierno de la República Democrática del Congo (RDC) está preparando un plan para capturar a los grandes capitales.

¡Como los tiburones, tienes que saber dónde están los peces, con qué anzuelo y cuándo poner el timón!

El encanto mágico de la limpieza de la liquidez

Imagínate que estás en la cola para comprar té con leche y de repente alguien te grita: “Envío gratis!” y todos se precipitan, y se descubre que es falso, pero los más inteligentes se han metido en la cola.

¡El precio primero “finge” caer por debajo de los niveles de soporte (sweeping stop loss) y luego retrocede rápidamente, siendo este el mejor momento para entrar! La estrategia establece una zona de amortiguamiento de 0.6 veces el ATR, asegurando que sea realmente un “sweeping” y no una verdadera ruptura.

Control de riesgo de aluminio: proporción dorada de 1:2

Guía para evitar las fosas¡La estrategia de obligar a los inversores a invertir en acciones y acciones es como conducir sin el cinturón de seguridad, con una proporción de riesgo/beneficio de 1:2!

  • El stop loss está fijado por debajo del nivel clave de 0,5 veces el ATR
  • La parada es el doble de la distancia de la parada.
  • ¡Incluso con una probabilidad de ganancia del 40 por ciento, se puede ganar dinero a largo plazo!

Los consejos para la aplicación en combate

Esta estrategia es la más adecuada para el comercio de oro en un ciclo de 15 minutos, porque el mercado del oro es fluido, los falsos breaks son evidentes y el ciclo de 15 minutos filtra mucho ruido.

Recuerda: no seas codicioso, la estrategia te ha ayudado a encontrar la mejor posición, deja el resto al mercado y al tiempo.

Código Fuente de la Estrategia
/*backtest
start: 2025-10-06 00:00:00
end: 2025-11-05 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Gold 15m: Trend + S/R + Liquidity Sweep (RR 1:2)", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1, commission_type=strategy.commission.percent, commission_value=0.0)

// ---------------------- INPUTS ----------------------
symbol_input = input.string(title="Symbol (for reference only)", defval="XAUUSD")
tf_note = input.timeframe(title="Intended timeframe", defval="15")
ema_len = input.int(200, "Trend EMA length", minval=50)
pivot_left = input.int(5, "Pivot left bars", minval=1)
pivot_right = input.int(5, "Pivot right bars", minval=1)
sweep_atr_mult = input.float(0.6, "Liquidity sweep buffer (ATR ×)", step=0.1)
sl_atr_mult = input.float(0.5, "SL buffer beyond pivot (ATR ×)", step=0.1)
min_sweep_bars = input.int(1, "Max bars between sweep and reclaim", minval=1)
use_only_trend = input.bool(true, "Only trade with trend (EMA filter)")
rr = input.float(2.0, "Reward/Risk (TP = RR × Risk)", minval=1.0, step=0.1)
enable_long = input.bool(true, "Enable Longs")
enable_short = input.bool(true, "Enable Shorts")
show_zones = input.bool(true, "Plot pivots / zones")

// ---------------------- INDICATORS ----------------------
ema_trend = ta.ema(close, ema_len)
atr = ta.atr(14)

// ---------------------- PIVOT S/R DETECTION ----------------------
// Using builtin pivots: returns price of pivot when formed, else na
ph = ta.pivothigh(high, pivot_left, pivot_right)
pl = ta.pivotlow(low, pivot_left, pivot_right)

// We'll track last confirmed pivot prices and bar index
var float lastPivotHigh = na
var int   lastPivotHighBar = na
var float lastPivotLow = na
var int   lastPivotLowBar = na

if not na(ph)
    lastPivotHigh := ph
    lastPivotHighBar := bar_index - pivot_right

if not na(pl)
    lastPivotLow := pl
    lastPivotLowBar := bar_index - pivot_right

// ---------------------- LIQUIDITY SWEEP DETECTION ----------------------
// For a bullish liquidity sweep (buy):
// 1) Price makes a new low wick below lastPivotLow - (atr * sweep_atr_mult) (sweep candle)
// 2) Within `min_sweep_bars` the price reclaims: close > lastPivotLow  => bullish signal
var int sweepLowBar = na
var int sweepHighBar = na

// detect sweep down (wick pierce)
isSweepDown = false
if not na(lastPivotLow)
    // a candle with low sufficiently below pivot
    isSweepDown := low < (lastPivotLow - atr * sweep_atr_mult)

// detect sweep up (wick pierce)
isSweepUp = false
if not na(lastPivotHigh)
    isSweepUp := high > (lastPivotHigh + atr * sweep_atr_mult)

// record bar of sweep
if isSweepDown
    sweepLowBar := bar_index
if isSweepUp
    sweepHighBar := bar_index

// check reclaim after sweep: close back above pivot (buy reclaim) or close back below pivot (sell reclaim)
// ensure reclaim happens within `min_sweep_bars` bars after sweep
bullReclaim = false
bearReclaim = false

if not na(lastPivotLow) and not na(sweepLowBar)
    if (bar_index - sweepLowBar) <= min_sweep_bars and close > lastPivotLow
        bullReclaim := true

if not na(lastPivotHigh) and not na(sweepHighBar)
    if (bar_index - sweepHighBar) <= min_sweep_bars and close < lastPivotHigh
        bearReclaim := true

// ---------------------- TREND FILTER ----------------------
in_uptrend = close > ema_trend
in_downtrend = close < ema_trend

// final entry conditions
longCondition  = enable_long  and bullReclaim and (not use_only_trend or in_uptrend)
shortCondition = enable_short and bearReclaim and (not use_only_trend or in_downtrend)

// Note: variable name required by Pine, we set from input
use_only_trend := use_only_trend  // no-op to fix linter if needed

// ---------------------- ORDER EXECUTION & SL/TP CALC ----------------------
var int tradeId = 0

// For buy: SL = lastPivotLow - (atr * sl_atr_mult)
// risk = entry - SL
// TP = entry + rr * risk
if longCondition
    // compute SL and TP
    sl_price = lastPivotLow - atr * sl_atr_mult
    entry_price = close
    risk_amt = entry_price - sl_price
    tp_price = entry_price + (risk_amt * rr)
    // safety: only place trade if positive distances
    if risk_amt > 0 and tp_price > entry_price
        tradeId += 1
        // send entry and exit with stop & limit
        strategy.entry("Long_"+str.tostring(tradeId), strategy.long)
        strategy.exit("ExitLong_"+str.tostring(tradeId), from_entry="Long_"+str.tostring(tradeId), stop=sl_price, limit=tp_price)

// For sell: SL = lastPivotHigh + (atr * sl_atr_mult)
// risk = SL - entry
// TP = entry - rr * risk
if shortCondition
    sl_price_s = lastPivotHigh + atr * sl_atr_mult
    entry_price_s = close
    risk_amt_s = sl_price_s - entry_price_s
    tp_price_s = entry_price_s - (risk_amt_s * rr)
    if risk_amt_s > 0 and tp_price_s < entry_price_s
        tradeId += 1
        strategy.entry("Short_"+str.tostring(tradeId), strategy.short)
        strategy.exit("ExitShort_"+str.tostring(tradeId), from_entry="Short_"+str.tostring(tradeId), stop=sl_price_s, limit=tp_price_s)

// ---------------------- PLOTTING ----------------------
// EMA (trend)
plot(ema_trend, title="EMA Trend", linewidth=2)

// arrows and markers for entries
plotshape(longCondition, title="Buy Signal", location=location.belowbar, style=shape.labelup, text="BUY", textcolor=color.white, size=size.tiny, color=color.green)
plotshape(shortCondition, title="Sell Signal", location=location.abovebar, style=shape.labeldown, text="SELL", textcolor=color.white, size=size.tiny, color=color.red)

// plot last SL/TP lines for last trade (visual reference)
// find last open position and plot currently active SL/TP if any
if strategy.position_size > 0
    last_sl = strategy.position_avg_price - (strategy.position_avg_price - (lastPivotLow - atr * sl_atr_mult))
    // instead use exit order price from last exit? Simpler: plot SL/TP computed earlier if long
    // This may plot approximate lines; TradingView native order lines will also display.
    // We skip redundant plotting to avoid confusion.