Tren Vortex Oscillator Mengikuti Strategi

Penulis:ChaoZhang, Tanggal: 2023-12-07 16:48:45
Tag:

img

Gambaran umum

Vortex Oscillator adalah strategi pelacakan tren berdasarkan Indikator Vortex. Ini menggunakan moving average dari beberapa kerangka waktu untuk membangun Indikator Vortex untuk mengidentifikasi tren harga potensial, dan dikombinasikan dengan moving average periode yang lebih pendek sebagai penilaian tambahan untuk mencapai operasi pelacakan tren berisiko rendah.

Prinsip Strategi

Indikator utama dari strategi ini adalah Indikator Vortex. Indikator Vortex terdiri dari rata-rata bergerak jangka pendek, jangka menengah dan jangka panjang dari beberapa kerangka waktu. Secara khusus, strategi ini menggunakan rata-rata bergerak 6 hari, 27 hari, 72 hari dan 234 hari. Rata-rata bergerak jangka pendek mencerminkan tren harga terbaru, sementara rata-rata bergerak jangka panjang mencerminkan tren jangka panjang. Logika inti dari indikator adalah bahwa ketika rata-rata bergerak jangka pendek melintasi di atas rata-rata bergerak jangka panjang, itu menunjukkan bahwa momentum naik semakin kuat dan sudah waktunya untuk membeli. Ketika rata-rata bergerak jangka pendek melintasi di bawah rata-rata bergerak jangka panjang, itu menunjukkan bahwa momentum naik semakin melemah dan kita harus menjual.

Keuntungan signifikan dari Indikator Vortex adalah bahwa ia secara akurat menilai tren dan secara efektif menyaring kebisingan pasar. Namun, reaksinya tidak cukup sensitif untuk menangkap titik balik secara tepat waktu. Oleh karena itu, strategi ini menggabungkan rata-rata bergerak 6 hari yang lebih sensitif untuk membangun indikator penilaian tambahan. Beli ketika Indikator Vortex dan indikator tambahan melintasi di atas garis nol, dan jual ketika kedua indikator melintasi di bawah garis nol. Ini membentuk logika multi-konfirmasi di mana Indikator Vortex menentukan arah tren dan kekuatan sementara indikator tambahan menentukan titik masuk dan keluar tertentu, yang menyaring sinyal palsu sambil meningkatkan sensitivitas operasi.

Analisis Keuntungan

Keuntungan terbesar dari strategi ini adalah akurasi penilaian dan sensitivitas operasi. Kombinasi Indikator Vortex dan indikator tambahan mencapai kesatuan organik penilaian tren dan penentuan titik masuk / keluar tertentu sambil menghindari gangguan satu sama lain. Mekanisme multi-konfirmasi dapat secara efektif menyaring kebisingan pasar dan menghindari perdagangan yang salah. Pada saat yang sama, penambahan indikator tambahan juga memastikan sensitivitas operasi strategi.

Jika dibandingkan dengan strategi indikator tunggal, keuntungan dari strategi ini adalah menggabungkan beberapa indikator untuk mencapai kemampuan yang lebih kuat dalam mengidentifikasi dan menanggapi perubahan pasar.

Analisis Risiko

Risiko utama dari strategi ini berasal dari pengaturan parameter indikator yang tidak tepat dan dampak dari peristiwa ekstrem. Parameter rata-rata bergerak perlu menyeimbangkan sensitivitas dan resistensi gangguan kebisingan. Pengaturan parameter yang tidak benar akan menyebabkan perilaku strategi yang tidak normal. Selain itu, peristiwa besar juga dapat menyebabkan volatilitas harga yang ekstrim yang menonaktifkan indikator, menghasilkan perdagangan yang salah.

Untuk mengurangi risiko ini, parameter harus dioptimalkan dan diuji kembali untuk menstabilkan kinerja indikator. Juga, perhatikan dengan seksama dampak pasar dari peristiwa besar, jeda strategi bila perlu untuk menghindari kesalahan selama periode volatilitas abnormal.

Arahan Optimasi

