Trend Mengikut Strategi Berdasarkan Perbezaan Purata Bergerak

Penulis:ChaoZhang, Tarikh: 2024-01-12 14:42:06
Tag:

img

Ringkasan

Strategi ini menghasilkan isyarat perdagangan berdasarkan perbezaan antara dua purata bergerak. Apabila garis pantas melintasi di atas garis perlahan, isyarat beli dihasilkan. Apabila garis pantas melintasi di bawah garis perlahan, isyarat jual dihasilkan. Ia tergolong dalam kategori strategi trend berikut. Strategi ini mudah dan mudah difahami, sesuai untuk perdagangan jangka menengah.

Logika Strategi

Strategi ini mengira perbezaan antara dua EMA dengan parameter yang berbeza, dan kemudian mengira EMA lain berdasarkan perbezaan ini untuk menjana isyarat dagangan. Khususnya, ia memilih tempoh, mengira 2 kali EMA tempoh/2 sebagai garisan pantas, dan EMA tempoh sebagai garisan perlahan. Perbezaan antara kedua-dua EMA ini membentuk perbezaan nilai perbezaan. Kemudian ia mengira EMA perbezaan berdasarkan tempoh sqrt ((period), menghasilkan garis penunjuk n1. Apabila n1 melintasi di atas 0, isyarat beli dihasilkan. Oleh itu apabila n1 melintasi di bawah 0, isyarat jual dihasilkan. n1 mencerminkan arah trend perbezaan, yang boleh digunakan untuk menangkap trend harga.

Strategi ini adalah mudah dan langsung, menggunakan penunjuk perbezaan purata bergerak berganda untuk menilai trend harga. Ia tergolong dalam strategi trend berikut yang tipikal. Ia berfungsi dengan baik di pasaran trend, tetapi boleh menghasilkan isyarat palsu semasa pasaran terhad julat. Penghakiman trend yang betul dan pengurusan risiko harus digunakan bersama dengan strategi.

Analisis Kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Logik strategi adalah mudah dan intuitif, mudah difahami dan dilaksanakan, sesuai untuk pemula;

  2. Penunjuk perbezaan purata bergerak sensitif terhadap perubahan harga dan dapat menangkap perubahan trend dengan berkesan;

  3. Strategi ini mempunyai beberapa parameter dan mudah untuk mengoptimumkan dan menyesuaikan dalam perdagangan sebenar;

  4. Penunjuk jangka panjang dan jangka pendek boleh digabungkan untuk menyesuaikan diri dengan persekitaran pasaran yang berbeza;

  5. Strategi stop loss boleh dikonfigurasikan mengikut pilihan risiko peribadi untuk mengurangkan kerugian.

Analisis Risiko

Strategi ini juga mempunyai risiko berikut:

  1. Kadar isyarat palsu yang lebih tinggi di pasaran yang terikat julat, trend jangka masa yang lebih besar harus dipertimbangkan;

  2. Tidak dapat menentukan titik pembalikan trend dengan berkesan, terdapat kelewatan tertentu;

  3. Parameter penunjuk perbezaan perlu dipantau untuk mengelakkan terlalu sensitif atau ketinggalan;

  4. Frekuensi perdagangan yang tinggi boleh membawa kepada kos transaksi yang lebih tinggi, saiz kedudukan memerlukan kawalan.

Penyelesaian yang sepadan adalah:

  1. Menggabungkan purata bergerak jangka panjang untuk menentukan trend utama, mengelakkan masuk secara salah semasa julat;

  2. Menambah penunjuk pembalikan untuk menentukan titik masuk dan keluar, mengurangkan risiko kelewatan;

  3. Ujian kombinasi parameter untuk mencari parameter optimum;

  4. Mengoptimumkan strategi stop loss untuk mengurangkan kerugian setiap perdagangan.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Uji kombinasi parameter purata bergerak yang berbeza untuk mencari parameter optimum;

  2. Tambah penunjuk penilaian trend untuk membezakan antara pasaran trend dan pasaran yang terikat julat;

  3. Menggabungkan penunjuk pembalikan untuk meningkatkan ketepatan kemasukan;

  4. Mengoptimumkan strategi stop loss untuk mengurangkan kerugian.

Pengujian parameter tempoh yang berbeza dapat meningkatkan kebolehsesuaian strategi kepada keadaan pasaran yang berbeza. Menambah penapis trend boleh mengurangkan isyarat palsu. Penunjuk pembalikan boleh meningkatkan masa kemasukan. Pengoptimuman ini dapat meningkatkan kestabilan dan keuntungan strategi.

Kesimpulan

Strategi berikut trend berdasarkan perbezaan purata bergerak mempunyai logik yang jelas dan mudah difahami. Dengan menilai trend harga menggunakan perbezaan purata bergerak berganda, ia termasuk dalam strategi mengejar trend biasa. Strategi itu sendiri sangat mudah dan mudah dilaksanakan, sesuai untuk perdagangan jangka menengah, terutamanya untuk pemula untuk belajar. Tetapi terdapat juga risiko tertentu dengan strategi yang perlu dikurangkan melalui pengoptimuman. Dengan penyesuaian parameter yang betul dan kawalan risiko, strategi dapat mencapai hasil yang baik.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title='Devick', overlay=true)

// Input parameters
period = input(title='Period', defval=21)

// Calculate moving averages
n2ma = 2 * ta.ema(close, math.round(period / 2))
nma = ta.ema(close, period)
diff = n2ma - nma
sqn = math.round(math.sqrt(period))

n2maPrev = 2 * ta.ema(close[1], math.round(period / 2))
nmaPrev = ta.ema(close[1], period)
diffPrev = n2maPrev - nmaPrev
sqnPrev = math.round(math.sqrt(period))

n1 = ta.ema(diff, sqn)
n2 = ta.ema(diffPrev, sqnPrev)

// Determine color based on condition
maColor = n1 > n2 ? color.green : color.red

// Plot moving average
ma = plot(n1, color=maColor, linewidth=2)

// Signals
buySignal = n1 > n2 and n1[1] <= n2[1]
sellSignal = n1 <= n2 and n1[1] > n2[1]

// Plot shapes for signals
plotshape(series=buySignal, title='Buy Signal', style=shape.arrowup, location=location.belowbar, color=color.green, size=size.small)
plotshape(series=sellSignal, title='Sell Signal', style=shape.arrowdown, location=location.abovebar, color=color.red, size=size.small)

// Alerts
alertcondition(condition=buySignal, title='Buy Signal', message='Buy Signal Detected')
alertcondition(condition=sellSignal, title='Sell Signal', message='Sell Signal Detected')

// Trading hours
openHour = 16
closeHour = 17

// Open position at 4 pm
openCondition = hour == openHour and minute == 0
strategy.entry("Buy", strategy.long, when=buySignal)
strategy.entry("Sell", strategy.short, when=sellSignal)
// Close all positions at 5 pm
closeCondition = hour == closeHour and minute == 0
strategy.close_all(when=closeCondition)

Lebih lanjut