Sumber daya yang dimuat... Pemuatan...

Berbasis pada Teori SMC Multi-Zone

Penulis:ChaoZhang, Tanggal: 2024-11-29 15:38:01
Tag:SMASMCOBEQ

img

Gambaran umum

Strategi ini, berdasarkan teori Smart Money Concepts (SMC), membangun tren komprehensif mengikuti sistem perdagangan dengan membagi pasar menjadi tiga zona harga utama: Equilibrium, Premium, dan Diskon.

Prinsip Strategi

Logika inti mencakup beberapa elemen kunci:

  1. Menghitung swing tinggi dan rendah dari 8 lilin terakhir untuk menentukan kisaran pasar.
  2. Mendefinisikan zona keseimbangan sebagai titik tengah antara swing tinggi dan rendah, dengan zona premi di atas dan zona diskon di bawah.
  3. Menggunakan SMA 50 periode untuk menentukan arah tren keseluruhan - bullish di atas SMA, bearish di bawahnya.
  4. Menghasilkan sinyal beli di zona diskon ketika harga di atas SMA, dan sinyal jual di zona premium ketika harga di bawah SMA.
  5. Mengidentifikasi blok order dengan menganalisis harga tertinggi dan terendah dalam 20 lilin untuk mengkonfirmasi sinyal perdagangan.
  6. Tanda-tanda swing tinggi dan rendah sebagai zona likuiditas untuk memprediksi titik pembalikan harga potensial.

Keuntungan Strategi

  1. Metode pembagian zona terstruktur yang memberikan identifikasi fase pasar yang jelas.
  2. Mekanisme konfirmasi sinyal ganda melalui verifikasi tiga zona, tren, dan blok pesanan.
  3. Adaptasi dinamis terhadap perubahan pasar dengan pembaruan tingkat harga kunci secara real time.
  4. Sistem manajemen risiko yang komprehensif termasuk stop loss dan manajemen posisi.
  5. Implementasi kode yang bersih dan efisien, mudah dipelihara dan dioptimalkan.

Risiko Strategi

  1. Potensi sinyal palsu di pasar yang volatile.
  2. Indikator lag dalam pembalikan pasar yang cepat karena ketergantungan data historis.
  3. Rata-rata bergerak periode tetap mungkin tidak cocok untuk semua lingkungan pasar.
  4. Membutuhkan pengaturan stop-loss yang tepat untuk pengendalian risiko. Langkah manajemen risiko yang direkomendasikan:
  • Penyesuaian parameter dinamis untuk kondisi pasar yang berbeda
  • Penambahan filter volatilitas
  • Pelaksanaan aturan pengelolaan uang yang ketat
  • Pengujian backtesting dan optimasi parameter secara teratur

Arahan Optimasi

  1. Memperkenalkan parameter adaptif:
  • Sesuaikan rentang zona secara dinamis berdasarkan volatilitas pasar
  • Mengimplementasikan rata-rata bergerak periode adaptatif
  1. Meningkatkan penyaringan sinyal:
  • Tambahkan mekanisme konfirmasi volume
  • Masukkan indikator momentum
  1. Meningkatkan manajemen risiko:
  • Mengimplementasikan mekanisme stop-loss dinamis
  • Mengoptimalkan algoritma ukuran posisi
  1. Meningkatkan efisiensi pelaksanaan:
  • Mengoptimalkan logika perhitungan untuk mengurangi konsumsi sumber daya
  • Meningkatkan mekanisme generasi sinyal untuk respon yang lebih cepat

Ringkasan

Strategi ini membangun sistem trend berikut yang kuat melalui pembagian zona cerdas dan mekanisme konfirmasi sinyal ganda. Kekuatannya utama terletak pada analisis struktur pasar yang jelas dan manajemen risiko yang komprehensif. Melalui optimalisasi dan perbaikan terus-menerus, strategi menunjukkan janji untuk kinerja yang stabil di berbagai kondisi pasar. Pedagang disarankan untuk menyesuaikan parameter berdasarkan karakteristik pasar tertentu dan menjaga kontrol risiko yang ketat saat menerapkan strategi dalam perdagangan langsung.


/*backtest
start: 2024-11-21 00:00:00
end: 2024-11-28 00:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//@version=5
strategy("SMC Strategy with Premium, Equilibrium, and Discount Zones", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// === Instellingen voor Swing High en Swing Low ===
swingHighLength = input.int(8, title="Swing High Length")
swingLowLength = input.int(8, title="Swing Low Length")

// Vind de recente swing highs en lows
var float swingHigh = na
var float swingLow = na

if (ta.highestbars(high, swingHighLength) == 0)
    swingHigh := high

if (ta.lowestbars(low, swingLowLength) == 0)
    swingLow := low

// Bereken Equilibrium, Premium en Discount Zones
equilibrium = (swingHigh + swingLow) / 2
premiumZone = swingHigh
discountZone = swingLow

// Plot de zones op de grafiek
plot(equilibrium, title="Equilibrium", color=color.blue, linewidth=2)
plot(premiumZone, title="Premium Zone (Resistance)", color=color.red, linewidth=1)
plot(discountZone, title="Discount Zone (Support)", color=color.green, linewidth=1)

// === Simple Moving Average om trendrichting te bepalen ===
smaLength = input.int(50, title="SMA Length")
sma = ta.sma(close, smaLength)
plot(sma, title="SMA", color=color.orange)

// === Entry- en Exitregels op basis van zones en trendrichting ===

// Koop- en verkoopsignalen
buySignal = close < equilibrium and close > discountZone and close > sma // Prijs in discount zone en boven SMA
sellSignal = close > equilibrium and close < premiumZone and close < sma // Prijs in premium zone en onder SMA

// Order Blocks (Eenvoudig: hoogste en laagste kaars binnen de laatste 20 kaarsen)
orderBlockLength = input.int(20, title="Order Block Length")
orderBlockHigh = ta.highest(high, orderBlockLength)
orderBlockLow = ta.lowest(low, orderBlockLength)

// Koop- en verkoopsignalen met order block bevestiging
buySignalOB = buySignal and close >= orderBlockLow // Koop in discount zone met ondersteuning van order block
sellSignalOB = sellSignal and close <= orderBlockHigh // Verkoop in premium zone met weerstand van order block

// === Uitvoeren van Trades ===
if (buySignalOB)
    strategy.entry("Buy", strategy.long)
    
if (sellSignalOB)
    strategy.entry("Sell", strategy.short)

// === Plots voor visuele feedback ===
plotshape(buySignalOB, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignalOB, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// === Liquiditeitsjachten aangeven ===
// Simpel: markeer recente swing highs en lows als liquiditeitszones
liquidityZoneHigh = ta.valuewhen(high == swingHigh, high, 0)
liquidityZoneLow = ta.valuewhen(low == swingLow, low, 0)

// Markeer liquiditeitszones
plot(liquidityZoneHigh, title="Liquidity Zone High", color=color.red, linewidth=1, style=plot.style_cross)
plot(liquidityZoneLow, title="Liquidity Zone Low", color=color.green, linewidth=1, style=plot.style_cross)


Berkaitan

Lebih banyak