Strategi perdagangan kuantitatif breakout rentang pembukaan multi-kerangka waktu dan kesenjangan nilai wajar

ORB FVG ICT RR SL TP
Tanggal Pembuatan: 2025-10-16 14:44:45 Akhirnya memodifikasi: 2025-10-16 14:44:45
menyalin: 0 Jumlah klik: 247
2
fokus pada
319
Pengikut

Strategi perdagangan kuantitatif breakout rentang pembukaan multi-kerangka waktu dan kesenjangan nilai wajar Strategi perdagangan kuantitatif breakout rentang pembukaan multi-kerangka waktu dan kesenjangan nilai wajar

Ini bukan strategi penembusan biasa, tetapi senjata canggih untuk identifikasi multi-dimensi

Data retrospektif menunjukkan bahwa strategi ini menggabungkan penembusan ruang terbuka tradisional (ORB) dengan kesenjangan nilai wajar (FVG) dalam teori ICT dengan sempurna, membentuk mekanisme konfirmasi tiga. Alih-alih penembusan harga yang sederhana untuk masuk ke dalam pasar, itu membutuhkan: 5 menit penembusan ORB + 1 menit penembusan FVG + perdagangan dalam periode waktu yang ditentukan.

5% fixed risk aperture, 100 kali lebih cerdas dari fixed hand

Strategi ini menggunakan modus risiko tetap 5% dari dana akun, bukan perdagangan jumlah tetap yang bodoh. Posisi untuk setiap perdagangan dihitung berdasarkan jarak stop loss yang dinamis: jumlah risiko = dana akun × 5%, margin = jumlah risiko ÷ ((harga masuk - harga stop loss)). Ini berarti bahwa tidak peduli seberapa besar fluktuasi pasar, risiko Anda selalu terkendali.

Identifikasi Celah Nilai Adil: Menangkap Momentum Emas dari Ketidakseimbangan Liquiditas Pasar

Logika deteksi FVG sangat akurat: FVG bullish meminta harga K-line minimum saat ini > harga K-line maksimum dua periode sebelumnya, FVG bearish meminta harga K-line maksimum saat ini < harga K-line minimum dua periode sebelumnya. Metode identifikasi gaya ICT “wick-to-wick” ini, khusus untuk menangkap kekosongan likuiditas saat harga bergerak cepat. Data historis menunjukkan bahwa kemungkinan kelanjutan tren meningkat hingga lebih dari 75% jika ORB pecah dan FVG muncul bersamaan.

Pembatasan satu transaksi per hari: Disiplin lebih penting daripada seringnya

Strategi ini dirancang dengan batasan “satu per hari” yang ketat, yang bukan konservatif, tetapi cerdas. Terlalu banyak perdagangan adalah musuh terbesar dari strategi kuantitatif, terutama dalam perdagangan harian. Dengan kontrol variabel TradedToday, memastikan bahwa setiap hari perdagangan hanya melakukan sinyal berkualitas terbaik sekali.

Pengaturan RRR dua kali lipat: keseimbangan optimal dari nilai harapan matematika

Pengaturan RR=2.0 setelah perhitungan probabilitas yang ketat. Dalam kasus kemenangan 50%, rasio pengembalian risiko dua kali lipat dapat mencapai keseimbangan untung-rugi; Ketika kemenangan meningkat menjadi lebih dari 40%, strategi dapat menghasilkan pendapatan yang diharapkan positif.

Desain penyangga kerusakan: rincian teknis untuk menghindari gangguan suara

Stop loss buffer 0,50 unit harga tampaknya kecil, tetapi sebenarnya sangat besar. Stop loss point terletak di luar batas ORB dan bukan di batas, menghindari stop loss yang tidak efektif yang disebabkan oleh kebisingan pasar. Desain detail ini mencerminkan pemahaman mendalam strategi tentang struktur mikro pasar, yang dapat secara efektif mengurangi stop loss yang salah karena penyesuaian harga singkat.

Kerangka waktu kolaborasi: 1 menit untuk melakukan + 5 menit untuk mengkonfirmasi kerja sama sempurna

Strategi menentukan interval ORB pada tingkat 5 menit dan mencari peluang terobosan pada tingkat 1 menit. Kombinasi dari kerangka waktu ini memastikan pemahaman tentang irama keseluruhan pasar dan juga memberikan waktu masuk yang tepat.

Skenario dan Petunjuk Risiko

Strategi ini bekerja dengan baik di pasar tren, terutama untuk perdagangan 1 jam pertama setelah saham AS dibuka. Namun perlu dicatat: Performa buruk di pasar yang bergoyang di lateral, kemungkinan terjadinya stop loss berturut-turut di bawah pengaruh berita besar.

