Penunjuk Volatiliti Dinamik (VIDYA) digabungkan dengan aliran ATR berikutan strategi pembalikan

ATR CMO SMA MA
Tarikh penciptaan: 2024-12-13 10:21:14 Akhirnya diubah suai: 2024-12-13 10:21:14
Salin: 0 Bilangan klik: 474
1
fokus pada
1617
Pengikut

Penunjuk Volatiliti Dinamik (VIDYA) digabungkan dengan aliran ATR berikutan strategi pembalikan

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan pengesanan trend berdasarkan indikator kadar turun naik dinamik ((VIDYA), yang digabungkan dengan turun naik ATR untuk meningkatkan pengesanan trend dan keupayaan pengurusan risiko. Strategi ini dapat menangkap isyarat pembalikan pasaran dengan tepat pada masanya dengan menyesuaikan kelajuan tindak balas kepada turun naik pasaran secara dinamik, sambil mengekalkan keupayaan untuk mengikuti trend.

Prinsip Strategi

Inti strategi ini adalah untuk menggunakan ciri-ciri dinamik penunjuk VIDYA untuk mengenal pasti trend. VIDYA secara dinamik menyesuaikan berat rata-rata bergerak dengan mengira perubahan momentum, sehingga mempunyai kepekaan yang berbeza dalam keadaan pasaran yang berbeza.

  1. Menggunakan Chande Dynamic Oscillator (CMO) untuk mengira pergerakan harga
  2. Faktor penyesuaian alfa berdasarkan tenaga
  3. Membina pita gelombang dinamik dengan ATR
  4. Penembusan harga ke atas menghasilkan isyarat melakukan banyak, penembusan ke bawah menghasilkan isyarat melakukan kosong
  5. Menggunakan logik pembalikan kedudukan, iaitu isyarat baru sekaligus menghapuskan kedudukan lama dan membuka kedudukan baru

Kelebihan Strategik

  1. Dinamis: penunjuk VIDYA dapat menyesuaikan parameter secara automatik mengikut turun naik pasaran, mengelakkan masalah ketinggalan rata-rata bergerak tradisional
  2. Pengendalian risiko yang sempurna: Stop loss yang ditetapkan melalui ATR yang dinamik dan dapat menyesuaikan diri dengan keadaan pasaran yang berbeza
  3. Kejelasan isyarat: menggunakan logik pembalikan trend, isyarat perdagangan jelas dan mudah dilaksanakan
  4. Kesan visual yang baik: menunjukkan keadaan pasaran secara intuitif dengan warna yang membezakan trend naik dan turun
  5. Parameter yang boleh disesuaikan: Parameter utama boleh dioptimumkan mengikut ciri-ciri pasaran yang berbeza

Risiko Strategik

  1. Risiko pasaran yang bergoyang: pasaran yang bergoyang di atas piringan mudah menghasilkan isyarat palsu yang menyebabkan perdagangan yang kerap
  2. Kesan slippoint: Setiap isyarat melibatkan perdagangan dua hala dan mudah terjejas oleh slippoint kerana menggunakan strategi pembalikan
  3. Risiko pengurusan wang: Pengurusan kedudukan peratusan tetap boleh menyebabkan kerugian yang lebih besar apabila turun naik
  4. Sensitiviti parameter: Tetapan parameter VIDYA dan ATR mempunyai kesan besar terhadap prestasi strategi
  5. Ketergantungan kepada keadaan pasaran: Berkesan lebih baik dalam keadaan pasaran yang jelas, tetapi mungkin kurang baik dalam keadaan pasaran lain

Arah pengoptimuman strategi

  1. Menambah penapis trend: anda boleh menambah penilaian trend jangka panjang untuk menapis isyarat pasaran yang bergolak
  2. Pengurusan kedudukan yang optimum: Pertimbangkan untuk memperkenalkan pengurusan kedudukan yang dinamik, menyesuaikan peratusan pegangan mengikut turun naik pasaran
  3. Logik masuk ke medan yang diubah: pengesahan petunjuk teknikal lain boleh ditambah untuk meningkatkan kebolehpercayaan isyarat
  4. Meningkatkan mekanisme hentikan kerugian: Pertimbangkan untuk menambah hentikan bergerak atau hentikan dinamik berdasarkan kadar turun naik
  5. Menambah penapis masa: parameter strategi boleh disesuaikan dengan ciri-ciri pasaran dalam tempoh masa yang berbeza

ringkaskan

Strategi ini mewujudkan pemantauan dinamik dan kawalan risiko trend pasaran dengan menggabungkan VIDA dan ATR. Kelebihan utamanya adalah keupayaan untuk menyesuaikan diri dengan turun naik pasaran, sambil mengekalkan keupayaan untuk mengikuti trend, tetapi juga dapat menangkap peluang pembalikan tepat pada masanya. Walaupun mungkin menghadapi risiko dalam keadaan pasaran tertentu, strategi ini masih mempunyai nilai praktikal yang baik melalui pengoptimuman parameter yang munasabah dan langkah-langkah pengurusan risiko.

Kod 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)