Sumber daya yang dimuat... Pemuatan...

Strategi Crossover Rata-rata Bergerak Ganda

Penulis:ChaoZhang, Tanggal: 2023-09-17 22:35:07
Tag:

Strategi ini menghasilkan sinyal perdagangan berdasarkan persilangan dua rata-rata bergerak dengan periode yang berbeda.

Logika Strategi

Strategi ini memungkinkan pengguna untuk memilih jenis dan panjang rata-rata bergerak. Jenis termasuk SMA, EMA, VWMA, dll. Panjang menentukan periode rata-rata bergerak.

Dua rata-rata bergerak dihitung berdasarkan pilihan pengguna. Jika garis yang lebih cepat melintasi di atas garis yang lebih lambat, sebuah salib emas terbentuk dan sinyal beli dihasilkan. Jika garis yang lebih cepat melintasi di bawah garis yang lebih lambat, sebuah salib kematian terbentuk dan sinyal jual dihasilkan.

Ketika harga rata-rata jangka pendek di atas harga rata-rata jangka panjang, itu dianggap sebagai tren naik dan posisi panjang harus diambil.

Analisis Keuntungan

  • Logika strategi sederhana dan jelas, mudah dimengerti dan diterapkan.
  • Rata-rata bergerak dapat secara efektif menyaring kebisingan pasar dan mengidentifikasi tren.
  • Jenis MA dan parameter dapat dipilih secara fleksibel untuk menyesuaikan dengan produk dan kerangka waktu yang berbeda.
  • Mudah dioptimalkan dengan menggabungkan berbagai indikator.

Analisis Risiko

  • Dapat menghasilkan beberapa sinyal palsu ketika pasar berkisar.
  • Pemilihan parameter yang tidak tepat dapat menyebabkan kinerja strategi yang buruk.
  • Sinyal tertinggal, tidak bisa menangkap titik balik tepat waktu.
  • Terpapar kejutan harga tiba-tiba.

Risiko dapat dikelola dengan mengoptimalkan parameter, menggabungkan indikator lain untuk generasi sinyal, menerapkan stop loss/take profit, dll.

Arahan Optimasi

  • Uji berbagai jenis dan panjang MA untuk menemukan parameter optimal.
  • Tambahkan indikator lain untuk penyaringan sinyal, misalnya volume, indikator volatilitas.
  • Tambahkan logika stop loss/take profit untuk mengurangi drawdown.
  • Sertakan evaluasi tren untuk menghindari kondisi pasar yang tidak cocok.
  • Mengoptimalkan manajemen uang seperti ukuran posisi, penganggaran risiko.

Kesimpulan

Strategi ini memiliki logika yang sederhana dan jelas untuk menghasilkan sinyal dengan crossover MAs ganda. Ini memungkinkan penyesuaian parameter yang fleksibel dan kombinasi dengan strategi lain untuk optimasi, tetapi risiko pasar yang berbeda harus dipantau dan manajemen uang sangat penting. Secara keseluruhan ini adalah strategi yang layak dipertimbangkan.


/*backtest
start: 2023-09-09 00:00:00
end: 2023-09-13 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = "Noro's MAs Tests", shorttitle = "MAs tests", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)


len = input(30, defval = 30, minval = 2, maxval = 1000, title = "MA length")
type = input(1, defval = 1, minval = 1, maxval = 7, title = "Type")
src = input(close, defval = close, title = "Source")

//DEMA
dema = 2 * ema(src, len) - ema(ema(close, len), len)

//TEMA
xPrice = close
xEMA1 = ema(src, len)
xEMA2 = ema(xEMA1, len)
xEMA3 = ema(xEMA2, len)
tema = 3 * xEMA1 - 3 * xEMA2 + xEMA3

//KAMA
xvnoise = abs(src - src[1])
nfastend = 0.20
nslowend = 0.05
nsignal = abs(src - src[len])
nnoise = sum(xvnoise, len)
nefratio = iff(nnoise != 0, nsignal / nnoise, 0)
nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2) 
kama = nz(kama[1]) + nsmooth * (src - nz(kama[1]))

//PriceChannel
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

ma = type == 1 ? sma(src, len) : type == 2 ? ema(src, len) : type == 3 ? vwma(src, len) : type == 4 ? dema : type == 5 ? tema : type == 6 ? kama : type == 7 ? center : 0

plot(ma, color = blue, linewidth = 3, transp = 0)

trend = low > ma ? 1 : high < ma ? -1 : trend[1]

longCondition = trend == 1 and trend[1] == -1
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = trend == -1 and trend[1] == 1
if (shortCondition)
    strategy.entry("Short", strategy.short)
    
    
    
    

Lebih banyak