
Blok penembusan pesanan dalam kisaran permintaan berdasarkan penyaringan volume transaksi adalah strategi perdagangan kuantitatif yang menggabungkan teori fragmentasi, konfirmasi volume transaksi, dan konsep blok pesanan dalam analisis teknis. Strategi ini mengidentifikasi titik-titik fragmentasi penting dalam harga historis, dan menggabungkan mekanisme penyaringan volume transaksi untuk menentukan kisaran permintaan potensial, dan melakukan sinyal perdagangan ketika harga menembus kisaran kunci ini.
Prinsip-prinsip inti dari strategi ini didasarkan pada teori split dan konsep blok order. Pertama, strategi ini mengidentifikasi kisaran penawaran dan permintaan potensial dengan menghitung titik split harga dalam periode tertentu. Titik split atas didefinisikan sebagai tingkat harga pada titik tertinggi dalam periode tertentu, dan titik split bawah didefinisikan sebagai tingkat harga pada titik terendah dalam periode tertentu.
Ketika titik uptrend yang efektif diidentifikasi, strategi menandai titik ini sebagai resistance area dan menunggu harga untuk menerobos ke atas. Ketika harga menerobos titik uptrend, strategi menilai bahwa hubungan penawaran dan permintaan berubah, dan area resistensi asli diubah menjadi area dukungan, dan beberapa operasi dilakukan. Sebaliknya, ketika titik downtrend yang efektif diidentifikasi, strategi menandai titik ini sebagai area dukungan, dan ketika harga menerobos ke bawah, area dukungan asli diubah menjadi area resistensi, dan operasi kosong dilakukan.
Strategi ini memungkinkan pengguna untuk memilih dua jenis konfirmasi terobosan: terobosan entitas dan terobosan entitas murni. Terobosan entitas menggunakan harga tertinggi dan terendah sebagai kriteria konfirmasi terobosan, sedangkan terobosan entitas murni menggunakan harga penutupan sebagai kriteria konfirmasi.
Strategi ini memiliki beberapa keunggulan yang signifikan. Pertama, mekanisme penyaringan volume transaksi secara signifikan meningkatkan keandalan sinyal. Strategi pemecahan pecahan tradisional mudah menghasilkan sinyal pecah palsu, sedangkan melalui konfirmasi volume transaksi dapat secara efektif menyaring terobosan lemah yang kurang dalam volume transaksi, memastikan sinyal perdagangan hanya dihasilkan dengan partisipasi pasar yang memadai.
Kedua, strategi ini didasarkan pada teori order block, yang memiliki dasar logika pasar yang kuat. Blok order mewakili aksi jual beli yang terpusat dari dana besar pada harga tertentu, dan daerah-daerah ini sering membentuk tingkat dukungan dan resistensi yang penting. Ketika harga menembus daerah-daerah kunci ini, biasanya berarti struktur pasar telah berubah secara signifikan, memberikan peluang bagi pedagang untuk masuk dengan probabilitas tinggi.
Ketiga, strategi memiliki fleksibilitas dan konfigurasi yang baik. Pengguna dapat menyesuaikan siklus pembagian, perkalian volume transaksi, dan parameter lainnya sesuai dengan lingkungan pasar yang berbeda dan preferensi pribadi.
Akhirnya, logika dari strategi yang jelas dan ringkas, mudah dipahami dan diterapkan. Dengan identifikasi yang jelas, penyaringan volume transaksi dan proses konfirmasi terobosan, strategi menghindari kombinasi indikator teknis yang rumit dan mengurangi risiko over-optimalisasi.
Meskipun ada banyak keuntungan dari strategi ini, ada beberapa risiko potensial yang perlu diperhatikan. Pertama, strategi ini sangat bergantung pada data volume transaksi. Dalam kasus data volume transaksi yang tidak akurat atau likuiditas pasar yang buruk, mekanisme penyaringan volume transaksi dapat menghasilkan kesalahan penilaian yang menyebabkan kehilangan peluang perdagangan yang efektif atau menghasilkan sinyal palsu.
Kedua, ada masalah keterlambatan strategi. Karena perlu menunggu konfirmasi titik putaran dan terjadinya terobosan, waktu masuk strategi mungkin tertinggal dari titik masuk yang optimal. Keterlambatan ini dapat mempengaruhi profitabilitas strategi dalam lingkungan pasar yang berubah dengan cepat.
Ketiga, strategi tidak memiliki mekanisme stop loss dan stop loss yang jelas. Meskipun strategi dapat mengidentifikasi waktu masuk, namun tidak menyediakan langkah-langkah manajemen risiko yang sesuai. Dalam situasi pasar yang sangat berfluktuasi atau kegagalan terobosan, pedagang mungkin menghadapi risiko kerugian yang lebih besar.
Untuk mengurangi risiko ini, disarankan bagi pedagang untuk melakukan konfirmasi sinyal dengan alat analisis teknis lainnya, mengatur level stop loss yang masuk akal, dan menyesuaikan parameter strategi sesuai dengan kondisi pasar yang dinamis. Pada saat yang sama, disarankan untuk melakukan pengembalian dan verifikasi strategi yang memadai dalam berbagai lingkungan pasar.
Strategi ini memiliki beberapa arah pengoptimalan. Pertama, dapat diperkenalkan dinamika transaksi volume throttling mekanisme. Strategi saat ini menggunakan variabel volume transaksi tetap sebagai kondisi penyaringan, tetapi karakteristik volume transaksi pasar akan berubah dari waktu ke waktu. Dengan memperkenalkan adaptif transaksi volume throttling, dapat secara dinamis menyesuaikan kriteria penyaringan sesuai dengan situasi pasar yang sebenarnya, meningkatkan kemampuan adaptasi strategi.
Kedua, disarankan untuk menambahkan modul manajemen risiko yang lebih baik. Anda dapat mengatur level stop loss berdasarkan volatilitas, level support resistance, atau level stop loss proporsional. Anda juga dapat mempertimbangkan untuk memperkenalkan mekanisme manajemen posisi, menyesuaikan skala perdagangan sesuai dengan kekuatan sinyal dan volatilitas pasar.
Ketiga, dapat dipertimbangkan untuk memperkenalkan analisis multi-frame. Strategi saat ini hanya berjalan dalam satu frame waktu dan dapat meningkatkan tingkat keberhasilan strategi dengan menggabungkan analisis tren pada frame waktu yang lebih tinggi. Sebagai contoh, sinyal perdagangan hanya dijalankan jika arah tren pada frame waktu yang lebih tinggi konsisten.
Keempat, algoritma identifikasi fragmentasi dapat dioptimalkan. Identifikasi fragmentasi yang relatif sederhana saat ini dapat dipertimbangkan untuk memperkenalkan metode identifikasi fragmentasi yang lebih kompleks, seperti identifikasi fragmentasi berdasarkan pola perilaku harga atau identifikasi fragmentasi komposit yang dikombinasikan dengan indikator teknis lainnya.
Akhirnya, disarankan untuk menambahkan mekanisme penyaringan sinyal. Anda dapat menyaring sinyal perdagangan dengan memperkenalkan indikator teknis tambahan (seperti RSI, MACD, dll.) atau menyesuaikan sensitivitas strategi berdasarkan indikator sentimen pasar.
Blok penembusan pesanan dalam zona penawaran dan permintaan berdasarkan filter volume transaksi adalah strategi perdagangan kuantitatif komprehensif yang menggabungkan teori fragmentasi, analisis volume transaksi, dan konsep blok pesanan. Strategi ini, dengan mengidentifikasi titik-titik fragmentasi harga yang penting, menggabungkan mekanisme konfirmasi volume transaksi untuk melakukan operasi perdagangan ketika harga menembus zona penawaran dan permintaan yang penting.
Keuntungan utama dari strategi ini adalah dasar teoritisnya yang kuat, kualitas sinyal yang baik dan konfigurasi yang tinggi. Mekanisme penyaringan volume transaksi secara efektif meningkatkan keandalan sinyal, sementara teori blok pesanan memberikan dukungan logika pasar yang jelas untuk strategi. Namun, strategi ini juga memiliki beberapa risiko potensial, seperti ketergantungan pada data volume transaksi, keterlambatan sinyal, dan kurangnya mekanisme manajemen risiko.
Kinerja dan stabilitas strategi ini dapat ditingkatkan lebih lanjut dengan memperkenalkan pengoptimalan seperti penurunan volume transaksi dinamis, modul manajemen risiko yang lebih baik, analisis multi-frame waktu, dan mekanisme pemfilteran sinyal. Untuk pedagang kuantitatif, strategi ini menyediakan alat analisis struktur pasar yang efektif yang dapat membantu mengidentifikasi peluang perdagangan dengan probabilitas tinggi.
/*backtest
start: 2024-07-07 00:00:00
end: 2025-07-05 10:18:00
period: 3m
basePeriod: 3m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Supply and Demand - Order Block Strategy with Volume Filter", overlay=true)
// ═══════════════════════════════════════════════════════════════════════════════════
// 📊 INPUT SETTINGS
// ═══════════════════════════════════════════════════════════════════════════════════
breakType = input.string("Wick+Body", title="Fractal Break Type:", options=["Wick+Body", "Body"])
n = input.int(title="Periods", defval=5, minval=3, tooltip="Number of periods for fractal lookback")
// 🔊 Volume Filter
enableVolumeFilter = input.bool(true, "Enable Volume Filter", group="Volume Filter")
volumeMultiplier = input.float(1.5, "Volume Multiplier", minval=1.0, maxval=3.0, step=0.1, group="Volume Filter", tooltip="Fractal must have volume > average volume * this multiplier")
// ═══════════════════════════════════════════════════════════════════════════════════
// 📈 TECHNICAL INDICATORS
// ═══════════════════════════════════════════════════════════════════════════════════
avgVolume = ta.sma(volume, 20)
// ═══════════════════════════════════════════════════════════════════════════════════
// 📦 FRACTAL CALCULATION WITH VOLUME FILTER
// ═══════════════════════════════════════════════════════════════════════════════════
// Original fractal calculation
upFractal = high[n] == ta.highest(high, n)
downFractal = low[n] == ta.lowest(low, n)
// 🔊 Enhanced fractal with volume confirmation
upFractalValid = upFractal and (not enableVolumeFilter or volume[n] > avgVolume * volumeMultiplier)
downFractalValid = downFractal and (not enableVolumeFilter or volume[n] > avgVolume * volumeMultiplier)
var float topValue = na
var float bottomValue = na
var topBreakBlock = false
var bottomBreakBlock = false
topBreakCheckSource = breakType == "Wick+Body" ? high : close
bottomBreakCheckSource = breakType == "Wick+Body" ? low : close
// New up fractal - only if volume criteria met
if upFractalValid
topBreakBlock := false
topValue := high[n]
// New down fractal - only if volume criteria met
if downFractalValid
bottomBreakBlock := false
bottomValue := low[n]
// ═══════════════════════════════════════════════════════════════════════════════════
// 🚀 ENTRY LOGIC
// ═══════════════════════════════════════════════════════════════════════════════════
// Top break
if ta.crossover(topBreakCheckSource, topValue) and not topBreakBlock
topBreakBlock := true
if strategy.position_size <= 0
strategy.entry("Long", strategy.long)
// Bottom break
if ta.crossunder(bottomBreakCheckSource, bottomValue) and not bottomBreakBlock
bottomBreakBlock := true
if strategy.position_size >= 0
strategy.entry("Short", strategy.short)
// ═══════════════════════════════════════════════════════════════════════════════════
// 🎨 PLOTS
// ═══════════════════════════════════════════════════════════════════════════════════
plotshape(downFractalValid, style=shape.triangleup, location=location.belowbar, offset=-n, color=color.new(color.gray,80), size = size.tiny)
plotshape(upFractalValid, style=shape.triangledown, location=location.abovebar, offset=-n, color=color.new(color.gray,80), size = size.tiny)