Strategi dapat dioptimalkan dalam aspek berikut:

  1. Mengoptimalkan parameter rata-rata bergerak untuk meningkatkan resistensi kebisingan indikator dan sensitivitas operasi.

  2. Tambahkan mekanisme stop loss. Tetapkan titik stop loss ketika harga melanggar level support utama ke arah yang tidak menguntungkan untuk menghindari kerugian lebih lanjut.

  3. Masukkan penilaian indikator lain untuk meningkatkan stabilitas strategi, misalnya hanya mengambil sinyal ketika volume perdagangan meningkat.

  4. Gunakan set parameter yang berbeda berdasarkan tahap pasar yang berbeda. Misalnya, parameter yang lebih agresif selama pasar bull, dan pengaturan yang lebih stabil di pasar bear.

Kesimpulan

Vortex Oscillator Trend Following Strategy berhasil menggabungkan penilaian tren dan eksekusi melalui Indikator Vortex yang menentukan arah/kekuatan tren harga dan rata-rata bergerak jangka pendek yang sensitif yang menentukan waktu masuk/keluar tertentu.


/*backtest
start: 2022-11-30 00:00:00
end: 2023-12-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//swap strategy line for study line to enable backtesting
strategy(title="Vortex Ocillator" )
//study(title = "Vortex Oscillator", precision = 6)

// Component Code Start
// Example usage:
// if testPeriod()
//   strategy.entry("LE", strategy.long)
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2048, "Backtest Stop Year")
testStopMonth = input(7, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() => true
// Component Code Stop

//vortex histogram
short_input = input(6, minval = 1)
long_input = input(27, minval = 1)
longer_input = input(72, minval = 1)
longest_input = input(234, minval = 1)

short = sma(close, short_input)
long = sma(close, long_input)
longer = sma(close, longer_input)
longest = sma(close, longest_input)

hist = short - long
longhist = short - longer
longesthist = short - longest

hist_fractal = input(3, minval = 0)
longhist_fractal = input(2, minval = 0)
longesthist_fractal = input(4, minval = 0)

vortexhist = avg((hist / hist_fractal), (longhist / longhist_fractal), (longesthist / longesthist_fractal))

crossover_calc = vortexhist > 0 and vortexhist[1] < 0
crossunder_calc = vortexhist < 0 and vortexhist[1] > 0

crossover2 = crossover(vortexhist, 0)
crossunder2 = crossunder(vortexhist, 0)

hist_color = hist > 0? fuchsia : purple
longhist_color = longhist > 0? olive : orange
longesthist_color = longesthist > 0? teal : blue
vortexhist_color = vortexhist >= 0? green : red

plot(longesthist, "Longest Ocillator", style = histogram, color = longesthist_color, transp = 5)
plot(longhist, "Longer Ocillator", style = histogram, color = longhist_color, transp = 30)
plot(hist, "Short Ocillator", style = histogram, color = hist_color, transp = 30)
plot(vortexhist, "Vortex Ocillator", style = columns, color = vortexhist_color, transp = 40)
plotshape(crossover_calc,title = "Crossover",location = location.bottom, style = shape.triangleup, size = size.small, color = green)
plotshape(crossunder_calc,title = "Crossunder",location = location.bottom, style = shape.triangledown, size = size.small, color = red)

//micro
micro_ema_length = input(6,"Micro EMA Length")
micro = ema(vortexhist, micro_ema_length)
plot(micro, title = "micro", linewidth = 1, color = white)
microup = crossover(vortexhist, micro)
microdown = crossunder(vortexhist, micro)

//new micro signals
xmicroup = microup and vortexhist >=0 or crossover_calc
xmicrodown = microdown and vortexhist >=0 or crossunder_calc
plotshape(xmicroup, title = "Micro up", style = shape.circle, color = olive, location = location.bottom, size = size.tiny)
plotshape(xmicrodown, title = "Micro down", style = shape.circle, color = fuchsia, location = location.bottom, size = size.tiny)

//optional strategy options for backtesting, comment out the alertcondition rows and swap the top study row for the strategy row to compile as strategy
if testPeriod()
    strategy.entry("buy", true, 1, when = xmicroup, limit = low)
if testPeriod()
    strategy.close("buy", when = xmicrodown)

   

//if (xmicroup)
    //strategy.entry("My Long Entry Id", strategy.long)
//if (xmicroup)
    //strategy.exit("My Short Exit Id", "My Short Entry Id")
//if (xmicrodown)
    //strategy.exit("My Long Exit Id", "My Long Entry Id")

  




Lebih banyak