Strategi Perdagangan Harian Kesenjangan Nilai Wajar Dinamis: Sistem Pengujian Balik Multi-Kerangka Waktu Berdasarkan Teori SMC

FVG SMC SL TP Risk-Reward Ratio
Tanggal Pembuatan: 2025-03-26 15:27:29 Akhirnya memodifikasi: 2025-03-26 15:27:29
menyalin: 2 Jumlah klik: 601
2
fokus pada
319
Pengikut

Strategi Perdagangan Harian Kesenjangan Nilai Wajar Dinamis: Sistem Pengujian Balik Multi-Kerangka Waktu Berdasarkan Teori SMC Strategi Perdagangan Harian Kesenjangan Nilai Wajar Dinamis: Sistem Pengujian Balik Multi-Kerangka Waktu Berdasarkan Teori SMC

Ringkasan

Strategi perdagangan intraday adalah sistem perdagangan kuantitatif yang didasarkan pada teori struktur pasar yang berfokus pada identifikasi dan perdagangan kesenjangan nilai wajar dalam harga (Fair Value Gap, atau FVG). Strategi ini menggunakan tiga bentuk garis untuk mendeteksi ketidakseimbangan penawaran dan permintaan dalam perilaku harga, dan melakukan perdagangan masuk ketika harga kembali ke daerah-daerah tersebut. Strategi ini menggunakan perbandingan risiko dan pengembalian risiko yang ditetapkan untuk mengelola risiko, dan mengatur mekanisme posisi yang ketat untuk waktu tertentu setiap hari untuk menghindari risiko malam.

Prinsip Strategi

