Penangkap penarikan cerdas


Tanggal Pembuatan: 2025-12-25 15:03:51 Akhirnya memodifikasi: 2026-01-23 11:44:20
menyalin: 11 Jumlah klik: 210
2
fokus pada
413
Pengikut

Penangkap penarikan cerdas Penangkap penarikan cerdas

VWAP, ADX, EMA, REGIME

VWAP Withdrawal + ADX System Filter: Bagaimana Kombinasi Tangan Ini Dapat Menemukan Arah di Tengah Gempa

Tidak ada lagi pengejaran tanpa pandang bulu.Retreat penembusan palsu di dekat VWAP yang dirancang khusus untuk penembak jitu dengan asumsi konfirmasi tren❚ ADX menyala pada kisaran 20-35 dan di atas 45 langsung berhenti ❚ Mengapa? Karena data menunjukkan kepada kita bahwa ADX terlalu tinggi berarti tren terlalu panas, dan strategi penarikan jatuh dalam lingkungan ini.

Strategi ini mengharuskan harga untuk menembus VWAP setidaknya 2 tick, dan kemudian mundur secara kuat. Ini bukan ilmu pengetahuan, tetapi berdasarkan parameter optimal yang diperoleh dari banyak pengujian ulang.Penetrasi kurang dari 2 tick cenderung menjadi kebisingan, penetrasi lebih dari 5 tick biasanya berarti pembalikan tren yang sebenarnya

Mekanisme filter ganda: 60 menit EMA mengkonfirmasi arah utama, 5 menit ADX mengontrol waktu masuk

Ini adalah desain kunci:EMA 2050 pada tingkat 1 jam bertanggung jawab untuk menilai tren besar, ADX 5 menit bertanggung jawab untuk memilih jendela masuk terbaikMengapa tidak menggunakan sinar matahari? Karena reaksi sinar matahari terlalu lambat. Mengapa tidak menggunakan 15 menit? Karena 15 menit mudah terganggu oleh kebisingan singkat.

60 menit adalah titik manis: Anda dapat menyaring turun naik jangka pendek dan tidak akan kehilangan sinyal awal dari perubahan tren. Ketika garis cepat melewati garis lambat dan kedua garis miring ke atas, tren multihead dikonfirmasi.Sistem verifikasi ganda ini dapat mengurangi sinyal palsu sekitar 40 persen.

ADX juga menetapkan kisaran 20-35 sebagai indikator: di bawah 20 menunjukkan kurangnya arah pasar, di atas 35 mulai memasuki zona perdagangan terbaik, tetapi di atas 45 harus berhati-hati dengan overheating.Data historis menunjukkan bahwa strategi penarikan paling berhasil terjadi pada ADX di kisaran 25-30.

Pengendalian Risiko: 2 R+ Keluar Berkelompok, Inilah Cara Para Pedagang Profesional

Stop loss terletak di ujung lain dari breakout barrier, yang merupakan batas resiko yang paling alami.Jika harga jatuh di bawah support atau gagal untuk menembus resistance, itu menunjukkan bahwa penilaian kita salah dan harus segera diakui sebagai salah

Tujuan yang ditetapkan adalah menggunakan konfigurasi klasik dari 1R dan 2R: 50% posisi di 1R, dan 50% lainnya di 2R. Mengapa demikian?Sekitar 60% dari transaksi sukses mencapai 1R, tetapi hanya 35% mencapai 2R│Kemitraan ini menjamin keuntungan dasar, tetapi juga memberi ruang untuk keuntungan besar│

Jangan meremehkan perbandingan risiko-pengembalian ini. Dalam 1000 simulasi perdagangan, sistem manajemen risiko ini masih dapat menghasilkan keuntungan positif, bahkan jika hanya 45% dari mereka yang menang.Bukanlah Angka Kemenangan, Tapi Rasio Kerugian

Adaptasi pasar: mengapa strategi ini tidak bekerja dengan baik di pasar horizontal

Saya tidak tahu apa yang harus saya lakukan.Strategi ini tidak berhasil di pasar yang bergejolak.Ketika ADX berada di bawah 20 dalam jangka panjang, pasar tidak memiliki arah yang jelas, dan keandalan sinyal penarikan VWAP menurun secara signifikan. Pilihan terbaik saat ini adalah menunggu, bukan memaksa perdagangan.

