Tren Mengikuti Strategi Berdasarkan Perbedaan Rata-rata Bergerak

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

img

Gambaran umum

Strategi ini menghasilkan sinyal perdagangan berdasarkan perbedaan antara dua moving average. Ketika garis cepat melintasi di atas garis lambat, sinyal beli dihasilkan. Ketika garis cepat melintasi di bawah garis lambat, sinyal jual dihasilkan. Ini termasuk dalam kategori strategi trend following. Strategi ini sederhana dan mudah dipahami, cocok untuk perdagangan jangka menengah.

Logika Strategi

Strategi ini menghitung perbedaan antara dua EMA dengan parameter yang berbeda, dan kemudian menghitung EMA lain berdasarkan perbedaan ini untuk menghasilkan sinyal perdagangan. Secara khusus, ia memilih periode, menghitung 2 kali EMA periode/2 sebagai garis cepat, dan EMA periode sebagai garis lambat. Perbedaan antara kedua EMA ini merupakan perbedaan nilai dif. Kemudian ia menghitung EMA dari dif berdasarkan periode periode sqrt ((period), menghasilkan garis indikator n1. Ketika n1 melintasi di atas 0, sinyal beli dihasilkan. Dengan demikian ketika n1 melintasi di bawah 0, sinyal jual dihasilkan. n1 mencerminkan arah tren perbedaan, yang dapat digunakan untuk menangkap tren harga.

Strategi ini sederhana dan langsung, menggunakan indikator selisih rata-rata bergerak ganda untuk menilai tren harga. Ini termasuk dalam strategi tren berikut yang khas. Ini bekerja dengan baik di pasar tren, tetapi dapat menghasilkan sinyal palsu selama pasar yang terikat rentang. Penghakiman tren dan manajemen risiko yang tepat harus digunakan bersama dengan strategi.

Analisis Keuntungan

Strategi ini memiliki keuntungan berikut:

  1. Logika strategi sederhana dan intuitif, mudah dimengerti dan diimplementasikan, cocok untuk pemula;

  2. Indikator selisih rata-rata bergerak sensitif terhadap perubahan harga dan dapat secara efektif menangkap perubahan tren;

  3. Strategi memiliki beberapa parameter dan mudah dioptimalkan dan disesuaikan dalam perdagangan nyata;

  4. Indikator jangka panjang dan jangka pendek dapat dikombinasikan untuk beradaptasi dengan lingkungan pasar yang berbeda;

  5. Strategi stop loss dapat dikonfigurasi sesuai dengan preferensi risiko pribadi untuk mengurangi kerugian.

Analisis Risiko

Strategi ini juga memiliki risiko berikut:

  1. Tingkat sinyal palsu yang lebih tinggi di pasar yang terikat rentang, tren jangka waktu yang lebih besar harus dipertimbangkan;

  2. Tidak dapat secara efektif menentukan titik pembalikan tren, ada keterlambatan tertentu;

  3. Parameter indikator perbedaan harus dipantau untuk mencegah terlalu sensitif atau keterlambatan;

  4. Frekuensi perdagangan yang tinggi dapat menyebabkan biaya transaksi yang lebih tinggi, ukuran posisi perlu dikontrol.

Solusi yang sesuai adalah:

  1. Menggabungkan rata-rata bergerak jangka panjang untuk menentukan tren utama, menghindari salah masuk selama rentang;

  2. Menambahkan indikator pembalikan untuk menentukan titik masuk dan keluar, mengurangi risiko keterlambatan;

  3. Pengujian kombinasi parameter untuk menemukan parameter yang optimal;

  4. Mengoptimalkan strategi stop loss untuk mengurangi kerugian per perdagangan.

Arahan Optimasi

Strategi dapat dioptimalkan dalam aspek berikut:

  1. Uji kombinasi parameter rata-rata bergerak yang berbeda untuk menemukan parameter yang optimal;

  2. Menambahkan indikator penilaian tren untuk membedakan antara pasar tren dan pasar yang terikat rentang;

  3. Menggabungkan indikator pembalikan untuk meningkatkan akurasi masuk;

  4. Mengoptimalkan strategi stop loss untuk mengurangi kerugian.

Pengujian parameter periode yang berbeda dapat meningkatkan kemampuan adaptasi strategi terhadap kondisi pasar yang berbeda. Menambahkan filter tren dapat mengurangi sinyal palsu. Indikator pembalikan dapat meningkatkan waktu entri. Optimasi ini dapat meningkatkan stabilitas dan profitabilitas strategi.

Kesimpulan

Strategi mengikuti tren berdasarkan perbedaan rata-rata bergerak memiliki logika yang jelas dan mudah dimengerti. Dengan menilai tren harga menggunakan perbedaan rata-rata bergerak ganda, itu termasuk dalam strategi mengejar tren yang khas. Strategi itu sendiri sangat sederhana dan mudah diterapkan, cocok untuk perdagangan jangka menengah, terutama bagi pemula untuk belajar. Tetapi ada juga risiko tertentu dengan strategi yang perlu dikurangi melalui optimasi. Dengan penyesuaian parameter yang tepat dan kontrol 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 banyak