Strategi Dagangan Hari Jurang Nilai Saksama Dinamik: Sistem Ujian Belakang Rangka Masa Berbilang Masa Berdasarkan Teori SMC

FVG SMC SL TP Risk-Reward Ratio
Tarikh penciptaan: 2025-03-26 15:27:29 Akhirnya diubah suai: 2025-03-26 15:27:29
Salin: 2 Bilangan klik: 601
2
fokus pada
319
Pengikut

Strategi Dagangan Hari Jurang Nilai Saksama Dinamik: Sistem Ujian Belakang Rangka Masa Berbilang Masa Berdasarkan Teori SMC Strategi Dagangan Hari Jurang Nilai Saksama Dinamik: Sistem Ujian Belakang Rangka Masa Berbilang Masa Berdasarkan Teori SMC

Gambaran keseluruhan

Strategi perdagangan dalam hari yang dinamik adalah sistem perdagangan kuantitatif berdasarkan teori struktur pasaran yang memberi tumpuan kepada pengenalan dan perdagangan jurang nilai yang adil dalam harga (Fair Value Gap, atau FVG). Strategi ini menggunakan tiga bentuk garis untuk mengesan ketidakseimbangan bekalan dan permintaan dalam tingkah laku harga, dan melakukan perdagangan masuk ketika harga memantau kawasan tersebut. Strategi ini menggunakan perbandingan risiko dan ganjaran yang ditetapkan untuk pengurusan risiko, dan menetapkan mekanisme penempatan paksa pada waktu tertentu setiap hari untuk mengelakkan risiko malam.

Prinsip Strategi

