Gabungan Pecahan Julat Pembukaan dan Strategi Jurang Nilai Saksama

ORB FVG SMC RRR ATR VWAP RSI TZ
Tarikh penciptaan: 2025-06-26 09:24:20 Akhirnya diubah suai: 2025-06-26 09:24:20
Salin: 1 Bilangan klik: 359
2
fokus pada
319
Pengikut

Gabungan Pecahan Julat Pembukaan dan Strategi Jurang Nilai Saksama Gabungan Pecahan Julat Pembukaan dan Strategi Jurang Nilai Saksama

Gambaran keseluruhan

Strategi gabungan penembusan ruang terbuka dengan jurang nilai wajar adalah strategi perdagangan kuantitatif yang menggabungkan penembusan ruang terbuka (ORB) dan jurang nilai wajar (FVG) dalam konsep wang pintar (SMC). Strategi ini mula-mula menentukan kawasan harga pada awal hari perdagangan (biasanya 5 minit selepas pembukaan), dan kemudian mencari keadaan yang bertepatan dengan jurang nilai wajar ketika harga menembusi sempadan ruang itu sebagai isyarat perdagangan.

Prinsip Strategi

Prinsip-prinsip utama strategi ini berdasarkan kepada dua konsep analisis teknikal utama:

  1. Penembusan ruang terbuka (ORB)- Strategi pertama menentukan harga tertinggi dan terendah dalam tempoh masa tertentu selepas pembukaan hari perdagangan (dengan default 5 minit) untuk membentuk satu julat harga. Julat ini dianggap sebagai penilaian awal oleh peserta pasaran mengenai pergerakan harga pada hari itu, penembusan julat ini mungkin menandakan pembentukan trend jangka pendek.

  2. Celah nilai adil (FVG)- Pendekatan analisis dari konsep wang pintar (SMC), FVG bullish terbentuk apabila ketinggian semasa lebih rendah daripada ketinggian yang terdahulu, dan FVG bearish terbentuk apabila ketinggian semasa lebih tinggi daripada ketinggian yang terdahulu. Kekosongan ini dianggap sebagai kawasan di mana harga mungkin akan menebus masa depan, yang mewakili ketidakseimbangan dalam struktur pasaran.

