Sumber daya yang dimuat... Pemuatan...

Pemecahan Struktur dengan Konfirmasi Volume Multi-kondisi Strategi Perdagangan Cerdas

Penulis:ChaoZhang, Tanggal: 2024-12-20 16:15:43
Tag:BOSSMAATRTPSL

img

Gambaran umum

Ini adalah strategi perdagangan cerdas yang didasarkan pada Break of Structure (BOS) dan konfirmasi volume. Strategi ini menghasilkan sinyal perdagangan dengan mendeteksi price breakout dari level tertinggi atau terendah sebelumnya, dikombinasikan dengan konfirmasi ekspansi volume.

Prinsip Strategi

Logika inti mencakup elemen kunci berikut:

  1. Mengidentifikasi harga tertinggi dan terendah struktural dengan menghitung harga tertinggi dan terendah dalam periode tertentu
  2. Menggunakan rata-rata bergerak untuk menghitung volume dasar dan menentukan ekspansi volume yang signifikan
  3. Mengakumulasikan konfirmasi kenaikan ketika harga melanggar di atas sebelumnya tinggi dengan peningkatan volume
  4. Mengakumulasi konfirmasi penurunan ketika harga melanggar di bawah rendah sebelumnya dengan peningkatan volume
  5. Sinyal perdagangan hanya dipicu setelah mencapai jumlah konfirmasi yang ditentukan
  6. Mengatur tingkat profit dan stop loss berdasarkan persentase setelah masuk posisi

Keuntungan Strategi

  1. Mekanisme verifikasi kondisi ganda meningkatkan keandalan sinyal
  2. Integrasi indikator volume membantu menghindari sinyal breakout palsu
  3. Mekanisme konfirmasi berturut-turut mengurangi frekuensi perdagangan dan meningkatkan tingkat kemenangan
  4. Pengaturan take profit/stop loss dinamis secara otomatis menyesuaikan posisi keluar berdasarkan harga masuk
  5. Logika strategi yang jelas dengan parameter yang dapat disesuaikan menawarkan kemampuan beradaptasi yang baik

Risiko Strategi

  1. Pelanggaran palsu yang sering terjadi di berbagai pasar dapat menyebabkan kerugian berturut-turut
  2. Posisi stop loss mungkin tidak cukup tepat waktu di pasar yang volatile
  3. Mekanisme konfirmasi dapat menunda entri, kehilangan titik harga optimal
  4. Kriteria penilaian volume tetap mungkin tidak beradaptasi dengan baik dengan perubahan kondisi pasar Solusi:
  • Memperkenalkan indikator volatilitas pasar untuk penyesuaian parameter dinamis
  • Tambahkan filter tren untuk mengurangi sinyal palsu di pasar yang berbeda
  • Mengoptimalkan logika stop-loss untuk meningkatkan fleksibilitas
  • Metode perhitungan ambang volume adaptif

Arah Optimasi Strategi

  1. Menambahkan indikator identifikasi tren, seperti sistem rata-rata bergerak, untuk hanya berdagang ke arah tren
  2. Mengintegrasikan indikator ATR untuk penyesuaian jarak stop-loss dinamis
  3. Merancang mekanisme penilaian ambang volume yang beradaptasi volatilitas
  4. Sertakan filter waktu untuk menghindari periode berisiko tinggi
  5. Mengoptimalkan mekanisme konfirmasi untuk meningkatkan waktu masuk sambil mempertahankan keandalan

Ringkasan

Ini adalah sistem strategi yang menggabungkan teori analisis teknis klasik dengan metode perdagangan kuantitatif modern. Melalui verifikasi kondisi ganda dan kontrol risiko yang ketat, strategi menunjukkan stabilitas dan keandalan yang baik. Meskipun ada aspek yang membutuhkan optimasi, desain kerangka keseluruhan masuk akal dan memiliki nilai aplikasi praktis.


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

//@version=5
strategy("BOS and Volume Strategy with Confirmation", overlay=true)

// Parameters
swingLength = input.int(20, title="Swing Length", minval=1)
volumeMultiplier = input.float(1.1, title="Volume Multiplier", step=0.1)
volumeSMA_length = input.int(10, title="Volume SMA Length", minval=1)
takeProfitPercentage = input.float(0.02, title="Take Profit Percentage", step=0.01)
stopLossPercentage = input.float(0.15, title="Stop Loss Percentage", step=0.01)  // New parameter for stop loss
atrLength = input.int(14, title="ATR Length")
confirmationBars = input.int(2, title="Confirmation Bars", minval=1)

// Calculate Swing Highs and Lows
swingHigh = ta.highest(high, swingLength)[1]
swingLow = ta.lowest(low, swingLength)[1]

// Calculate Volume Moving Average
volumeSMA = ta.sma(volume, volumeSMA_length)
highVolume = volume > (volumeSMA * volumeMultiplier)

// Break of Structure Detection with Confirmation
var int bullishCount = 0
var int bearishCount = 0

if (close > swingHigh and highVolume)
    bullishCount := bullishCount + 1
    bearishCount := 0
else if (close < swingLow and highVolume)
    bearishCount := bearishCount + 1
    bullishCount := 0
else
    bullishCount := 0
    bearishCount := 0

bullishBOSConfirmed = (bullishCount >= confirmationBars)
bearishBOSConfirmed = (bearishCount >= confirmationBars)

// Entry and Exit Conditions
var float entryPrice = na  // Declare entryPrice as a variable

if (bullishBOSConfirmed and strategy.position_size <= 0)
    entryPrice := close  // Use ':=' for assignment
    strategy.entry("Long", strategy.long)

if (strategy.position_size > 0)
    // Calculate stop loss price
    stopLossPrice = entryPrice * (1 - stopLossPercentage)
    strategy.exit("Take Profit Long", from_entry="Long", limit=entryPrice * (1 + takeProfitPercentage), stop=stopLossPrice)

if (bearishBOSConfirmed and strategy.position_size >= 0)
    entryPrice := close  // Use ':=' for assignment
    strategy.entry("Short", strategy.short)

if (strategy.position_size < 0)
    // Calculate stop loss price
    stopLossPrice = entryPrice * (1 + stopLossPercentage)
    strategy.exit("Take Profit Short", from_entry="Short", limit=entryPrice * (1 - takeProfitPercentage), stop=stopLossPrice)

// Plot Swing Highs and Lows for Visualization
plot(swingHigh, title="Swing High", color=color.green, linewidth=1)
plot(swingLow, title="Swing Low", color=color.red, linewidth=1)

Berkaitan

Lebih banyak