Prinsip-prinsip inti dari strategi perdagangan gap nilai wajar didasarkan pada “area yang belum ditransfer” atau “gap” yang ditinggalkan saat harga bergerak cepat. Area-area ini mewakili ketidakseimbangan pasokan dan permintaan yang serius, yang biasanya akan “diisi” atau “diuji ulang” di masa depan. Secara khusus, strategi bekerja dengan cara berikut:

  1. Mekanisme deteksi celahStrategi: Menggunakan tiga model filter untuk mengidentifikasi dua jenis FVG:

    • Lihat FVG: harga terendah saat ini lebih tinggi dari harga terendah sebelumnya dari dua jalur, dan harga penutupan jalur sebelumnya lebih tinggi dari harga terendah sebelumnya dari dua jalur.
    • Penurunan FVG: harga teratas dari garis pivot saat ini lebih rendah dari harga terendah sebelum dua garis pivot, dan harga penutupan dari garis pivot sebelumnya lebih rendah dari harga terendah sebelum dua garis pivot.
  2. Logika inputStrategi tidak masuk langsung saat FVG terbentuk, tetapi menunggu harga kembali ke daerah-daerah berikut:

    • Pengamat FVG: Bila harga kembali ke batas atas daerah FVG (puncak) maka akan terjadi sinyal multiply.
    • FVG bearish: Mencetak sinyal shorting ketika harga melesat ke batas bawah daerah FVG (<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  3. Manajemen Risiko

    • Stop loss diatur pada batas FVG yang sesuai ((minimal FVG bullish atau maksimum FVG bearish)).
    • Target keuntungan menggunakan rasio risiko-pengembalian 1:2 yang dihitung sebagai: harga masuk ± ((harga masuk - stop loss) × 2 ).
  4. Posisi imbang di akhir hariStrategi: Setiap hari pada pukul 3:15 pm (waktu India) secara otomatis menghapus semua posisi dan menghapus semua array FVG untuk mempersiapkan hari perdagangan berikutnya.

  5. Transaksi yang ditumpukStrategi ini memungkinkan maksimal 5 kali perdagangan berlapis (pyramiding), yang berarti Anda dapat memegang beberapa posisi di arah yang sama, sehingga meningkatkan keuntungan Anda di pasar yang sedang tren.

Metode ini memanfaatkan ketidakkonsistenan dalam struktur pasar dan teori perilaku harga untuk mencoba menangkap perilaku harga yang dapat diprediksi saat mengisi area yang tidak seimbang.

Keunggulan Strategis

Setelah menganalisis kode secara mendalam, strategi ini menunjukkan beberapa keuntungan:

  1. Kriteria transaksi yang objektifStrategi menggunakan persyaratan matematika yang jelas untuk mengidentifikasi FVG dan titik masuk, menghilangkan penilaian subjektif dan meningkatkan disiplin dan konsistensi transaksi.

  2. Transaksi berdasarkan struktur pasarStrategi ini berfokus pada area di mana ada ketidakseimbangan penawaran dan permintaan yang sebenarnya di pasar, bukan mengandalkan sinyal dari indikator tradisional, yang sering tertinggal dari tindakan harga.

  3. Mekanisme pengendalian risiko

    • Stop loss yang diprediksi menentukan risiko maksimum untuk setiap transaksi.
    • Pengembalian risiko yang tetap lebih wajar daripada tingkat kemenangan yang diperlukan untuk memastikan keuntungan jangka panjang.
    • Penutupan obligasi pada akhir hari menghilangkan risiko overnight.
  4. Potensi pendapatan kompositStrategi ini memungkinkan untuk meningkatkan keuntungan secara signifikan di pasar tren yang kuat, sambil mengendalikan risiko setiap posisi dengan stop loss.

  5. AdaptasiStrategi tidak bergantung pada tingkat harga tetap, tetapi secara dinamis mengidentifikasi area-area kunci dalam kondisi pasar saat ini, sehingga dapat beradaptasi dalam berbagai lingkungan dan instrumen pasar.

  6. Efisiensi pemrograman: Kode menggunakan Array untuk menyimpan informasi FVG dan secara efektif mengelola beberapa peluang perdagangan potensial, memastikan bahwa sistem dapat melacak dan menanggapi beberapa tingkat harga.

  7. Bantuan visualStrategi: menampilkan area FVG secara intuitif di grafik (hijau untuk FVG bullish, merah untuk FVG bearish), membantu pedagang memahami proses pengambilan keputusan sistem.

Risiko Strategis

Meskipun strategi ini memiliki dasar teoritis yang kuat dan banyak keuntungan, ada beberapa faktor risiko yang perlu diperhatikan:

  1. Risiko Penembusan PalsuDalam pasar penataan, harga mungkin beberapa kali menyentuh batas FVG tanpa membentuk tren berkelanjutan, menyebabkan beberapa stop loss. Solusi dapat mencakup penambahan filter lingkungan pasar tambahan atau indikator pengakuan tren.

  2. Risiko transaksi tumpang tindih: Memungkinkan maksimal 5 posisi arah yang sama dapat menyebabkan eksposur berlebihan ke arah yang salah, terutama ketika tren tiba-tiba berbalik. Disarankan untuk menerapkan batasan risiko keseluruhan, seperti tidak melebihi persentase tertentu dari risiko maksimum untuk semua posisi.

  3. Keterbatasan RR yang tetap: Menggunakan rasio risiko / keuntungan 1: 2 yang tetap mungkin tidak cocok untuk semua kondisi pasar. Di pasar yang kurang volatil, tujuan seperti itu mungkin sulit untuk dicapai; Di pasar yang berfluktuasi tinggi, mungkin untuk keluar dari perdagangan yang menguntungkan terlalu dini. Pertimbangkan tujuan keuntungan yang disesuaikan berdasarkan volatilitas pasar.

  4. Kurangnya penyaringan pasarStrategi menghasilkan sinyal di semua kondisi pasar, tanpa mempertimbangkan tren atau fluktuasi keseluruhan. Dalam lingkungan tren yang kuat, negosiasi negatif FVG dapat menyebabkan kerugian berkelanjutan. Penambahan filter tren dapat meningkatkan kinerja secara signifikan.

  5. Kurangnya konfirmasi volume transaksiStrategi ini hanya didasarkan pada perilaku harga tanpa mempertimbangkan konfirmasi volume, yang dapat menyebabkan sinyal palsu di area volume rendah. Integrasi analisis volume dapat meningkatkan kualitas sinyal.

  6. Potensi masalah untuk keluar pada waktu yang tetap: Keluar pada waktu tertentu setiap hari dapat menyebabkan keluar prematur di posisi menguntungkan atau kehilangan kesempatan keluar yang lebih baik di posisi yang kurang menguntungkan. Pertimbangkan kondisi keluar yang dikombinasikan dengan tindakan harga.

  7. Bergantung pada hipotesis retrospeksi sejarahStrategi: Asumsi bahwa FVG di masa depan akan berperilaku mirip dengan pola yang diamati di masa lalu. Dinamika pasar dapat berubah dan mengurangi efektivitas pola tersebut. Penting untuk secara teratur mengoptimalkan kembali parameter dan memverifikasi asumsi.

Arah optimasi strategi

Berdasarkan analisis mendalam dari kode, berikut adalah beberapa kemungkinan optimasi:

  1. Filter struktur pasar

    • Untuk mencapai tingkat yang lebih tinggi dari sistem identifikasi tren, hanya berdagang FVG dalam arah tren.
    • Anda dapat menambahkan filter arah rata-rata bergerak sederhana atau analisis struktur pasar yang lebih kompleks.
    • Filter semacam itu dapat secara signifikan mengurangi kerugian yang ditimbulkan oleh perdagangan berlawanan arah.
  2. Adaptasi volatilitas

    • Mencapai target stop loss dan profit yang dinamis berdasarkan volatilitas pasar saat ini, bukan menggunakan rasio risiko-pengembalian yang tetap.
    • Memperluas target dalam lingkungan yang berfluktuasi tinggi dan memperketat target dalam lingkungan yang berfluktuasi rendah.
    • Volatilitas dapat diukur dengan menggunakan ATR (Average True Range) atau indikator serupa.
  3. Konfirmasi volume transaksi

    • Menambahkan kondisi volume transaksi untuk memastikan bahwa ada dukungan volume transaksi yang memadai saat pembentukan dan pengukuran kembali FVG.
    • Hal ini dapat mengurangi sinyal palsu dalam lingkungan yang kurang likuiditas.
  4. Beradaptasi dengan ukuran posisi

    • Dimensi posisi dinamis berdasarkan tingkat kemenangan historis, volatilitas saat ini, dan karakteristik FVG tertentu.
    • Untuk FVG yang lebih “bersih” (dengan pola tiga pilar yang lebih jelas) atau FVG yang terbentuk dalam tren yang kuat, ukuran posisi dapat ditingkatkan.
  5. Analisis multi-frame waktu

    • Mengintegrasikan analisis FVG pada kerangka waktu yang lebih tinggi, memprioritaskan sinyal yang selaras dengan FVG pada kerangka waktu yang lebih tinggi.
    • Metode ini dapat meningkatkan kualitas sinyal dan tingkat keberhasilan secara keseluruhan.
  6. Transaksi Smart Overlay

    • Memodifikasi logika perdagangan superimposed, sehingga didasarkan pada kekuatan tren dan keberhasilan perdagangan sebelumnya.
    • Kemungkinan untuk melakukan overlay dapat ditingkatkan setelah transaksi yang menguntungkan dan dikurangi setelah transaksi yang merugikan.
  7. Pembelajaran Mesin

    • Implementasi algoritma pembelajaran mesin untuk mengidentifikasi karakteristik FVG yang paling mungkin berhasil.
    • Ini dapat mencakup analisis ukuran FVG, kecepatan pembentukan, dan kondisi pasar.
  8. Kerangka Pemantauan Statistik

    • Mengembangkan kerangka pengujian yang lebih komprehensif untuk menilai kinerja strategi dalam berbagai kondisi pasar.
    • Menggunakan simulasi Monte Carlo untuk menilai hasil yang diharapkan dalam berbagai kombinasi parameter dan kondisi pasar.

Meringkaskan

Strategi perdagangan intraday Dynamic Fair Value Gap memberikan metode sistematis untuk mengidentifikasi dan memperdagangkan area ketidakseimbangan penawaran dan permintaan di pasar. Dengan memanfaatkan tiga pilar FVG dan aturan masuk yang jelas, strategi ini memiliki keandalan teoritis dan kepraktisan praktis. Kerangka kerja manajemen risiko yang kuat, termasuk stop loss yang telah ditentukan, rasio pengembalian risiko tetap, dan mekanisme posisi akhir hari, memberikan dasar yang kuat untuk disiplin perdagangan.

Keuntungan utama dari strategi ini adalah bahwa metodenya yang bersifat obyektif dan berbasis struktur pasar memungkinkan untuk tetap relevan dalam berbagai lingkungan pasar. Namun, efektivitas strategi dapat ditingkatkan secara signifikan dengan menerapkan arah optimasi yang disarankan, khususnya dengan menambahkan filter lingkungan pasar, penyesuaian berdasarkan volatilitas, dan konfirmasi volume transaksi.

Perlu dicatat bahwa tidak ada strategi perdagangan, tidak peduli seberapa sempurna, yang dapat menjamin kesuksesan. Perdagangan yang sukses membutuhkan tidak hanya strategi yang solid, tetapi juga disiplin pelaksanaan yang ketat, manajemen dana yang tepat, dan pemahaman yang mendalam tentang pasar.

Kode 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)