Isyarat perdagangan strategi dihasilkan oleh:

  • Apabila melihat FVG tiub dan ORB sempadan atas bersempadan ((tiub terdahulu harga pembukaan lebih rendah daripada ORB tinggi, harga penutupan lebih tinggi daripada ORB tinggi), mencetuskan signal melakukan lebih
  • Apabila FVG turun naik bercampur dengan sempadan bawah ORB (harga pembukaan yang lebih tinggi daripada titik rendah ORB, harga penutupan yang lebih rendah daripada titik rendah ORB), mencetuskan isyarat shorting

Strategi ini menggunakan kaedah pengurusan kedudukan berasaskan risiko semasa menjalankan perdagangan, dengan mengira saiz kedudukan tertentu untuk setiap perdagangan berdasarkan jarak berhenti untuk memastikan bahawa setiap perdagangan mempunyai had risiko yang sama. Hentikan kerugian ditetapkan pada titik rendah yang lebih awal untuk perdagangan berbilang atau pada titik tinggi yang lebih awal untuk perdagangan kosong, dan sasaran keuntungan berdasarkan nisbah pulangan risiko yang ditetapkan secara default 2.0. Semua perdagangan yang belum dipadamkan akan dipadamkan secara automatik pada akhir tempoh perdagangan, memastikan tidak ada kedudukan semalaman.

Kelebihan Strategik

  1. Menggabungkan pelbagai kaedah analisis teknikal- Dengan mengintegrasikan kedua-dua kaedah analisis teknikal ORB dan FVG, strategi dapat menyaring isyarat palsu yang mungkin dihasilkan oleh satu petunjuk dan meningkatkan kualiti isyarat perdagangan.

  2. Rangka masa perdagangan yang jelas- Strategi ini jelas menentukan jangka masa perdagangan (sinyal dan tempoh perdagangan) yang membantu peniaga menumpukan perhatian pada masa pasaran paling aktif dan kualiti isyarat tertinggi, mengelakkan perdagangan tidak sah pada masa aktiviti rendah.

  3. Pengurusan kedudukan berasaskan risiko- Strategi menggunakan kaedah pengiraan kedudukan berasaskan risiko untuk memastikan bahawa setiap risiko perdagangan menyumbang kepada peratusan yang sama dalam jumlah dana akaun (default 1%) yang membantu pengurusan dana dan kawalan risiko jangka panjang.

  4. Konfigurasi parameter yang fleksibel- Strategi menyediakan pelbagai parameter yang boleh disesuaikan, termasuk tetapan masa perdagangan, tempoh ORB, tempoh isyarat, nisbah risiko dan nisbah pulangan risiko, yang membolehkan peniaga mengoptimumkan mengikut pasaran yang berbeza dan pilihan risiko peribadi.

  5. Pembantu visual- Strategi menyediakan banyak elemen visual, termasuk garis horizontal ORB, penanda isyarat perdagangan, latar belakang yang terang pada masa perdagangan yang berbeza dan jadual data statistik masa nyata, untuk memudahkan pedagang memantau dan menganalisis pelaksanaan strategi.

  6. Menyokong pengurusan berbilang peringkat- Reka bentuk strategi menyokong memegang beberapa kedudukan perdagangan pada masa yang sama (diatur oleh parameter piramid), yang membolehkan menangkap beberapa peluang perdagangan pada hari perdagangan yang sama, meningkatkan kecekapan penggunaan dana.

Risiko Strategik

  1. Ketergantungan kepada pasaran tertentu- Strategi ini direka terutamanya untuk masa perdagangan biasa di pasaran saham Amerika Syarikat, yang mungkin tidak berkesan di pasaran lain atau pada masa perdagangan. Ciri-ciri pembukaan dan pola turun naik yang berbeza di pasaran yang berbeza sangat berbeza, memerlukan parameter penyesuaian yang sesuai.

  2. Kepekaan Parameter- Prestasi strategi sensitif kepada beberapa parameter utama, seperti tempoh ORB, tempoh isyarat dan nisbah pulangan risiko. Tetapan parameter yang tidak betul boleh menyebabkan perdagangan berlebihan atau kehilangan peluang perdagangan penting.

  3. Kepercayaan pasaran- Dalam keadaan pasaran yang bergelombang tinggi atau rendah, prestasi strategi mungkin tidak konsisten. Terutamanya dalam pasaran yang bergelombang rendah, jarak ORB mungkin terlalu sempit, yang menyebabkan isyarat penembusan palsu yang kerap.

  4. Risiko Kedudukan Henti- Strategi menggunakan kedudukan tinggi/rendah pada tiang terdahulu sebagai kedudukan berhenti, yang boleh menyebabkan kedudukan berhenti terlalu lebar dalam pasaran cepat, yang akan mengurangkan nisbah ganjaran risiko atau menyebabkan saiz kedudukan yang terlalu kecil.

  5. Bergantung kepada model harga sejarah- Strategi mengandaikan bahawa penembusan di zon FVG dan ORB mempunyai makna ramalan, tetapi peningkatan kecekapan pasaran atau perubahan persekitaran perdagangan mungkin melemahkan keberkesanan model ini.

  6. Risiko pelaksanaan teknologi- Dalam urus niaga sebenar, mungkin menghadapi masalah seperti titik tergelincir, kelewatan pelaksanaan pesanan, yang mempengaruhi kesesuaian hasil urus niaga sebenar dengan keputusan pengukuran semula.

Arah pengoptimuman strategi

  1. Tempoh ORB dinamik- Tempoh ORB boleh dipertimbangkan untuk disesuaikan secara automatik dengan turun naik pasaran, contohnya dengan menggunakan masa ORB yang lebih lama dalam keadaan pasaran yang bergelombang tinggi untuk mengelakkan penembusan palsu, dan masa ORB yang lebih pendek dalam keadaan turun naik rendah untuk menangkap lebih banyak peluang perdagangan.

  2. Tambah syarat penapis- Memperkenalkan syarat penapisan tambahan untuk meningkatkan kualiti isyarat, seperti menggabungkan arah trend pasaran keseluruhan ((berbuat lebih banyak hanya dalam trend menaik, melakukan kosong dalam trend menurun), atau menambah pengesahan jumlah transaksi ((berdagang hanya apabila penembusan disertai dengan peningkatan jumlah transaksi))

  3. Mengoptimumkan kedudukan berhenti- Pertimbangkan untuk menggunakan tetapan hentian kerugian dinamik berdasarkan ATR atau kadar turun naik, sebagai pengganti kaedah hentian kerugian tetap yang berdasarkan titik tinggi dan rendah yang terdahulu, yang mungkin memberikan kawalan risiko yang lebih munasabah.

  4. Menambah sebahagian daripada mekanisme keuntungan- Menerapkan strategi keuntungan berpecah, seperti menebus sebahagian daripada kedudukan apabila nisbah risiko / pulangan 1: 1 dicapai, dan menetapkan sasaran keuntungan yang lebih jauh untuk mengejar berhenti atau kehilangan yang tersisa, untuk mengimbangi keperluan untuk mengunci keuntungan dan mengikuti trend.

  5. Penapisan masa- Tambah penapis masa untuk mengelakkan masa-masa perdagangan berkualiti rendah yang diketahui, seperti tempoh turun naik yang rendah pada waktu makan tengah hari atau tempoh turun naik yang tinggi sebelum dan selepas data ekonomi penting dikeluarkan.

  6. Menambah parameter adaptasi- Memperkenalkan parameter penyesuaian diri yang membolehkan strategi menyesuaikan parameter secara automatik berdasarkan prestasi pasaran terkini, seperti kadar pulangan risiko yang disesuaikan secara dinamik atau peratusan risiko yang disesuaikan berdasarkan kadar kemenangan terkini.

ringkaskan

Strategi gabungan penembusan ruang terbuka dengan jurang nilai wajar adalah sistem perdagangan dalam hari yang dirancang dengan baik untuk mencari peluang perdagangan berkemungkinan tinggi dengan menggabungkan kedua-dua kaedah analisis teknikal ORB dan FVG. Strategi ini beroperasi dalam tempoh perdagangan yang jelas, menggunakan pendekatan pengurusan kedudukan berdasarkan risiko, dan menyediakan banyak alat visual dan statistik untuk membantu keputusan perdagangan.

Kelebihan utama strategi terletak pada logik perdagangan yang jelas, penetapan parameter yang fleksibel dan mekanisme pengurusan risiko yang komprehensif. Walau bagaimanapun, strategi juga menghadapi risiko seperti ketergantungan pasaran, sensitiviti parameter dan ketergantungan keadaan pasaran. Untuk meningkatkan kestabilan strategi, disarankan untuk mempertimbangkan penyesuaian parameter dinamik, menambah syarat penapisan, mengoptimumkan kaedah stop-loss, dan melaksanakan mekanisme keuntungan separa.

Perlu diperhatikan bahawa strategi ini tidak sesuai untuk semua keadaan pasaran dan semua jenis perdagangan, dan peniaga harus melakukan pengesanan dan pengujian ke hadapan yang mencukupi sebelum menerapkannya, untuk memastikan bahawa strategi itu sesuai dengan keutamaan risiko dan matlamat perdagangan mereka. Dengan terus mengoptimumkan dan menyesuaikan diri dengan perubahan pasaran, strategi ini berpotensi menjadi alat yang berkesan dalam kotak alat peniaga hari.

Kod sumber strategi
/*backtest
start: 2025-06-18 00:00:00
end: 2025-06-25 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

// Based on https://www.youtube.com/watch?v=mzFXoK2pbNE

//@version=5
strategy("[Myth Busting] [ORB] Casper SMC - 16 Jun", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, pyramiding = 10)

// Input settings
show_orb = input.bool(true, "Show 5m Opening Range")
show_signals = input.bool(true, "Show FVG Intersection Signals")
show_stats = input.bool(true, "Show Statistics Table")
risk_per_trade = input.float(1.0, "Risk Per Trade (%)", minval=0.1, maxval=10.0, step=0.1)
use_stop_loss = input.bool(true, "Use Stop Loss")
use_take_profit = input.bool(true, "Use Take Profit")
risk_reward_ratio = input.float(2.0, "Risk:Reward Ratio", minval=1.0, step=0.1)

// Session time inputs
session_start_hour = input.int(9, "Session Start Hour", minval=0, maxval=23, group="Session Settings")
session_start_minute = input.int(30, "Session Start Minute", minval=0, maxval=59, group="Session Settings")
session_end_hour = input.int(16, "Session End Hour", minval=0, maxval=23, group="Session Settings")
session_end_minute = input.int(0, "Session End Minute", minval=0, maxval=59, group="Session Settings")
session_timezone = input.string("America/New_York", "Session Timezone", group="Session Settings")
orb_duration_minutes = input.int(5, "ORB Duration (Minutes)", minval=1, maxval=60, group="Session Settings")
signal_end_offset = input.int(90, "Signal Period Duration (Minutes)", minval=30, maxval=300, group="Session Settings")

// Style settings
orb_high_color = input.color(color.new(color.green, 50), "ORB High Color")
orb_low_color = input.color(color.new(color.red, 50), "ORB Low Color")
bullish_signal_color = input.color(color.green, "Bullish Signal Color")
bearish_signal_color = input.color(color.red, "Bearish Signal Color")

// Variables to store ORB levels
var float orb_high = na
var float orb_low = na
var int orb_start_time = na
var int orb_end_time = na
var bool orb_set = false

// Position tracking
var int position_counter = 0
var int active_positions = 0

// Function to get current time in specified timezone
get_session_time() =>
    current_hour = hour(time, session_timezone)
    current_minute = minute(time, session_timezone)
    current_hour * 60 + current_minute

// Calculate session times in minutes
session_start_minutes = session_start_hour * 60 + session_start_minute
session_end_minutes = session_end_hour * 60 + session_end_minute
orb_end_minutes = session_start_minutes + orb_duration_minutes
signal_end_minutes = session_start_minutes + signal_end_offset

// Check if we're in the ORB period
is_orb_period() =>
    current_time = get_session_time()
    current_time >= session_start_minutes and current_time < orb_end_minutes

// Check if we're in the signal period
is_signal_period() =>
    current_time = get_session_time()
    current_time >= orb_end_minutes and current_time < signal_end_minutes

// Check if we're in the overall trading session
is_trading_session() =>
    current_time = get_session_time()
    current_time >= session_start_minutes and current_time < session_end_minutes

// Reset ORB at the start of each trading session
new_session = is_trading_session() and not is_trading_session()[1]

if new_session or ta.change(dayofweek)
    orb_high := na
    orb_low := na
    orb_start_time := na
    orb_end_time := na
    orb_set := false
    position_counter := 0

// Capture ORB levels during the ORB period
if is_orb_period()
    if na(orb_high) or na(orb_low)
        orb_high := high
        orb_low := low
        orb_start_time := time
    else
        orb_high := math.max(orb_high, high)
        orb_low := math.min(orb_low, low)
    orb_end_time := time

// Mark ORB as set after the period ends
if not is_orb_period() and not na(orb_high) and not orb_set
    orb_set := true

// Fair Value Gap detection
bullish_fvg = high[2] < low and not na(orb_high)
bearish_fvg = low[2] > high and not na(orb_low)

// Check for FVG intersection with ORB boundaries during signal period
bullish_intersection = false
bearish_intersection = false

// Count active positions
active_positions := strategy.opentrades

if is_signal_period() and orb_set
    // Bullish FVG intersecting upper boundary
    if bullish_fvg
        if open[1] <= orb_high and close[1] >= orb_high
            bullish_intersection := true
    
    // Bearish FVG intersecting lower boundary  
    if bearish_fvg
        if open[1] >= orb_low and close[1] <= orb_low
            bearish_intersection := true

// Calculate position size based on risk per trade
calculate_position_size(entry, stop, is_long) =>
    risk_amount = strategy.equity * (risk_per_trade / 100)
    price_diff = is_long ? entry - stop : stop - entry
    position_size = risk_amount / price_diff
    position_size

// Strategy execution - Modified for multiple positions
if bullish_intersection
    position_counter += 1
    entry_price = close
    stop_loss_price = low[1]
    risk = entry_price - stop_loss_price
    take_profit_price = entry_price + (risk * risk_reward_ratio)
    
    // Calculate position size
    qty = calculate_position_size(entry_price, stop_loss_price, true)
    
    // Create unique entry ID
    entry_id = "Long_" + str.tostring(position_counter)
    exit_id = "LongExit_" + str.tostring(position_counter)
    
    // Enter long position
    strategy.entry(entry_id, strategy.long, qty=qty)
    
    // Set stop loss and take profit
    if use_stop_loss
        strategy.exit(exit_id, entry_id, stop=stop_loss_price, limit=use_take_profit ? take_profit_price : na)

if bearish_intersection
    position_counter += 1
    entry_price = close
    stop_loss_price = high[1]
    risk = stop_loss_price - entry_price
    take_profit_price = entry_price - (risk * risk_reward_ratio)
    
    // Calculate position size
    qty = calculate_position_size(entry_price, stop_loss_price, false)
    
    // Create unique entry ID
    entry_id = "Short_" + str.tostring(position_counter)
    exit_id = "ShortExit_" + str.tostring(position_counter)
    
    // Enter short position
    strategy.entry(entry_id, strategy.short, qty=qty)
    
    // Set stop loss and take profit
    if use_stop_loss
        strategy.exit(exit_id, entry_id, stop=stop_loss_price, limit=use_take_profit ? take_profit_price : na)

// Close all positions at end of trading session
if not is_trading_session() and strategy.position_size != 0
    strategy.close_all("End of Trading Session")

// Plot ORB levels
plot(show_orb and orb_set ? orb_high : na, "ORB High", color=orb_high_color, linewidth=2, style=plot.style_line)
plot(show_orb and orb_set ? orb_low : na, "ORB Low", color=orb_low_color, linewidth=2, style=plot.style_line)

// Plot intersection signals
plotshape(series=show_signals and bullish_intersection, title="Bullish FVG Intersection", style=shape.triangleup, location=location.belowbar, color=bullish_signal_color, size=size.normal)
plotshape(series=show_signals and bearish_intersection, title="Bearish FVG Intersection", style=shape.triangledown, location=location.abovebar, color=bearish_signal_color, size=size.normal)

// Background highlights for different session periods
bgcolor(is_orb_period() ? color.new(color.yellow, 90) : na, title="ORB Period")
bgcolor(is_signal_period() and orb_set ? color.new(color.blue, 95) : na, title="Signal Period")
bgcolor(is_trading_session() and not is_signal_period() and not is_orb_period() ? color.new(color.gray, 98) : na, title="Trading Session")

// Plot session boundaries
plot(is_trading_session() ? high : na, "Session High", color=color.new(color.orange, 80), linewidth=1)
plot(is_trading_session() ? low : na, "Session Low", color=color.new(color.orange, 80), linewidth=1)