Strategi Pelacakan Volatilitas Rata-rata Bergerak Ganda

Penulis:ChaoZhang, Tanggal: 2024-02-29 11:15:08
Tag:

img

Gambaran umum

Strategi Pelacakan Volatilitas Rata-rata Bergerak Ganda mengintegrasikan ide-ide dari Golden Cross Dead Cross dan Moving Average Volatility Tracking strategi. Dengan menghitung persilangan rata-rata bergerak sederhana (SMA) dengan periode yang berbeda, ia menyadari salib emas dan salib mati untuk menilai tren. Sementara itu, dengan menggabungkan Bollinger Bands dan indeks VIDYA, ia menilai tren pasar dan volatilitas, mencapai identifikasi tren yang efektif dan penangkapan titik balik utama yang efisien.

Logika Strategi

Indikator inti dari strategi ini termasuk Simple Moving Average (SMA), Bollinger Bands dan Variable Index Dynamic Average (VIDYA). Strategi ini mengatur SMA cepat dan LMA lambat dengan periode yang berbeda. Salib emas dari garis cepat dan lambat berfungsi sebagai sinyal panjang, sementara salib kematian berfungsi sebagai sinyal keluar. Sementara itu, ia memantau pecahnya harga di atas atau di bawah Bollinger Bands selama periode kepemilikan. VIDYA, yang menggabungkan informasi volatilitas, menilai arah dan kekuatan tren saat ini.

Secara khusus, logika sinyal panjang dipicu ketika SMA cepat melintasi LMA lambat, dan harga berada di atas kurva VIDYA, yang menunjukkan ekspansi tren naik dan volatilitas.

Analisis Keuntungan

Keuntungan terbesar dari strategi ini adalah menggabungkan indikator ganda untuk menilai kondisi pasar, meningkatkan keakuratan keputusan.

  1. Strategi golden cross dan dead cross sederhana dan efektif untuk mengidentifikasi titik balik tren.
  2. Indeks VIDYA secara dinamis melacak perubahan volatilitas pasar.
  3. Bollinger Bands merespon fluktuasi harga tepat waktu.

Singkatnya, strategi ini mengintegrasikan informasi dari dimensi tren, reversi, dan volatilitas.

Analisis Risiko

Meskipun strategi ini memiliki banyak manfaat, masih ada beberapa risiko yang harus diketahui:

  1. Pengaturan parameter yang tidak tepat dapat menyebabkan over-trading, peningkatan biaya dan slippage.
  2. Sinyal yang bertentangan antara indikator ganda dapat menyebabkan hilangnya titik masuk terbaik.
  3. Risiko overfiting backtest ada. kinerja perdagangan yang sebenarnya bisa sangat berbeda dari hasil backtest.

Untuk mengurangi risiko di atas, optimasi parameter, aturan prioritas antara sinyal, kontrol slippage, dan pengujian ketahanan di lingkungan pasar yang berbeda dianjurkan.

Arahan Optimasi

Dimensi pengoptimalan utama terletak pada pengaturan parameter dan pengaturan kondisi filter:

  1. Mengoptimalkan parameter periode SMA dan LMA.
  2. Sesuaikan parameter bandwidth untuk Bollinger Bands.
  3. Mengoptimalkan parameter perataan alfa di VIDYA.
  4. Tambahkan kondisi filter harga atau volume.

Kombinasi optimasi parameter dan penyempurnaan aturan dapat lebih meningkatkan stabilitas dan profitabilitas.

Kesimpulan

Strategi Dual Moving Average Volatility Tracking menggunakan beberapa indikator untuk menentukan kondisi pasar, menangkap titik balik tren sambil memantau situasi fluktuasi harga. Ini adalah strategi yang menarik menyeimbangkan risiko dan pengembalian.


/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Combined Golden Cross and Progressive Trend Tracker", shorttitle="GCC-PTT", overlay=true)

// Inputs
fastMA_period = input(50, title="Fast MA Period")
slowMA_period = input(200, title="Slow MA Period")
src = input(close, title="Source")
lengthBB = input(20, title="Bollinger Bands Length")
mult = input(2.0, title="Bollinger Bands Multiplier")
mavType = input.string(title="Moving Average Type", defval="VAR", options=['SMA', 'EMA', 'WMA', 'TMA', 'VAR', 'WWMA', 'ZLEMA', 'TSF'])

// Calculate Moving Averages for Golden Cross
fastMA = ta.sma(src, fastMA_period)
slowMA = ta.sma(src, slowMA_period)
bullish_cross = ta.crossover(fastMA, slowMA)
bearish_cross = ta.crossunder(fastMA, slowMA)

// Progressive Trend Tracker Components (Adjusted for NA assignment issue)
Var_Func(src, length) =>
    valpha = 2 / (length + 1)
    vud1 = src > src[1] ? src - src[1] : 0
    vdd1 = src < src[1] ? src[1] - src : 0
    vUD = math.sum(vud1, length)
    vDD = math.sum(vdd1, length)
    vCMO = (vUD - vDD) / (vUD + vDD)
    VAR = 0.0 // Adjusted here, assign an initial value
    VAR := ta.ema(src * math.abs(vCMO), length)
    VAR

VAR = Var_Func(src, 14) // Example VAR calculation, adjust as needed

// Bollinger Bands for dynamic support and resistance
BBandTop = fastMA + mult * ta.stdev(src, lengthBB)
BBandBot = fastMA - mult * ta.stdev(src, lengthBB)

// Plotting
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.red, title="Slow MA")
plot(BBandTop, color=color.green, title="Bollinger Band Top")
plot(BBandBot, color=color.red, title="Bollinger Band Bottom")
plot(VAR, color=color.purple, title="VAR", linewidth=2)

// Strategy Logic (Adjusted for strategy use)
// Long Entry when bullish cross and close above VAR
// Exit when bearish cross or close below VAR
if (bullish_cross and close > VAR)
    strategy.entry("CGC_PTT_Long", strategy.long)
if (bearish_cross or close < VAR)
    strategy.close("CGC_PTT_Long")


Lebih banyak