Dianjurkan untuk melakukan pengujian perdagangan kertas yang memadai sebelum digunakan, untuk memastikan bahwa setiap detail dari strategi dieksekusi dipahami. Ada kebutuhan untuk menilai kelayakan strategi secara tepat waktu ketika lingkungan pasar berubah, dan untuk menghentikan perdagangan jika diperlukan untuk melindungi keamanan dana.

Kode Sumber Strategi
/*backtest
start: 2025-09-15 00:00:00
end: 2025-10-14 08:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":500000}]
*/

//@version=5
strategy("XAUUSD 5-Min ORB + FVG (09:30–10:30, 1/day, 5% risk, ORB SL)",
     overlay=true)

// ===== Inputs =====
RR           = input.float(2.0, "Risk-Reward Ratio", step=0.1)
RiskPct      = input.float(5.0, "Risk % per Trade", step=0.5, minval=0.1, maxval=50)
SessionStr   = input("0930-1030", "Trading Session (chart TZ)")
SL_Buffer    = input.float(0.50, "SL Buffer (price units)", step=0.01)  // e.g., 0.50 on XAUUSD

// ===== Session filter (uses chart timezone; set chart TZ to UTC-4 to match you) =====
inSession = not na(time(timeframe.period, SessionStr))

// ===== 5-minute series (to build the opening range) =====
h5    = request.security(syminfo.tickerid, "5", high)
l5    = request.security(syminfo.tickerid, "5", low)
conf5 = request.security(syminfo.tickerid, "5", barstate.isconfirmed)

// Build a 5m session state matching the same 09:30–10:30 window, but on 5m bars
inSess5 = request.security(syminfo.tickerid, "5", not na(time("5", SessionStr)))
firstBarOpen5 = inSess5 and not inSess5[1]  // first 5m bar of the window (at its OPEN)

// ==== ORB state ====
var float ORBHigh = na
var float ORBLow  = na
var bool  ORBSet  = false

// Wait for the first 5m bar of the session to close, then lock its H/L as the ORB
var bool waitClose = false
if firstBarOpen5
    ORBSet := false
    waitClose := true
if waitClose and conf5
    ORBHigh := h5
    ORBLow  := l5
    ORBSet := true
    waitClose := false

// ===== One trade per day logic (resets at day change in chart TZ) =====
var bool TradedToday = false
if ta.change(time("D"))
    TradedToday := false

// ===== 1-minute series for breakout + FVG =====
h1 = request.security(syminfo.tickerid, "1", high)
l1 = request.security(syminfo.tickerid, "1", low)
c1 = request.security(syminfo.tickerid, "1", close)

// Wick-to-wick FVG (ICT-style) on breakout bar
bullFVG = (not na(h1[2]) and not na(l1)) ? (h1[2] < l1) : false
bearFVG = (not na(l1[2]) and not na(h1)) ? (l1[2] > h1) : false

// Breakout checks vs ORB
breakAbove = not na(ORBHigh) and c1 > ORBHigh
breakBelow = not na(ORBLow)  and c1 < ORBLow

// Signals within session, with ORB locked, and only if not traded today
canTrade   = inSession and ORBSet and not TradedToday
buySignal  = canTrade and breakAbove and bullFVG
sellSignal = canTrade and breakBelow and bearFVG

// ===== 5% risk-based position sizing =====
f_qty(entry, sl) =>
    riskAmt     = (RiskPct / 100.0) * strategy.equity
    riskPerUnit = math.abs(entry - sl) * syminfo.pointvalue
    valid       = (riskPerUnit > 0) and (riskAmt > 0)
    qty         = valid ? math.max(0.0001, riskAmt / riskPerUnit) : na
    qty

// ===== Orders =====
// SL is set relative to the 5m opening range +/− buffer
if buySignal
    sl = ORBLow - SL_Buffer
    // if somehow ORBLow is na, fallback to candle low
    sl := na(sl) ? l1 : sl
    tp = c1 + RR * (c1 - sl)
    q  = f_qty(c1, sl)
    if not na(q) and c1 > sl
        strategy.entry("BUY", strategy.long, qty=q)
        strategy.exit("TP/SL BUY", from_entry="BUY", stop=sl, limit=tp)
        TradedToday := true

if sellSignal
    sl = ORBHigh + SL_Buffer
    sl := na(sl) ? h1 : sl
    tp = c1 - RR * (sl - c1)
    q  = f_qty(c1, sl)
    if not na(q) and sl > c1
        strategy.entry("SELL", strategy.short, qty=q)
        strategy.exit("TP/SL SELL", from_entry="SELL", stop=sl, limit=tp)
        TradedToday := true

// ===== Visuals =====
plot(ORBHigh, "ORB High (5m)", color=color.new(color.orange, 0))
plot(ORBLow,  "ORB Low  (5m)", color=color.new(color.orange, 0))
hline(0, "Zero line", color=color.new(color.gray, 85))