Indikator Volatilitas Dinamis (VIDYA) dikombinasikan dengan strategi pembalikan tren ATR

ATR CMO SMA MA
Tanggal Pembuatan: 2024-12-13 10:21:14 Akhirnya memodifikasi: 2024-12-13 10:21:14
menyalin: 0 Jumlah klik: 474
1
fokus pada
1617
Pengikut

Indikator Volatilitas Dinamis (VIDYA) dikombinasikan dengan strategi pembalikan tren ATR

Ringkasan

Strategi ini adalah sistem perdagangan pelacakan tren berdasarkan indikator volatilitas dinamis ((VIDYA), yang dikombinasikan dengan fluktuasi ATR untuk meningkatkan kemampuan identifikasi tren dan manajemen risiko. Strategi ini dapat menangkap sinyal reversal pasar secara tepat waktu dengan menyesuaikan kecepatan responsnya secara dinamis terhadap fluktuasi pasar, sambil mempertahankan kemampuan untuk melacak tren.

Prinsip Strategi

Inti dari strategi ini adalah memanfaatkan karakteristik dinamis indikator VIDA untuk mengidentifikasi tren. VIDA secara dinamis menyesuaikan bobot rata-rata bergerak dengan menghitung perubahan momentum, sehingga memiliki sensitivitas yang berbeda dalam lingkungan pasar yang berbeda.

  1. Menggunakan Chande Momentum Oscillator (CMO) untuk menghitung momentum harga
  2. Faktor adaptasi alpha berdasarkan momentum
  3. Menggabungkan ATR untuk membangun dynamic bandwidth
  4. Penembusan harga naik menghasilkan sinyal melakukan banyak, penembusan turun menghasilkan sinyal melakukan kosong
  5. Menggunakan logika reversal posisi, yaitu sinyal baru sekaligus menghapuskan posisi lama dan membuka posisi baru

Keunggulan Strategis

  1. Adaptasi dinamis: Indikator VIDYA dapat menyesuaikan parameter secara otomatis sesuai dengan fluktuasi pasar, menghindari masalah keterlambatan rata-rata bergerak tradisional
  2. Pengendalian risiko yang sempurna: Stop loss yang diatur melalui ATR yang berfluktuasi dinamis, dapat beradaptasi dengan berbagai kondisi pasar
  3. Kejelasan sinyal: Menggunakan logika pembalikan tren, sinyal perdagangan jelas dan mudah dieksekusi
  4. Efek visualisasi yang baik: menampilkan tren naik dan turun secara intuitif dengan warna
  5. Parameter yang dapat disesuaikan: Parameter kunci dapat dioptimalkan sesuai dengan karakteristik pasar yang berbeda

Risiko Strategis

  1. Risiko pasar bergoyang: Pasar bergoyang horizontal dapat menghasilkan sinyal palsu yang menyebabkan perdagangan yang sering terjadi
  2. Efek slippage: Setiap sinyal melibatkan perdagangan dua arah dan rentan terhadap slippage karena menggunakan strategi reversal
  3. Manajemen risiko: Manajemen posisi rasio tetap dapat menyebabkan kerugian yang lebih besar pada saat fluktuasi besar
  4. Sensitivitas parameter: Pengaturan parameter VIDYA dan ATR memiliki pengaruh besar terhadap kinerja kebijakan
  5. Ketergantungan pada lingkungan pasar: Berkinerja baik di pasar yang jelas tren, tetapi mungkin berkinerja buruk di lingkungan pasar lainnya

Arah optimasi strategi

  1. Tambahkan filter tren: Anda dapat menambahkan penilaian tren jangka panjang untuk memfilter sinyal pasar yang bergoyang
  2. Optimalkan manajemen posisi: Pertimbangkan untuk memperkenalkan manajemen posisi dinamis, menyesuaikan persentase kepemilikan posisi sesuai dengan fluktuasi pasar
  3. Logika masuk lapangan yang diubah: pengesahan indikator teknis lainnya dapat ditambahkan untuk meningkatkan keandalan sinyal
  4. Perbaiki mekanisme penutupan: Pertimbangkan untuk menambahkan penutupan bergerak atau penutupan dinamis berdasarkan volatilitas
  5. Menambahkan filter waktu: Parameter strategi dapat disesuaikan dengan karakteristik pasar pada periode waktu yang berbeda

Meringkaskan

Strategi ini memungkinkan pelacakan dan pengendalian risiko yang dinamis terhadap tren pasar dengan menggabungkan VIDA dan ATR. Keunggulan utamanya adalah kemampuan untuk beradaptasi dengan fluktuasi pasar, sambil mempertahankan kemampuan untuk mengikuti tren, dan menangkap peluang reversal secara tepat waktu. Meskipun mungkin menghadapi risiko dalam beberapa lingkungan pasar, strategi ini masih memiliki nilai praktis yang baik melalui pengoptimalan parameter yang masuk akal dan langkah-langkah manajemen risiko.

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © PakunFX

//@version=5
strategy("VIDYA Auto-Trading(Reversal Logic)", overlay=true)

// INPUTS ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
int   vidya_length   = input.int(10, "VIDYA Length")       
int   vidya_momentum = input.int(20, "VIDYA Momentum")    
float band_distance  = input.float(2, "Distance factor for upper/lower bands", step = 0.1)  
float source         = input.source(close, "Source")    
color up_trend_color   = input(#17dfad, "+")  
color down_trend_color = input(#dd326b, "-")  
bool  shadow           = input.bool(true, "Shadow") 

// Define VIDYA (Variable Index Dynamic Average) function
vidya_calc(src, vidya_length, vidya_momentum) =>
    float momentum         = ta.change(src)
    float sum_pos_momentum = math.sum((momentum >= 0) ? momentum : 0.0, vidya_momentum)
    float sum_neg_momentum = math.sum((momentum >= 0) ? 0.0 : -momentum, vidya_momentum)
    float abs_cmo          = math.abs(100 * (sum_pos_momentum - sum_neg_momentum) / (sum_pos_momentum + sum_neg_momentum))
    float alpha            = 2 / (vidya_length + 1)
    var float vidya_value  = 0.0
    vidya_value           := alpha * abs_cmo / 100 * src + (1 - alpha * abs_cmo / 100) * nz(vidya_value[1])

    ta.sma(vidya_value, 15)

// Calculate VIDYA
float vidya_value = vidya_calc(source, vidya_length, vidya_momentum)

// Calculate upper and lower bands
float atr_value = ta.atr(200)
float upper_band = vidya_value + atr_value * band_distance
float lower_band = vidya_value - atr_value * band_distance

// Detect trend direction
bool is_trend_up = na
if ta.crossover(source, upper_band)
    is_trend_up := true
if ta.crossunder(source, lower_band)
    is_trend_up := false

// Smooth the trend line
float smoothed_value = na
if is_trend_up
    smoothed_value := lower_band
if not is_trend_up
    smoothed_value := upper_band

// Detect trend change
bool trend_cross_up = ta.crossover(source, upper_band)
bool trend_cross_down = ta.crossunder(source, lower_band)

// ENTRY & EXIT ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
// Long logic: Enter long when down arrow appears and exit when up arrow appears
if trend_cross_up
    strategy.close("Sell")  // Close short position if any
    strategy.entry("Buy", strategy.long)

if trend_cross_down
    strategy.close("Buy")  // Close long position if any
    strategy.entry("Sell", strategy.short)