Strategi Mengikuti Trend Pengayun Vortex


Tarikh penciptaan: 2023-12-07 16:48:45 Akhirnya diubah suai: 2023-12-07 16:48:45
Salin: 0 Bilangan klik: 676
1
fokus pada
1619
Pengikut

Strategi Mengikuti Trend Pengayun Vortex

Gambaran keseluruhan

Strategi pengesanan trend vortex oscillator adalah strategi pengesanan trend berdasarkan indikator vortex. Ia menggunakan purata bergerak dari beberapa kitaran yang berbeza untuk membina indikator vortex, mengenal pasti trend berpotensi dalam harga, dan menggabungkan purata bergerak dari kitaran yang lebih pendek sebagai penilaian tambahan, untuk mencapai operasi pengesanan trend yang berisiko rendah.

Prinsip Strategi

Tanda-tanda utama strategi ini adalah indikator pusaran. Tanda-tanda pusaran terdiri daripada purata bergerak jangka pendek, sederhana dan panjang dari beberapa kitaran yang berbeza. Secara khusus, strategi ini menggunakan purata bergerak empat kitaran iaitu 6, 27, 72 dan 234 hari. Purata bergerak jangka pendek mencerminkan trend terkini harga, dan purata bergerak jangka panjang mencerminkan trend harga jangka panjang. Logik utama indikator adalah bahawa apabila melintasi purata bergerak jangka pendek, yang menunjukkan kenaikan harga yang kuat, ia harus dibeli; apabila melintasi purata bergerak jangka pendek, yang menunjukkan penurunan kenaikan harga, ia harus dijual.

Penunjuk putaran berputar mempunyai kelebihan yang ketara adalah keakuratannya dalam menilai trend, mampu menapis bunyi pasaran dengan berkesan. Tetapi tindak balasnya tidak cukup sensitif dan tidak dapat menangkap titik peralihan tepat pada masanya. Oleh itu, strategi ini menambahkan purata bergerak 6 hari yang lebih sensitif, untuk membina penunjuk keputusan tambahan.

Analisis kelebihan

Kelebihan utama strategi ini adalah keakuratannya dan kepekaan operasinya. Gabungan indikator pusaran dan indikator pembantu, mewujudkan kesatuan organik dalam penilaian trend dan menentukan titik jual beli tertentu, dan fungsi masing-masing sekitaran untuk mengelakkan gangguan antara satu sama lain.

Berbanding dengan strategi indikator tunggal, strategi ini menggunakan kelebihan pelbagai indikator secara komprehensif, dan mempunyai keupayaan yang lebih baik untuk mengenal pasti dan bertindak balas terhadap perubahan pasaran. Strategi ini dapat mencapai keuntungan yang stabil jika trend utama tidak berubah; Apabila trend utama berubah, strategi ini juga dapat bertindak balas dengan cepat dan mengurangkan kerugian.

Analisis risiko

Risiko utama strategi ini adalah kesan parameter penunjuk yang tidak betul dan kejadian mengejut. Pengaturan parameter purata bergerak memerlukan pertimbangan sensitiviti dan kebolehan untuk menahan gangguan bunyi, jika parameter yang tidak betul ditetapkan, ia akan menyebabkan tindakan strategi yang tidak normal.

Untuk mengurangkan risiko ini, disarankan untuk mengoptimumkan kombinasi parameter dan melakukan pengesanan semula, menjadikan prestasi penunjuk lebih stabil. Selain itu, perlu memantau kesan pasaran yang dibawa oleh peristiwa besar, menangguhkan strategi jika perlu, dan mengelakkan kesalahan operasi dalam tempoh turun naik yang luar biasa.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Mengoptimumkan parameter purata bergerak, meningkatkan keupayaan penunjuk untuk menahan gangguan dan kepekaan operasi. Anda boleh mencuba kombinasi parameter panjang yang berbeza, memilih penunjuk yang lancar dan sensitif.

  2. Tambah mekanisme penangguhan kerugian. Apabila harga menembusi tahap sokongan kritikal ke arah yang tidak baik, tetapkan titik penangguhan kerugian untuk mengelakkan kerugian lebih lanjut.

  3. Gabungan dengan penilaian indikator lain, meningkatkan kestabilan strategi. Sebagai contoh, penambahan indikator jumlah transaksi, hanya akan menghasilkan isyarat perdagangan jika jumlah transaksi meningkat.

  4. Menggunakan kombinasi parameter yang berbeza mengikut peringkat pasaran yang berbeza. Sebagai contoh, parameter yang lebih positif digunakan semasa pasaran lembu dan lebih stabil digunakan semasa pasaran beruang.

ringkaskan

Strategi pengesanan trend vortex oscillator dengan menggunakan indikator vortex untuk menentukan arah dan kekuatan trend harga, ditambah dengan purata bergerak jangka pendek yang lebih sensitif untuk menentukan masa pembelian dan penjualan yang tepat. Strategi ini berjaya menggabungkan kedua-dua tahap penghakiman trend dan pelaksanaan perdagangan, yang memastikan kestabilan operasi dan meningkatkan fleksibiliti strategi. Dengan pengoptimuman parameter, tetapan stop loss dan pengenalan mekanisme status, diharapkan untuk meningkatkan lagi kemampuan strategi untuk menghadapi risiko, untuk mendapatkan indikator pengukuran balik dan prestasi saham yang lebih baik.

Kod sumber strategi
/*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")