Sumber daya yang dimuat... Pemuatan...

Strategi kuantitatif aliran pesanan institusi multi-level dengan sistem skala posisi dinamis

Penulis:ChaoZhang, Tanggal: 2024-12-27 15:01:36
Tag:PCTVOLMAOB

img

Gambaran umum

Strategi ini adalah sistem perdagangan cerdas yang didasarkan pada aliran pesanan institusional, yang memprediksi titik pembalikan harga potensial dengan mengidentifikasi Blok Order di pasar. Sistem ini menggunakan pendekatan manajemen skala posisi dinamis dengan target tiga tingkat untuk mengoptimalkan manajemen posisi dan memaksimalkan pengembalian. Inti dari strategi ini terletak pada menangkap jejak harga yang ditinggalkan oleh perilaku perdagangan institusional melalui analisis statistik puncak dan terendah.

Prinsip Strategi

Strategi ini didasarkan pada beberapa elemen utama:

  1. Order Block Identification - Menggunakan jendela lookback 20 periode untuk mengidentifikasi blok order beli dan jual melalui analisis pola candlestick.
  2. Pengendalian Waktu Perdagangan - Perdagangan dibatasi pada sesi utama dari 09:30-16:00, menghindari periode volatilitas tinggi selama pasar terbuka dan ditutup.
  3. Logika entri - Posisi panjang dibuka ketika harga melanggar blok pesanan beli selama jam perdagangan, dan posisi pendek ketika harga melanggar blok pesanan jual.
  4. Skala Posisi - Mengimplementasikan sistem skala tiga tingkat 50%-30%-20% yang sesuai dengan target 0,5%, 1,0%, dan 1,5%.

Keuntungan Strategi

  1. Smart Order Detection - akurat menangkap tingkat harga kunci di mana posisi modal besar dibangun atau ditutup melalui analisis dinamis puncak dan terendah.
  2. Distribusi risiko - Skala posisi tiga tingkat secara efektif mendistribusikan risiko, mengamankan keuntungan sambil memungkinkan tren berkembang sepenuhnya.
  3. Penyaringan Waktu - Pembatasan waktu perdagangan menghindari periode volatilitas tinggi, meningkatkan stabilitas perdagangan.
  4. Dukungan Visual - Strategi memberikan visualisasi blok order yang jelas, membantu pedagang memahami struktur pasar.

Risiko Strategi

  1. Risiko pecah palsu - Beberapa sinyal palsu dapat terjadi di pasar yang berbeda, yang menunjukkan perlunya penyaringan indikator volatilitas.
  2. Dampak slippage - Peningkatan skala posisi dapat menghadapi slippage di pasar likuiditas rendah, yang membutuhkan penyesuaian jarak target yang tepat.
  3. Trend Dependency - Strategi berkinerja baik di pasar tren tetapi dapat menghasilkan perdagangan yang sering dalam kondisi yang bervariasi.

Optimasi Strategi

  1. Adaptasi Volatilitas - Merekomendasikan untuk memasukkan indikator ATR untuk menyesuaikan persentase target secara dinamis berdasarkan volatilitas pasar.
  2. Analisis Volume Aliran Pesenan - Pertimbangkan untuk menggabungkan analisis volume untuk meningkatkan keandalan konfirmasi blok pesanan.
  3. Jendela Waktu Dinamis - Pertimbangkan untuk menyesuaikan periode pengamatan secara dinamis berdasarkan kondisi pasar untuk meningkatkan kemampuan adaptasi strategi.
  4. Pengendalian Risiko yang ditingkatkan - Tambahkan batas maksimum penarikan dan batas kerugian harian untuk meningkatkan ketahanan strategi.

Ringkasan

Strategi ini membangun sistem perdagangan yang lengkap melalui analisis aliran pesanan institusional dan manajemen posisi dinamis. Melalui identifikasi blok pesanan dan pengaturan pengambilan keuntungan multi-level, ia menangkap peluang dari operasi modal besar sambil menerapkan kontrol risiko yang efektif. Pedagang disarankan untuk dengan hati-hati mempertimbangkan kondisi pasar dan menyesuaikan parameter sesuai dengan keadaan tertentu dalam perdagangan langsung.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=6
strategy("Institutional Order Flow Strategy", overlay=true)

// Input settings
inputSession = input("0930-1600", "Trading Session") // Trading session
lookbackPeriod = input.int(20, "Order Block Lookback Period", minval=1) // Lookback for Order Blocks
target1Pct = input.float(0.5, "Target 1 (% move)", step=0.1, minval=0.1) // First profit target
target2Pct = input.float(1.0, "Target 2 (% move)", step=0.1, minval=0.1) // Second profit target
target3Pct = input.float(1.5, "Target 3 (% move)", step=0.1, minval=0.1) // Third profit target

// Order Block identification
highestHigh = ta.highest(high, lookbackPeriod)
lowestLow = ta.lowest(low, lookbackPeriod)
orderBlockBuy = ta.valuewhen(close[1] < open[1] and close > open, highestHigh, 0)
orderBlockSell = ta.valuewhen(close[1] > open[1] and close < open, lowestLow, 0)

// Entry logic
inSession = true
longCondition = close > orderBlockBuy and inSession
shortCondition = close < orderBlockSell and inSession

// Strategy entries
if longCondition
    strategy.entry("Long", strategy.long)

if shortCondition
    strategy.entry("Short", strategy.short)

// Calculate targets for scaling out
longTarget1 = strategy.position_avg_price + strategy.position_avg_price * target1Pct / 100
longTarget2 = strategy.position_avg_price + strategy.position_avg_price * target2Pct / 100
longTarget3 = strategy.position_avg_price + strategy.position_avg_price * target3Pct / 100

shortTarget1 = strategy.position_avg_price - strategy.position_avg_price * target1Pct / 100
shortTarget2 = strategy.position_avg_price - strategy.position_avg_price * target2Pct / 100
shortTarget3 = strategy.position_avg_price - strategy.position_avg_price * target3Pct / 100

// Exit logic with scaling out
if strategy.position_size > 0
    strategy.exit("Target 1", from_entry="Long", limit=longTarget1, qty_percent=50)
    strategy.exit("Target 2", from_entry="Long", limit=longTarget2, qty_percent=30)
    strategy.exit("Target 3", from_entry="Long", limit=longTarget3, qty_percent=20)

if strategy.position_size < 0
    strategy.exit("Target 1", from_entry="Short", limit=shortTarget1, qty_percent=50)
    strategy.exit("Target 2", from_entry="Short", limit=shortTarget2, qty_percent=30)
    strategy.exit("Target 3", from_entry="Short", limit=shortTarget3, qty_percent=20)

// Visualize Order Blocks
plot(orderBlockBuy, "Order Block Buy", color=color.green, linewidth=2, style=plot.style_line)
plot(orderBlockSell, "Order Block Sell", color=color.red, linewidth=2, style=plot.style_line)


Berkaitan

Lebih banyak