Prinsip-prinsip utama strategi perdagangan jurang nilai adil adalah berdasarkan pada “kawasan yang tidak ditukar” atau “lubang” yang ditinggalkan oleh harga ketika bergerak dengan cepat. Kawasan-kawasan ini mewakili ketidakseimbangan permintaan dan bekalan yang serius, yang biasanya akan “diisi” atau “diuji semula” pada masa akan datang. Secara khusus, strategi ini berfungsi dengan cara berikut:

  1. Mekanisme pengesanan celahStrategi menggunakan tiga corak garisan untuk mengenal pasti dua jenis FVG:

    • Lihat FVG: harga terendah pada hari ini adalah lebih tinggi daripada harga tertinggi sebelum kedua-dua baris, dan harga penutupan pada baris sebelumnya adalah lebih tinggi daripada harga tertinggi sebelum kedua-dua baris.
    • FVG turun: harga tertinggi pada garisan sekarang lebih rendah daripada harga terendah sebelum dua garisan, dan harga penutupan garisan sebelumnya lebih rendah daripada harga terendah sebelum dua garisan.
  2. Logik input pengulanganStrategi ini adalah untuk tidak memasuki pasaran dengan segera apabila FVG terbentuk, tetapi menunggu harga kembali ke kawasan-kawasan berikut:

    • Penonton FVG: Apabila harga jatuh kembali ke sempadan atas kawasan FVG ((titik tinggi), mencetuskan sinyal ganda.
    • Penurunan FVG: Apabila harga melambung ke sempadan bawah kawasan FVG (<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  3. Pengurusan Risiko

    • Stop loss ditetapkan pada sempadan FVG yang sepadan ((minimum FVG yang berpatutan atau maksimum FVG yang berpatutan)).
    • Objektif keuntungan menggunakan nisbah risiko-balas 1: 2, yang dikira sebagai: harga kemasukan ± ((harga kemasukan-stop loss) × 2 ).
  4. Hujung hari kedudukan kosongStrategi: Setiap hari pada jam 3:15 petang (waktu India) secara automatik melonggarkan semua pegangan dan membersihkan semua array FVG untuk bersiap sedia untuk hari dagangan seterusnya.

  5. Pertukaran Tumpang TindihStrategi ini membenarkan maksimum 5 dagangan berlapis (pyramiding), yang bermaksud bahawa anda boleh memegang lebih banyak kedudukan dalam arah yang sama, dan dengan itu meningkatkan keuntungan anda dalam pasaran yang kuat.

Kaedah ini menggunakan teori ketidakterusunan dalam struktur pasaran dan tingkah laku harga untuk cuba menangkap tingkah laku harga yang boleh diramalkan ketika mengisi kawasan yang tidak seimbang.

Kelebihan Strategik

Setelah mengkaji kod dengan mendalam, strategi ini menunjukkan beberapa kelebihan:

  1. Kriteria Objektif PerdaganganStrategi menggunakan syarat matematik yang jelas untuk mengenal pasti FVG dan titik masuk, menghilangkan penilaian subjektif dan meningkatkan disiplin dan kesesuaian perdagangan.

  2. Perdagangan berdasarkan struktur pasaranStrategi ini memberi tumpuan kepada kawasan di mana terdapat ketidakseimbangan bekalan dan permintaan yang sebenar di pasaran, dan bukannya bergantung kepada isyarat dari penunjuk tradisional, yang sering tertinggal daripada tindakan harga.

  3. Mekanisme kawalan risiko

    • Hentian terdahulu menentukan risiko maksimum bagi setiap transaksi.
    • Pendapatan risiko tetap adalah lebih munasabah daripada peluang kemenangan yang diperlukan untuk memastikan keuntungan jangka panjang.
    • Ia juga boleh menyebabkan kerugian yang lebih besar.
  4. Potensi pendapatan kompositDengan membenarkan perdagangan berlapis (maksimum 5 kedudukan), strategi ini dapat meningkatkan keuntungan dengan ketara dalam pasaran trend yang kuat, sambil mengawal risiko setiap kedudukan melalui hentian.

  5. Kebolehan beradaptasiStrategi ini tidak bergantung pada tahap harga tetap, tetapi secara dinamik mengenal pasti kawasan-kawasan penting dalam keadaan pasaran semasa, menjadikannya sesuai dalam pelbagai persekitaran dan instrumen pasaran.

  6. Kecekapan pengaturcaraan: Kod menggunakan maklumat FVG yang disimpan secara berturut-turut dan menguruskan pelbagai peluang perdagangan yang berpotensi dengan berkesan, memastikan sistem dapat mengesan dan bertindak balas terhadap pelbagai tahap harga.

  7. Pembantu visualStrategi: Memaparkan kawasan FVG secara intuitif di carta ((hijau untuk FVG bullish, merah untuk FVG bearish), membantu peniaga memahami proses keputusan sistem.

Risiko Strategik

Walaupun strategi ini mempunyai asas teori yang kukuh dan banyak kelebihan, terdapat beberapa faktor risiko yang perlu diperhatikan:

  1. Risiko penembusan palsu: Dalam pasaran yang menyusun, harga mungkin berulang kali menyentuh sempadan FVG tanpa membentuk trend yang berterusan, menyebabkan beberapa stop loss. Penyelesaian boleh termasuk menambahkan penapis persekitaran pasaran tambahan atau penunjuk pengesahan trend.

  2. Risiko perdagangan berlapis: membenarkan sehingga 5 kedudukan arah yang sama yang boleh menyebabkan pendedahan berlebihan ke arah yang salah, terutamanya apabila trend tiba-tiba berbalik. Disyorkan untuk melaksanakan had risiko keseluruhan, seperti risiko maksimum untuk semua kedudukan tidak melebihi peratusan tertentu akaun.

  3. Batasan bagi nisbah ganjaran risiko tetapMenggunakan nisbah ganjaran risiko 1: 2 yang tetap mungkin tidak sesuai untuk semua keadaan pasaran. Dalam pasaran yang kurang turun naik, matlamat seperti itu mungkin sukar dicapai. Dalam pasaran yang tinggi turun naik, mungkin terlalu awal untuk keluar dari perdagangan yang menguntungkan.

  4. Kurangnya penapis persekitaran pasaranStrategi menghasilkan isyarat dalam semua keadaan pasaran, tanpa mempertimbangkan trend keseluruhan atau keadaan turun naik. Dalam persekitaran yang kuat trend, FVG boleh menyebabkan kerugian berturut-turut. Tambahan penapis trend dapat meningkatkan prestasi dengan ketara.

  5. Kekurangan pengesahan jumlah transaksiStrategi hanya berdasarkan tindakan harga, tanpa mempertimbangkan pengesahan jumlah transaksi, yang boleh menyebabkan isyarat palsu di kawasan dengan jumlah transaksi rendah.

  6. Masalah yang mungkin timbul dengan penarikan diri pada waktu tetap: Keluar pada waktu tertentu setiap hari boleh menyebabkan keluar terlalu awal di kedudukan yang menguntungkan atau kehilangan peluang keluar yang lebih baik di kedudukan yang tidak menguntungkan. Pertimbangkan syarat keluar yang digabungkan berdasarkan tindakan harga.

  7. Bergantung kepada hipotesis pengesanan sejarah: Strategi mengandaikan bahawa FVG akan bertindak seperti yang telah dilihat pada masa lalu. Keadaan pasaran mungkin berubah dan mengurangkan keberkesanan model ini. Adalah penting untuk mengoptimumkan semula parameter dan mengesahkan hipotesis secara berkala.

Arah pengoptimuman strategi

Berdasarkan analisis yang mendalam mengenai kod, berikut adalah beberapa arah pengoptimuman yang mungkin:

  1. Penapis struktur pasaran

    • Sistem pengiktirafan trend yang lebih maju, hanya berdagang FVG dalam arah trend.
    • Anda boleh menambah penapis arah purata bergerak yang mudah atau analisis struktur pasaran yang lebih kompleks.
    • Penapis seperti ini dapat mengurangkan kerugian yang disebabkan oleh perdagangan berlawanan arah.
  2. Penyesuaian Volatiliti

    • Mencapai matlamat stop loss dan keuntungan yang dinamik berdasarkan turun naik pasaran semasa, dan bukannya menggunakan nisbah ganjaran risiko tetap.
    • Memperluas sasaran dalam persekitaran yang bergelombang tinggi dan mengetatkan sasaran dalam persekitaran yang bergelombang rendah.
    • Anda boleh menggunakan ATR (Average True Range) atau indikator serupa untuk mengukur turun naik.
  3. Pengesahan jumlah transaksi

    • Menambah syarat jumlah transaksi untuk memastikan sokongan jumlah transaksi yang mencukupi semasa pembentukan dan pengukuran semula FVG.
    • Ini boleh mengurangkan isyarat palsu dalam persekitaran yang kurang kebolehliruan.
  4. Menyesuaikan saiz kedudukan

    • Skala kedudukan dinamik berdasarkan kadar kemenangan sejarah, turun naik semasa dan ciri-ciri FVG tertentu.
    • Untuk FVG yang lebih “bersih” (pattern tiga-jalur lebih jelas) atau FVG yang terbentuk dalam trend yang kuat, saiz kedudukan boleh ditingkatkan.
  5. Analisis pelbagai kerangka masa

    • Mengintegrasikan analisis FVG pada bingkai masa yang lebih tinggi, memberi keutamaan kepada isyarat yang sejajar dengan FVG pada bingkai masa yang lebih tinggi.
    • Kaedah ini dapat meningkatkan kualiti isyarat dan kadar kejayaan keseluruhan.
  6. Transaksi berlapis pintar

    • Ubah logik dagangan berlainan lapisan berdasarkan kekuatan trend dan kejayaan dagangan sebelumnya.
    • Kemungkinan untuk meningkatkan perdagangan berlapis selepas perdagangan yang menguntungkan, dan mengurangkan perdagangan yang rugi.
  7. Pembelajaran Mesin

    • Menerapkan algoritma pembelajaran mesin untuk mengenal pasti ciri-ciri FVG yang paling mungkin berjaya.
    • Ini boleh termasuk menganalisis saiz FVG, kelajuan pembentukan, dan keadaan pasaran.
  8. Rangka kerja tinjauan statistik

    • Membangunkan kerangka yang lebih komprehensif untuk menilai prestasi strategi dalam keadaan pasaran yang berbeza.
    • Menggunakan simulasi Monte Carlo untuk menilai hasil yang dijangkakan di bawah pelbagai kombinasi parameter dan keadaan pasaran.

ringkaskan

Strategi dagangan dalam masa sehari dengan jurang nilai wajar dinamik menyediakan kaedah sistematik untuk mengenal pasti dan berdagang kawasan ketidakseimbangan bekalan dan permintaan di pasaran. Dengan menggunakan model FVG tiga baris dan peraturan kemasukan yang jelas, strategi ini mempunyai keberkesanan teori dan kebolehgunaan praktikal. Kerangka kerja pengurusan risiko yang kuat, termasuk stop loss yang ditakrifkan, nisbah pulangan risiko tetap dan mekanisme kedudukan akhir hari, memberikan asas yang kuat untuk disiplin perdagangan.

Kelebihan utama strategi ini adalah pendekatan yang objektif dan berdasarkan struktur pasaran, yang membolehkan ia kekal relevan dalam pelbagai persekitaran pasaran. Walau bagaimanapun, keberkesanan strategi mungkin meningkat dengan ketara dengan melaksanakan arah pengoptimuman yang disyorkan, terutamanya dengan menambahkan penapis persekitaran pasaran, penyesuaian berdasarkan turun naik dan pengesahan jumlah transaksi.

Perlu diperhatikan bahawa tidak ada strategi perdagangan, tidak kira seberapa sempurna, yang menjamin kejayaan. Perdagangan yang berjaya memerlukan bukan sahaja strategi yang baik, tetapi juga disiplin pelaksanaan yang ketat, pengurusan dana yang betul, dan pemahaman yang mendalam tentang pasaran.

Kod sumber strategi
/*backtest
start: 2024-03-26 00:00:00
end: 2025-03-25 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Intraday FVG", overlay=true, pyramiding=5, max_bars_back=500, default_qty_type=strategy.percent_of_equity, commission_type=strategy.commission.percent)

// 2. FVG Detection (Three-Candle Pattern)
var bullFVGHigh = array.new_float()
var bullFVGLow = array.new_float()
var bullFVGIndex = array.new_int()
var bearFVGHigh = array.new_float()
var bearFVGLow = array.new_float()
var bearFVGIndex = array.new_int()

detectFVG() =>

    // Bullish FVG: Current low > prior high AND next high < current low
    bullCondition = low > high[2] and close[1] > high[2]
    // Bearish FVG: Current high < prior low AND next low > current high
    bearCondition = high < low[2] and close[1] < low[2]


    if bullCondition 
        // log.info("bull condition met: {0} {0} {0}", high[2], close[1], low)
        array.push(bullFVGHigh, low)
        array.push(bullFVGLow, low[2])
        array.push(bullFVGIndex, bar_index)

    
    if bearCondition
        // log.info("bear condition met: {0} {0} {0}", low[2], close[1], high)
        array.push(bearFVGHigh, high[2])
        array.push(bearFVGLow, high)
        array.push(bearFVGIndex, bar_index)

detectFVG()

// 3. Retest Execution Logic
checkRetests(arrayHigh, arrayLow, barIndex, direction) =>
    // log.info("{0} : {1}", bar_index, time)
    i = array.size(arrayHigh) - 1
    
    while i >= 0

        // log.info("barIndex : {0}" , array.get(barIndex, i))
        // log.info("bar_index : {0}" , bar_index)
        
        if array.get(barIndex, i) <  bar_index
            
            fvgHigh = array.get(arrayHigh, i)
            fvgLow = array.get(arrayLow, i)
            // log.info("visting : {0} : {1} : {2} : {3} ", array.get(barIndex, i), bar_index, fvgHigh, fvgLow)
            
            if direction == "long" and low <= fvgHigh
                // log.info("entering long")
                sl = array.get(arrayLow, i)  // Previous candle's low
                entry = close
                tp = entry + (entry - sl)*2
                strategy.entry("L"+str.tostring(array.get(barIndex, i)), strategy.long)
                strategy.exit("XL"+str.tostring(array.get(barIndex, i)), "L"+str.tostring(array.get(barIndex, i)), stop=sl, limit=tp)
                array.remove(arrayHigh, i)
                array.remove(arrayLow, i)
                array.remove(barIndex, i)
            
            if direction == "short" and high >= fvgLow
                // log.info("entering short")
                sl = array.get(arrayHigh, i)   // Previous candle's low
                entry = close
                tp = entry - (sl - entry)*2
                strategy.entry("S"+str.tostring(array.get(barIndex, i)), strategy.short)
                strategy.exit("XS"+str.tostring(array.get(barIndex, i)), "S"+str.tostring(array.get(barIndex, i)), stop=sl, limit=tp)
                array.remove(arrayHigh, i)
                array.remove(arrayLow, i)
                array.remove(barIndex, i)
        
        i := i - 1


checkRetests(bullFVGHigh, bullFVGLow, bullFVGIndex, "long")
checkRetests(bearFVGHigh, bearFVGLow, bearFVGIndex,"short")

// 5. Daily Exit at 3:15 PM IST
exitTime = hour == 15 and minute >= 15
if exitTime
    strategy.close_all()
    array.clear(bullFVGHigh)
    array.clear(bullFVGLow)
    array.clear(bearFVGHigh)
    array.clear(bearFVGLow)
    array.clear(bullFVGIndex)
    array.clear(bearFVGIndex)