Strategi ini disebut
Inti dari strategi ini adalah mengidentifikasi
Nilai wajar didefinisikan sebagai harga
Likuiditas juga merupakan faktor kunci karena pedagang institusional cenderung melakukan perdagangan di daerah dengan likuiditas tinggi.
Strategi ini menentukan nilai wajar dengan menghitung rata-rata bergerak sederhana. Kemudian mengidentifikasi blok order potensial dengan panjang 20 periode. Jika perbedaan antara harga penutupan dan nilai wajar berada di bawah 38,2% dari total tinggi rentang blok order, sebuah blok order ditentukan.
Blok order bullish dianggap sebagai sinyal beli. Blok order bearish dianggap sebagai sinyal jual.
Keuntungan utama dari strategi ini adalah menggunakan pola perdagangan pedagang institusional yang memungkinkan untuk mengungguli strategi berbasis indikator yang lebih mekanis.
Keuntungan lainnya termasuk:
Strategi ini juga menghadapi beberapa risiko potensial seperti:
Untuk mengurangi risiko ini, disarankan untuk mempertimbangkan:
Berikut adalah beberapa optimasi potensial untuk strategi:
Secara singkat, strategi ini menawarkan pendekatan unik untuk mengambil keuntungan dari perilaku pedagang institusional. Strategi ini menggabungkan beberapa elemen dan memiliki keuntungan tertentu. Tetapi seperti kebanyakan strategi perdagangan, strategi ini juga menghadapi risiko ketika kondisi pasar berubah atau perilaku harga yang tidak terduga terjadi. Dengan pengujian, optimalisasi, dan manajemen risiko yang berkelanjutan, strategi dapat menjadi alat perdagangan kuantitatif yang berharga.
/*backtest start: 2024-01-23 00:00:00 end: 2024-02-22 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("ICT Strategy", overlay=true) // Input variables length = input.int(20, minval=1, title="Order Block Length") fairValuePeriod = input.int(60, minval=1, title="Fair Value Period") // Calculate fair value fairValue = ta.sma(close, fairValuePeriod) // Determine order blocks isOrderBlock(high, low) => highestHigh = ta.highest(high, length) lowestLow = ta.lowest(low, length) absHighLowDiff = highestHigh - lowestLow absCloseFairValueDiff = (close - fairValue) (absCloseFairValueDiff <= 0.382 * absHighLowDiff) isBuyBlock = isOrderBlock(high, low) and close > fairValue isSellBlock = isOrderBlock(high, low) and close < fairValue // Plot fair value and order blocks plot(fairValue, color=color.blue, title="Fair Value") plotshape(isBuyBlock, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(isSellBlock, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Strategy logic if (isBuyBlock) strategy.entry("Buy", strategy.long) if (isSellBlock) strategy.entry("Sell", strategy.short)