
Strategi perdagangan kuantitatif zona perpindahan tingkat tinggi adalah sistem perdagangan otomatis yang didasarkan pada analisis teknis penyaringan, dengan konsep inti adalah sinyal perdagangan yang dihasilkan dengan mengidentifikasi bentuk garis perpindahan tertentu dan harga saat memasuki zona perpindahan tersebut. Strategi ini mencari peluang pembelian dan penjualan potensial di pasar dengan menganalisis hubungan antara entitas garis perpindahan dan garis bayangan, digabungkan dengan perilaku harga.
Prinsip inti dari strategi ini adalah untuk mengidentifikasi dan memanfaatkan “Displacement Zone” (Zona Perpindahan) untuk melakukan perdagangan.
Pengidentifikasian garis geserStrategi Pertama:isBullishDisplacement()DanisBearishDisplacement()Fungsi ini mengidentifikasi garis pivotal yang berlawanan arah dan berlawanan arah. Garis pivotal ini ditandai dengan entitas yang lebih besar dari beberapa kali lipat tertentu dari garis bayangan (dikendalikan oleh parameter sensitivitas).
Eksklusif untuk bintang salibDiambil:isDoji()Fungsi ini memfilter garis lintang yang lebih tinggi dari ketidakpastian, hanya memperhatikan sinyal tren yang jelas. Kriteria untuk menentukan garis lintang adalah bahwa rasio entitas terhadap keseluruhan rentang kurang dari nilai ambang yang ditetapkan (default 10%).
Konstruksi area perpindahanStrategi ini mencatat titik tertinggi atau terendah dari dua garis posisi bullish atau bearish yang terakhir dan membangun batas atas dan bawah dari zona posisi.
Pelacakan Status DaerahVariabel status penggunaan:inBearZoneDaninBullZone) Melacak apakah harga berada di dalam zona perpindahan.
Sinyal masuk dihasilkan: Membuat sinyal perdagangan ketika harga memasuki area perpindahan dari arah tertentu:
Eksekusi transaksi otomatis: Setelah sinyal dipicu, strategi secara otomatis melakukan perdagangan dan mengatur posisi stop () 12 dan stop () 1.
Dari analisis lebih dalam tentang kode strategi ini, kita dapat menyimpulkan beberapa keuntungan yang signifikan:
Kejelasan logika berdasarkan struktur hargaStrategi didasarkan pada konsep peta dan area perpindahan, logika perdagangan intuitif, mudah dipahami dan diterapkan.
Fleksibilitas parametrisasiStrategi dapat disesuaikan dengan berbagai kondisi pasar dan preferensi risiko pribadi melalui dua parameter yang dapat disesuaikan, yaitu faktor sensitivitas dan margin bintang silang.
Otomatisasi manajemen risikoSistem Stop-Loss Fixed Built-In, Rasio Risiko-Rugi Per Transaksi 12:1, Membantu Manajemen Dana yang Stabil dalam Jangka Panjang
Sinyal perdagangan visualStrategi: Menampilkan sinyal beli dan jual dengan jelas melalui penandaan grafis dan batas zona perpindahan, sehingga memudahkan pedagang untuk memahami keadaan pasar secara intuitif.
Strategi Penembusan dan PengembalianTidak hanya mengidentifikasi area perpindahan, tetapi juga menggabungkan konsep analisis teknis untuk kembali setelah harga terobosan, meningkatkan kualitas sinyal.
Hindari kebisingan pasar: Mengurangi kesalahan sinyal dalam kondisi pasar yang tidak menentu dengan memfilter bentuk bintang salib.
Meskipun strategi ini dirancang dengan baik, ada risiko potensial berikut:
Tidak terlalu besar.Stop loss yang disetel untuk strategi hanya 1 poin, dapat terlalu ketat di pasar yang berfluktuasi tinggi, mudah dipicu oleh kebisingan pasar, menyebabkan stop loss yang sering. Solusi: Sesuaikan stop loss multiplier sesuai dengan karakteristik fluktuasi varietas perdagangan.
Parameter SensitivitasPengaturan yang tidak tepat pada faktor sensitivitas dapat menyebabkan terlalu banyak atau terlalu sedikit sinyal yang dihasilkan. Solusi: Temukan kombinasi parameter yang optimal dalam situasi pasar tertentu dengan mengevaluasi parameter optimasi.
Risiko kerugian berkelanjutanDalam pasar yang bergejolak, zona perpindahan dapat sering terbentuk tetapi tidak dapat terus berkembang menjadi tren, menyebabkan stop loss berkelanjutan. Solusi: Tambahkan kondisi penyaringan lingkungan pasar, seperti konfirmasi indikator tren.
Kurangnya Dynamic Stop LossSolusi: implementasi mekanisme stop loss dinamis berdasarkan ATR atau volatilitas.
Terlalu Bergantung pada Titik PergeseranSolusi: Pertimbangkan untuk memperluas rentang waktu yang digunakan untuk mencatat pergerakan.
Berdasarkan analisis kode, strategi ini memiliki beberapa optimasi:
Manajemen risiko dinamis: Mengubah posisi stop loss yang tetap menjadi pengaturan dinamis berdasarkan ATR (amplitude of true fluctuation) untuk menyesuaikan diri dengan berbagai kondisi pasar yang berfluktuasi. Manfaat dari hal ini adalah mengurangi stop loss prematur selama fluktuasi rendah dan memberikan perlindungan yang cukup selama fluktuasi tinggi.
Tambahkan waktu penyaringanDalam strategi, jika area yang bergeser terbentuk terlalu lama dan tidak memicu sinyal, maka harus ditempatkan kembali atau menurunkan pentingnya. Hal ini dapat menghindari keputusan perdagangan berdasarkan informasi yang sudah usang.
Pengumuman pengiriman: Menggunakan volume transaksi sebagai indikator tambahan untuk konfirmasi sinyal, menerima sinyal hanya jika volume transaksi meningkat, meningkatkan kualitas transaksi. Volume transaksi dapat memverifikasi efektivitas tindakan harga.
Analisis multi-frame waktu: Menggabungkan sinyal dari kerangka waktu saat ini dengan arah tren dari kerangka waktu yang lebih tinggi, hanya berdagang jika arahnya sama, meningkatkan tingkat kemenangan.
Sistem Parameter AdaptifImplementasi mekanisme untuk menyesuaikan parameter sensitivitas secara otomatis berdasarkan perilaku pasar baru-baru ini, sehingga strategi dapat beradaptasi dengan perubahan pasar. Ini karena parameter yang berbeda diperlukan untuk berbagai tahap pasar (trend, periodic oscillation).
Meningkatkan perlindungan kerugian beruntunDesain mekanisme untuk menghentikan perdagangan untuk sementara waktu atau menyesuaikan parameter setelah terjadinya penurunan tertentu secara berturut-turut, untuk menghindari kerugian berkelanjutan dalam kondisi pasar yang tidak menguntungkan.
Strategi perdagangan kuantitatif zona perpindahan tingkat tinggi adalah metode perdagangan sistematis yang didasarkan pada struktur harga dan bentuk grafik yang menghasilkan sinyal perdagangan dengan mengidentifikasi garis pijakan perpindahan tertentu dan pola perilaku harga. Strategi ini mengontrol risiko melalui mekanisme stop loss yang tetap, dan membantu keputusan perdagangan melalui alat visual.
Keuntungan utama dari strategi ini adalah kejernihan logika, fleksibilitas parameter, dan otomatisasi manajemen risiko, tetapi ada juga risiko potensial seperti pengaturan stop loss yang terlalu kecil, dan sensitivitas parameter. Dengan memperkenalkan pengoptimalan seperti manajemen risiko dinamis, penyaringan waktu, konfirmasi volume transaksi, analisis multi-frame time frame, dan sistem parameter adaptif, strategi ini dapat secara signifikan meningkatkan kecurangan dan profitabilitas.
Untuk investor yang mencari sistematisasi perdagangan berdasarkan analisis teknis, strategi zona perpindahan tinggi memberikan kerangka yang layak dipertimbangkan, terutama jika dikombinasikan dengan optimasi yang relevan, yang lebih mungkin untuk mempertahankan kinerja yang stabil di berbagai lingkungan pasar.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-05-11 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/
//@version=6
strategy("Advanced Displacement Zone Strategy", overlay=true)
// === PARAMETERS ===
sensitivity = input.float(1.2, title="Displacement Strength Multiplier")
dojiThreshold = input.float(0.1, title="Doji Body-to-Range Threshold (e.g., 0.1 = 10%)")
// === FUNCTIONS ===
isDoji() =>
candleRange = high - low
body = math.abs(close - open)
candleRange > 0 and (body / candleRange) <= dojiThreshold
isBullishDisplacement() =>
body = close - open
wick = (high - low) - math.abs(body)
not isDoji() and body > 0 and body > wick * sensitivity
isBearishDisplacement() =>
body = open - close
wick = (high - low) - math.abs(body)
not isDoji() and body > 0 and body > wick * sensitivity
// === STATE TRACKING ===
var float lastBullWick = na
var float secondLastBullWick = na
var float lastBearWick = na
var float secondLastBearWick = na
var bool inBearZone = false
var bool inBullZone = false
// === DETECT DISPLACEMENT CANDLES ===
if isBullishDisplacement()
secondLastBullWick := lastBullWick
lastBullWick := high
inBullZone := true
inBearZone := false
if isBearishDisplacement()
secondLastBearWick := lastBearWick
lastBearWick := low
inBearZone := true
inBullZone := false
// === WAITING ZONE BOUNDARIES ===
bullZoneHigh = math.max(lastBullWick, secondLastBullWick)
bullZoneLow = math.min(lastBullWick, secondLastBullWick)
bearZoneHigh = math.max(lastBearWick, secondLastBearWick)
bearZoneLow = math.min(lastBearWick, secondLastBearWick)
// === ZONE LOGIC ===
inBullZoneNow = close > bullZoneLow and close < bullZoneHigh
inBearZoneNow = close > bearZoneLow and close < bearZoneHigh
wasBelowBearZone = close[1] < bearZoneLow and close > bearZoneLow and not inBearZoneNow
wasAboveBullZone = close[1] > bullZoneHigh and close < bullZoneHigh and not inBullZoneNow
// === SIGNAL CONDITIONS ===
sellSignal = inBearZone and wasBelowBearZone
buySignal = inBullZone and wasAboveBullZone
// === STRATEGY EXECUTION ===
if buySignal
strategy.entry("Buy", strategy.long)
strategy.exit("Sell", from_entry="Buy", stop=close - 1, limit=close + 12) // Fixed Stop Loss at 5 points, Take Profit at 12 points
if sellSignal
strategy.entry("Sell", strategy.short)
strategy.exit("Buy", from_entry="Sell", stop=close + 1, limit=close - 12) // Fixed Stop Loss at 5 points, Take Profit at 12 points
// === PLOTS ===
plotshape(buySignal, title="Buy", location=location.belowbar, style=shape.arrowup, color=color.green, size=size.small, text="BUY")
plotshape(sellSignal, title="Sell", location=location.abovebar, style=shape.arrowdown, color=color.red, size=size.small, text="SELL")
plot(inBullZone ? bullZoneHigh : na, title="Bull Zone High", color=color.green, linewidth=1)
plot(inBullZone ? bullZoneLow : na, title="Bull Zone Low", color=color.green, linewidth=1)
plot(inBearZone ? bearZoneHigh : na, title="Bear Zone High", color=color.red, linewidth=1)
plot(inBearZone ? bearZoneLow : na, title="Bear Zone Low", color=color.red, linewidth=1)