Стратегия охотника за золотой ликвидностью

EMA Pivot ATR Liquidity Sweep
Дата создания: 2025-11-06 11:42:28 Последнее изменение: 2025-11-06 11:42:28
Копировать: 0 Количество просмотров: 197
2
Подписаться
319
Подписчики

Стратегия охотника за золотой ликвидностью Стратегия охотника за золотой ликвидностью

Что это за тактика?

Знаете ли вы? На рынке есть группа “умных денег”, которые всегда любят ставить ловушки в ключевых местах! Эта стратегия похожа на опытного охотника, который специально идентифицирует эти ловушки и действует наоборот.

Раскрытие системы тройных фильтров

Внимание!Эта стратегия использует три уровня защиты:

🔸 Тренд-фильтр200-циклическая EMA - это как старый водитель, который говорит вам, что вы в гору или вниз. 🔸 Ключевое битовое распознавание“Все, что мы делаем, - это пытаемся создать систему, которая автоматически находит точку сопротивления, на которой “воин должен быть”. 🔸 Проверка ликвидности“Фальшивые действия”, преднамеренно сделанные для того, чтобы поймать крупные деньги”

Как и у акулы, вы должны знать, где находится рыба, с какой привязкой и когда нажать на рычаг!

Волшебная прелесть мобильности

Представьте: вы стоите в очереди за молочным чаем, и вдруг кто-то кричит: “Бесплатно!” и все бросаются к вам, но оказывается, что это не так, а умные люди уже выстроились в очередь.

Рынок тоже! Цена сначала “притворяется”, что она провалилась ниже уровня поддержки (почистка стоп-листов), а затем быстро отступает, что является лучшим временем для входа.

Алюминий Управление рисками в золотом соотношении 1:2

Руководство по уходу за ямой“Очень многие люди считают, что торговля - это как вождение без ремней безопасности, это стратегия, которая заставляет соблюдать соотношение риска и отдачи 1:2!

  • Стоп-страх установлен ниже ключевой точки в 0,5 раза ATR
  • Стоп - это в два раза больше, чем остановка.
  • Даже если вы выиграете только на 40%, вы сможете зарабатывать в долгосрочной перспективе!

Применение боевых очков

Эта стратегия наиболее подходит для торговли золотом в 15-минутный цикл, потому что рынок золота является очень ликвидным, и ложные прорывы очевидны, а 15-минутный цикл отфильтровывает слишком много шума.

Помните: не будьте жадными! Стратегия поможет вам найти хорошее место, а остальное оставьте рынку и времени.

Исходный код стратегии
/*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.