Momentum Breakthrough ATR Strategi Volatilitas

Penulis:ChaoZhang, Tanggal: 2024-01-12 13:50:44
Tag:

img

Gambaran umum

Strategi ini menggunakan kombinasi dari strategi rata-rata bergerak ganda sederhana, dilengkapi dengan indeks volatilitas ATR untuk menentukan volatilitas pasar. Ketika garis rata-rata jangka pendek melintasi di atas garis rata-rata jangka panjang, itu ditentukan sebagai pasar bull dan posisi panjang diambil. Ketika garis rata-rata jangka pendek melintasi di bawah garis rata-rata jangka panjang, itu ditentukan sebagai pasar beruang dan posisi pendek diambil. Pada saat yang sama, keandalan sinyal rata-rata bergerak dinilai dengan menggabungkan harga rata-rata tertimbang volume VWAP. Selain itu, indikator RSI dimasukkan untuk menghindari pembalikan. Indeks volatilitas ATR digunakan untuk menentukan volatilitas pasar sehingga dapat memilih perdagangan selama periode volatilitas yang lebih rendah.

Prinsip Strategi

Inti dari strategi ini adalah strategi rata-rata bergerak ganda. Strategi rata-rata bergerak ganda biasanya memilih rata-rata bergerak jangka pendek dan rata-rata bergerak jangka panjang, seperti rata-rata bergerak 50 hari dan rata-rata bergerak 200 hari. Sinyal beli dihasilkan ketika rata-rata bergerak jangka pendek melintasi di atas rata-rata bergerak jangka panjang. Sinyal jual dihasilkan ketika rata-rata bergerak jangka pendek melintasi di bawah rata-rata bergerak jangka panjang. Strategi rata-rata bergerak ganda menilai perubahan tren pasar jangka panjang dan jangka pendek, dan menggunakan terobosan rata-rata bergerak untuk menangkap titik balik tren.

Strategi ini memilih rata-rata bergerak 50 hari sebagai rata-rata bergerak jangka pendek dan rata-rata bergerak 200 hari sebagai rata-rata bergerak jangka panjang. Dikombinasikan dengan harga rata-rata tertimbang volume VWAP untuk menentukan keandalan sinyal rata-rata bergerak. Artinya, hanya masuk ke pasar ketika sinyal rata-rata bergerak sejajar dengan VWAP. Ini menyaring beberapa sinyal palsu.

Selain itu, indikator RSI dimasukkan untuk menghindari overbuy dan oversell.

Akhirnya, amplitudo rata-rata fluktuasi indikator ATR digunakan untuk menentukan volatilitas dan tingkat risiko pasar. Ketika nilai ATR lebih besar dari 1,18, itu didefinisikan sebagai volatilitas tinggi. Pada titik ini, dengan mengubah warna latar belakang, risiko yang lebih tinggi diminta dan perdagangan dapat dihindari sementara sampai volatilitas menurun.

Analisis Keuntungan

Keuntungan utama dari strategi ini tercermin dalam tiga aspek:

  1. Rata-rata bergerak ganda menangkap titik balik dari tren jangka menengah dan panjang di pasar, dan menggunakan perdagangan tren untuk mendapatkan keuntungan yang relatif besar.

  2. Menggabungkan VWAP untuk menyaring sinyal palsu dan meningkatkan keandalan sinyal.

  3. Pengenalan indikator RSI untuk menghindari perdagangan melawan pasar, yang dapat mengurangi kerugian.

  4. Aplikasi indeks volatilitas ATR untuk menentukan kondisi risiko pasar menghindari periode volatilitas tinggi, yang dapat mengurangi kerugian.

  5. Kombinasi dari berbagai indikator sederhana dan mudah dipahami dan diterapkan, cocok untuk masuk perdagangan kuantitatif.

Analisis Risiko