Periode kinerja terbaik dari strategi adalah pada tahap awal dan pertengahan dari trend.Pada akhir tren kuat ((ADX>45), ruang keuntungan akan dipersempit dengan cepat bahkan jika sinyal benar│Inilah alasan untuk menyiapkan ADX Hard Stop.│

Pembatasan lain adalah persyaratan untuk mobilitas. Strategi ini lebih cocok untuk varietas utama, yang mungkin terlalu sensitif terhadap persyaratan penetrasi 2 tick untuk varietas kecil dengan mobilitas rendah.

Saran Pertempuran: Kapan Harus Digunakan dan Kapan Harus Dihentikan

Waktu Terbaik Untuk MenggunakannyaADX berada di kisaran 25-35, dengan volume trading berkolaborasi.

Hindari Menggunakan WaktuPada bulan Juli, ADX berada di bawah 20 pada periode lateral, dan pada akhir tren ADX berada di atas 45 pada periode lateral.

Parameter dapat disesuaikan dengan varietas yang berbeda: varietas dengan tingkat fluktuasi tinggi dapat menyesuaikan penetasan minimum menjadi 3-4 tick, varietas dengan tingkat fluktuasi rendah dapat mempertahankan 2 tick.Namun, logika inti tidak berubah: konfirmasi tren + penarikan kembali tangkapan + kontrol angin ketat

Ingatlah bahwa tidak ada strategi yang sempurna. Sistem ini bekerja dengan baik di pasar tren, tetapi mengalami kerugian kecil di pasar choppy.Kuncinya adalah bersabar menunggu kesempatan terbaik, bukan memaksakan transaksi setiap hari.

Tip risiko: Retrospeksi historis tidak mewakili keuntungan masa depan, ada risiko kerugian berturut-turut dalam strategi, manajemen risiko yang ketat diperlukan, dan performa yang berbeda dalam berbagai kondisi pasar sangat berbeda.

Kode Sumber Strategi
/*backtest
start: 2025-08-13 00:00:00
end: 2025-12-23 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("GC/MGC VWAP Pullback + ADX Regime (Prop-Safe)",
     overlay=true,
     pyramiding=0,
     calc_on_every_tick=false,
     process_orders_on_close=true,
     initial_capital=50000)

// ---------- Inputs ----------
groupRegime = "Regime Filter"
adxLen      = input.int(14, "ADX Length", group=groupRegime, minval=1)
adxMin      = input.float(20.0, "ADX Min (trade allowed)", group=groupRegime, step=0.5)
adxMax      = input.float(35.0, "ADX Max (best zone)", group=groupRegime, step=0.5)
adxHardStop = input.float(45.0, "ADX Hard Stop (no new entries above)", group=groupRegime, step=0.5)

groupTrend  = "Trend Filter (1H)"
htf         = input.timeframe("60", "Trend Timeframe", group=groupTrend)
emaFastLen  = input.int(20, "EMA Fast", group=groupTrend, minval=1)
emaSlowLen  = input.int(50, "EMA Slow", group=groupTrend, minval=1)
requireSlope = input.bool(true, "Require EMAs sloping", group=groupTrend)

groupSetup  = "Setup Logic"
useVwap     = input.bool(true, "Use Session VWAP", group=groupSetup)
minWickTicks = input.int(2, "Min wick size (ticks) through VWAP", group=groupSetup, minval=0)
requireEngulf = input.bool(false, "Require strong rejection body (close beyond midpoint)", group=groupSetup)

groupRisk   = "Risk / Exits"
useStops    = input.bool(true, "Use stop loss + targets", group=groupRisk)
rrTP1       = input.float(1.0, "TP1 (R multiple)", group=groupRisk, step=0.25)
rrTP2       = input.float(2.0, "TP2 (R multiple)", group=groupRisk, step=0.25)
tp1Pct      = input.int(50, "TP1 % qty", group=groupRisk, minval=1, maxval=99)
tp2Pct      = 100 - tp1Pct

// ---------- Core Calculations ----------
// ADX
[_, __, adx] = ta.dmi(adxLen, adxLen)

// VWAP (session)
vwap = useVwap ? ta.vwap(hlc3) : na

// 1H EMAs for direction
emaFastHTF = request.security(syminfo.tickerid, htf, ta.ema(close, emaFastLen), barmerge.gaps_off, barmerge.lookahead_off)
emaSlowHTF = request.security(syminfo.tickerid, htf, ta.ema(close, emaSlowLen), barmerge.gaps_off, barmerge.lookahead_off)

// Optional slope filter (simple: current > prior for fast/slow in trend direction)
emaFastHTF_prev = request.security(syminfo.tickerid, htf, ta.ema(close, emaFastLen)[1], barmerge.gaps_off, barmerge.lookahead_off)
emaSlowHTF_prev = request.security(syminfo.tickerid, htf, ta.ema(close, emaSlowLen)[1], barmerge.gaps_off, barmerge.lookahead_off)

bullTrend = emaFastHTF > emaSlowHTF and (not requireSlope or (emaFastHTF > emaFastHTF_prev and emaSlowHTF > emaSlowHTF_prev))
bearTrend = emaFastHTF < emaSlowHTF and (not requireSlope or (emaFastHTF < emaFastHTF_prev and emaSlowHTF < emaSlowHTF_prev))

// Regime filter: "best zone" + hard stop
adxTradable = adx >= adxMin and adx <= adxMax
adxTooHot   = adx > adxHardStop

// Tick helper
tick = syminfo.mintick
minWick = minWickTicks * tick

// ---------- Rejection Candles at VWAP ----------
hasVwap = useVwap and not na(vwap)

// Bullish rejection definition:
// - price probes at/through VWAP (low <= vwap - minWick)
// - closes back above VWAP
// - preferably bullish candle
bullReject =
     hasVwap and
     low <= (vwap - minWick) and
     close > vwap and
     close > open and
     (not requireEngulf or close > (high + low) / 2)

// Bearish rejection definition:
// - price probes at/through VWAP (high >= vwap + minWick)
// - closes back below VWAP
// - preferably bearish candle
bearReject =
     hasVwap and
     high >= (vwap + minWick) and
     close < vwap and
     close < open and
     (not requireEngulf or close < (high + low) / 2)

// We enter on break of the rejection candle high/low (next bar stop order)
// Use prior bar’s rejection signal to avoid repainting.
bullReject_prev = bullReject[1]
bearReject_prev = bearReject[1]

longStopPrice  = high[1] + tick
shortStopPrice = low[1] - tick

// Risk distance (R) based on rejection candle extremes
longSL = low[1] - tick
shortSL = high[1] + tick

longRisk  = math.max(longStopPrice - longSL, tick)
shortRisk = math.max(shortSL - shortStopPrice, tick)

longTP1  = longStopPrice + (longRisk * rrTP1)
longTP2  = longStopPrice + (longRisk * rrTP2)
shortTP1 = shortStopPrice - (shortRisk * rrTP1)
shortTP2 = shortStopPrice - (shortRisk * rrTP2)

// ---------- Entry Conditions ----------
canEnter = not adxTooHot and adxTradable

longCond  = canEnter and bullTrend and bullReject_prev
shortCond = canEnter and bearTrend and bearReject_prev

// ---------- Orders ----------
if (longCond)
    strategy.entry("L", strategy.long, stop=longStopPrice)

if (shortCond)
    strategy.entry("S", strategy.short, stop=shortStopPrice)

// ---------- Exits ----------
if useStops
    // Long exits
    strategy.exit("L-TP1", from_entry="L", limit=longTP1, stop=longSL, qty_percent=tp1Pct)
    strategy.exit("L-TP2", from_entry="L", limit=longTP2, stop=longSL, qty_percent=tp2Pct)

    // Short exits
    strategy.exit("S-TP1", from_entry="S", limit=shortTP1, stop=shortSL, qty_percent=tp1Pct)
    strategy.exit("S-TP2", from_entry="S", limit=shortTP2, stop=shortSL, qty_percent=tp2Pct)

// ---------- Plots ----------
plot(useVwap ? vwap : na, "VWAP", linewidth=2)
plot(emaFastHTF, "HTF EMA Fast", color=color.new(color.green, 0))
plot(emaSlowHTF, "HTF EMA Slow", color=color.new(color.red, 0))

// Visual markers for rejection candles
plotshape(bullReject, title="Bull Rejection", style=shape.triangleup, location=location.belowbar, size=size.tiny, color=color.new(color.green, 0), text="BR")
plotshape(bearReject, title="Bear Rejection", style=shape.triangledown, location=location.abovebar, size=size.tiny, color=color.new(color.red, 0), text="SR")

// ---- Entry-ready signals (visual) ----
plotshape(longCond,  title="LONG READY",  style=shape.labelup,   location=location.belowbar, text="LONG", color=color.new(color.green, 0), textcolor=color.white, size=size.tiny)
plotshape(shortCond, title="SHORT READY", style=shape.labeldown, location=location.abovebar, text="SHORT", color=color.new(color.red, 0),   textcolor=color.white, size=size.tiny)

plot(longCond  ? longStopPrice  : na, "Long Stop Entry",  style=plot.style_linebr, linewidth=2)
plot(shortCond ? shortStopPrice : na, "Short Stop Entry", style=plot.style_linebr, linewidth=2)

// =====================================================
// ADX DISPLAY (for visibility only)
// =====================================================
showADX = input.bool(true, "Show ADX (pane)", group="Signals / Alerts")

adxPlot = showADX ? adx : na
plot(adxPlot, title="ADX (5m)", color=color.new(color.orange, 0), linewidth=2)

// Reference lines
hline(20, "ADX 20", color=color.new(color.green, 60))
hline(35, "ADX 35", color=color.new(color.yellow, 60))
hline(45, "ADX 45", color=color.new(color.red, 60))