Sumber dimuat naik... memuat...

Strategi Awan Henti Volatiliti dengan Sistem Crossover Purata Bergerak

Penulis:ChaoZhang, Tarikh: 2024-10-14 11:42:58
Tag:ATRVSTOPRSI

img

Ringkasan

Strategi Volatility Stop Cloud dengan Moving Average Crossover System adalah pendekatan perdagangan kuantitatif yang menggabungkan konsep trend mengikuti dan momentum adaptif. Strategi ini menggunakan dua penunjuk Volatility Stop (VStop) dengan jangka masa yang berbeza untuk membina zon sokongan / rintangan dinamik, menjana isyarat perdagangan melalui persilangan garis ini. Strategi ini juga menggabungkan skema warna berasaskan RSI pilihan untuk memberikan petunjuk sentimen pasaran tambahan.

Prinsip Strategi

Pada teras strategi ini adalah dua penunjuk Volatility Stop (VStop), masing-masing berdasarkan tempoh dan pengganda Julat Benar Purata (ATR) yang berbeza. VStop jangka panjang menyediakan arah trend utama, sementara VStop jangka pendek menangkap pergerakan harga yang lebih cepat. Kawasan antara dua baris VStop membentuk awan, mewakili turun naik pasaran semasa.

Sinyal perdagangan dihasilkan apabila garis VStop jangka pendek melintasi garis VStop jangka panjang. Persalinan ke atas ditafsirkan sebagai isyarat panjang, sementara persalinan ke bawah dilihat sebagai isyarat pendek. Sistem crossover ini bertujuan untuk menangkap perubahan trend dan titik pembalikan yang berpotensi.

Strategi ini juga menggabungkan skema warna pelangi berasaskan RSI yang boleh disesuaikan, yang boleh menyesuaikan warna garis VStop dan awan berdasarkan momentum pasaran, memberikan maklum balas visual tambahan.

Kelebihan Strategi

  1. Kebolehsesuaian yang tinggi: Dengan menggunakan ATR untuk mengira nilai VStop, strategi boleh menyesuaikan diri secara automatik dengan turun naik pasaran, menyesuaikan diri dengan keadaan pasaran yang berbeza.

  2. Mengikuti Trend dan Penangkapan Pembalikan: Menggabungkan konsep persilangan trend-mengikuti dan purata bergerak, yang membolehkannya mengikuti trend yang kuat dan menangkap pembalikan yang berpotensi tepat pada masanya.

  3. Intuisi visual: Pembentukan awan dan skema warna pelangi RSI pilihan memberikan maklum balas visual yang jelas, membantu dalam penilaian cepat keadaan pasaran dan peluang perdagangan yang berpotensi.

  4. Fleksibiliti: Parameter strategi boleh diselaraskan untuk instrumen perdagangan dan jangka masa yang berbeza untuk mengoptimumkan prestasi.

  5. Pengurusan Risiko: Garis VStop boleh berfungsi sebagai tahap stop-loss dinamik, membantu mengawal risiko untuk setiap perdagangan.

Risiko Strategi

  1. Isyarat palsu dalam pasaran berbelit-belit: Di pasaran sampingan atau sangat tidak menentu, garis VStop mungkin sering melintasi, yang membawa kepada perdagangan yang berlebihan dan potensi kerugian.

  2. Lag: Sebagai sistem berasaskan purata bergerak, strategi boleh bertindak balas perlahan terhadap pembalikan trend, menyebabkan kemasukan atau keluar yang tertunda.

  3. Sensitiviti Parameter: Prestasi strategi sangat bergantung kepada pilihan tempoh ATR dan pengganda; tetapan parameter yang tidak betul boleh menyebabkan prestasi yang buruk.

  4. Overtrading: Jika garis VStop ditetapkan terlalu sensitif, mereka boleh menghasilkan terlalu banyak isyarat perdagangan, meningkatkan kos transaksi.

  5. Kekurangan Pertimbangan Asas: Strategi ini sepenuhnya berdasarkan kepada penunjuk teknikal, mengabaikan faktor asas yang mungkin mempengaruhi harga aset.

Arahan Pengoptimuman Strategi

  1. Masukkan Penapis Tambahan: Pertimbangkan untuk menambah penunjuk kekuatan trend atau penapis turun naik untuk mengurangkan isyarat palsu dan meningkatkan kualiti perdagangan.

  2. Penyesuaian Parameter Dinamik: Melaksanakan pengoptimuman automatik tempoh ATR dan pengganda untuk menyesuaikan diri dengan fasa pasaran yang berbeza.

  3. Analisis Pelbagai Jangka Masa: Mengintegrasikan maklumat trend pasaran dari jangka masa yang lebih lama untuk meningkatkan ketepatan keputusan perdagangan.

  4. Mengoptimumkan Strategi Keluar: Membangunkan peraturan keluar yang lebih canggih, seperti hentian belakang atau mekanisme mengambil keuntungan separa berdasarkan garis VStop.

  5. Mengintegrasikan Data Dasar: Pertimbangkan untuk memasukkan penunjuk ekonomi utama atau peristiwa berita untuk meningkatkan komprehensi strategi.