Strategi ini juga memiliki beberapa risiko:

  1. Ketika rata-rata bergerak menghasilkan sinyal, harga mungkin telah berubah sangat besar, menimbulkan risiko overtrading. Solusinya adalah untuk mengurangi siklus rata-rata bergerak untuk mempercepat kecepatan reaksi indikator.

  2. VWAP mungkin memiliki kesalahan, sehingga menyaring sinyal perdagangan yang benar.

  3. Pada akhir tren, RSI dapat tetap berada di area overbought/oversold untuk waktu yang lama, melewatkan titik balik pembalikan tren.

  4. ATR mungkin tertinggal ketika menilai volatilitas pasar. Solusinya adalah menggabungkan harga tertinggi, harga terendah, dll untuk menentukan volatilitas pasar.

  5. Pengembalian mungkin tidak memenuhi harapan dan parameter harus disesuaikan.

Arah Optimalisasi

Masih ada ruang besar untuk optimasi dalam strategi ini:

  1. Uji lebih banyak kombinasi rata-rata bergerak untuk menemukan parameter optimal.

  2. Tambahkan lebih banyak indikator tambahan ke sinyal filter seperti MACD, KDJ dll.

  3. Mengoptimalkan parameter stop loss dan take profit untuk mengurangi kerugian dan meningkatkan keuntungan.

  4. Evaluasi perbedaan strategi perdagangan antara saham kuat dan saham lemah untuk pemodelan klasifikasi.

  5. Menggabungkan algoritma pembelajaran mesin seperti RNN untuk mengoptimalkan parameter secara otomatis dan mengevaluasi strategi.

  6. Mengembangkan sistem perdagangan otomatis dan terhubung ke perdagangan langsung untuk backtesting.

Ringkasan

Secara keseluruhan, strategi ini adalah strategi pelacakan tren yang relatif sederhana. Inti menggunakan rata-rata bergerak ganda untuk menentukan tren jangka panjang dan jangka pendek. Menggabungkan VWAP dan RSI untuk memproses sinyal dan menerapkan ATR untuk menilai risiko. Ide strategi sederhana dan mudah dipahami dan dioperasikan. Melalui beberapa ruang optimasi, pengembalian yang baik dapat diperoleh. Sebagai pilihan untuk masuk perdagangan kuantitatif, sangat cocok.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Simple Moving Averages", overlay=true)

sma50 = ta.sma(close, 50)
sma200 = ta.sma(close, 200)
vwap = ta.vwap(close)
rsi = ta.rsi(close, 14)
[diPlus, diMinus, adx_val] = ta.dmi(14, 14)
atr_val = ta.atr(14)

plot(sma50, color=color.new(color.green, 0))
plot(sma200, color=color.new(color.red, 0))
plot(vwap)

longCondition = ta.crossover(sma50, sma200) and vwap > close
shortCondition = ta.crossunder(sma50, sma200) and vwap < close

if (longCondition)
    strategy.entry("Long", strategy.long)
    
if (shortCondition)
    strategy.entry("Short", strategy.short)

barcolor = sma50 > sma200 ? (vwap < close ? (rsi < 70 ? color.green : color.blue) : color.yellow) : (sma50 < sma200 ? (vwap > close ? (rsi > 30 ? color.red : color.orange) : color.yellow) : na)
barcolor(barcolor)
bgcolor(adx_val > 25 and atr_val > 1.18 ? color.new(color.gray, 50) : color.new(color.black, 50), transp=90)

// ADX and ATR Label Box
// label.new(bar_index, high, "ADX: " + str.tostring(adx_val, "#.##") + "\nATR: " + str.tostring(atr_val, "#.##"), color=color.new(color.white, 0), textcolor=color.new(color.black, 0), style=label.style_labeldown, yloc=yloc.price, xloc=xloc.bar_index, size=size.small, textalign=text.align_left)

// Exit conditions (optional)
strategy.close("Long", when = ta.crossunder(sma50, sma200))
strategy.close("Short", when = ta.crossover(sma50, sma200))

// Take Profit and Stop Loss
takeProfitPercentage = 5
stopLossPercentage = 3

strategy.exit("Take Profit / Stop Loss", "Long", profit = takeProfitPercentage, loss = stopLossPercentage)
strategy.exit("Take Profit / Stop Loss", "Short", profit = takeProfitPercentage, loss = stopLossPercentage)

Lebih banyak