Ringkasan

Strategi Volatility Stop Cloud dengan Moving Average Crossover System adalah pendekatan perdagangan kuantitatif yang komprehensif yang menggabungkan trend-mengikut, momentum, dan analisis volatiliti. Dengan memanfaatkan penunjuk VStop dari jangka masa yang berbeza, strategi ini bertujuan untuk menangkap perubahan trend pasaran sambil memberikan maklum balas visual yang intuitif. Walaupun strategi menunjukkan daya adaptasi yang kuat dan potensi keuntungan, pengguna harus tetap berhati-hati mengenai performanya di pasaran yang berbelit-belit dan mempertimbangkan menggabungkan penapis tambahan dan teknik pengoptimuman untuk meningkatkan ketahanan. Melalui pengujian balik berterusan dan pengoptimuman parameter, strategi ini boleh menjadi alat yang kuat untuk pelbagai gaya perdagangan.


/*backtest
start: 2024-09-01 00:00:00
end: 2024-09-30 23:59:59
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//Credit: This indicator is largely based on the built-in "Volatility Stop" indicator by TradingView
strategy('ATR (VStop) Cloud Strategy', overlay=true)

vstopon = input(true, 'ATR Cloud On?', inline="Vstop0", group='Display')
showlabels = input(title='Labels?', defval=true, inline='Vstop1', group='Display')
rainbowvstop = input(true, 'Rainbow RSI-Based Color Scheme?', inline="Vstop2", group='Display')
color vstopbull = input.color(color.new(color.lime, 0), '', inline='Vstop2', group='Display')
color vstopbear = input.color(color.new(color.fuchsia, 0), '', inline='Vstop2', group='Display')
filltransp = input.int(95, 'Cloud Fill Transparency', inline='Vstop3', group='Display', minval=0, maxval=100)
length2 = input.int(20, "Small VStop", minval = 2, inline='100', group='Volatility Stop')
src2 = input.source(close, "", inline='100', group='Volatility Stop')
factor2 = input.float(1.5, "ATR Multiple", minval = 0.25, step = 0.25, inline='100', group='Volatility Stop')
length = input.int(20, "    Big VStop", minval = 2, inline='100', group='Volatility Stop')
src = input.source(close, "", inline='100', group='Volatility Stop')
factor = input.float(3.0, "ATR Multiple", minval = 0.25, step = 0.25, inline='100', group='Volatility Stop')

volStop(src, atrlen, atrfactor) =>
    var max     = src
    var min     = src
    var uptrend = true
    var stop    = 0.0
    atrM        = nz(ta.atr(atrlen) * atrfactor, ta.tr)
    max         := math.max(max, src)
    min         := math.min(min, src)
    stop        := nz(uptrend ? math.max(stop, max - atrM) : math.min(stop, min + atrM), src)
    uptrend     := src - stop >= 0.0
    if uptrend != nz(uptrend[1], true)
        max    := src
        min    := src
        stop   := uptrend ? max - atrM : min + atrM
    [stop, uptrend]

[vStop, uptrend] = volStop(src, length, factor)
[vStop2, uptrend2] = volStop(src2, length2, factor2)
vstopseries = math.avg(vStop, vStop2)

// Colors for plot
dncolor = rainbowvstop ? color.red : vstopbear
upcolor = rainbowvstop ? color.green : vstopbull

// Plot volatility stop lines
pv1 = plot(vstopon ? vStop : na, "Volatility Stop", style=plot.style_line, color=uptrend ? upcolor : dncolor, linewidth=2)
pv2 = plot(vstopon ? vStop2 : na, "Volatility Stop", style=plot.style_line, color=uptrend2 ? upcolor : dncolor, linewidth=1)

// Cross conditions
crossUp = ta.crossover(vStop2, vStop)
crossDn = ta.crossunder(vStop2, vStop)

// Labels
plotshape(showlabels and crossUp, title='Cross Long', style=shape.labelup, location=location.belowbar, text='LONG', textcolor=color.white, color=color.teal, size=size.auto)
plotshape(showlabels and crossDn, title='Cross Short', style=shape.labeldown, location=location.abovebar, text='SHORT', textcolor=color.white, color=color.maroon, size=size.auto)

// Strategy entry and exit
if (crossUp)
    strategy.entry('Long', strategy.long)
    
if (crossDn)
    strategy.entry('Short', strategy.short)

// Fill between lines
fill(pv1, pv2, color=uptrend ? color.new(upcolor, filltransp) : color.new(dncolor, filltransp))


Berkaitan

Lebih lanjut