Strategi Crossover Rata-rata Bergerak

Penulis:ChaoZhang, Tanggal: 2023-09-21 10:28:27
Tag:

Gambaran umum

Ini adalah strategi perdagangan crossover rata-rata bergerak yang khas. Ini menggunakan titik crossover rata-rata bergerak cepat dan lambat sebagai sinyal perdagangan. Ketika rata-rata bergerak cepat melintasi di atas rata-rata bergerak lambat dari bawah, itu dianggap sebagai sinyal beli. Ketika rata-rata bergerak cepat melintasi di bawah rata-rata bergerak lambat dari atas, itu dianggap sebagai sinyal jual. Strategi ini menggabungkan dua rata-rata bergerak dan dapat secara efektif menyaring kebisingan pasar dan mengidentifikasi tren.

Prinsip Strategi

Langkah-langkah utama dari strategi ini adalah:

  1. Atur periode rata-rata bergerak cepat fastMA dan periode rata-rata bergerak lambat slowMA.

  2. Hitung rata-rata bergerak cepat dan rata-rata bergerak lambat berdasarkan jenis input Type. Type=1 adalah rata-rata bergerak sederhana, Type=2 adalah rata-rata bergerak eksponensial.

  3. Set backtest rentang waktu awal dan akhir.

  4. Mendefinisikan fungsi crossover: ketika cepat melintasi di atas lambat, menghasilkan sinyal beli; ketika cepat melintasi di bawah lambat, menghasilkan sinyal jual.

  5. Ketika fungsi crossover diaktifkan, jika dalam rentang waktu backtest, keluarkan perintah buka panjang atau tutup pendek.

  6. Ketika jendela backtest berakhir atau fungsi crossover melintasi di bawah, mengeluarkan perintah menutup panjang.

  7. Gambarkan rata-rata bergerak cepat dan rata-rata bergerak lambat.

Strategi ini menggunakan persilangan rata-rata bergerak cepat dan lambat untuk menentukan tren dalam periode kepemilikan dan menghasilkan sinyal perdagangan sesuai.

Analisis Keuntungan

Keuntungan dari strategi ini:

  1. Rata-rata bergerak efektif dalam menentukan tren dan menyaring fluktuasi acak.

  2. Kombinasi rata-rata bergerak cepat dan lambat dapat mengidentifikasi perubahan tren.

  3. Parameter rata-rata bergerak dapat disesuaikan dengan tren periode yang berbeda.

  4. Pilihan yang fleksibel antara rata-rata bergerak sederhana dan eksponensial.

  5. Fungsi backtest memungkinkan pengujian dan pengoptimalan parameter strategi.

  6. Logika yang sederhana dan jelas, mudah dipahami dan diterapkan.

  7. Menggambar grafik rata-rata bergerak memungkinkan penentuan visual tren dan efek.

Analisis Risiko

Beberapa risiko dari strategi ini:

  1. Dapat menghasilkan sinyal palsu selama periode jangkauan terbatas.

  2. Rata-rata bergerak memiliki efek keterlambatan, mungkin melewatkan titik balik.

  3. Bergantung hanya pada crossover rata-rata bergerak, tidak ada indikator atau filter lainnya.

  4. Tidak mempertimbangkan biaya perdagangan.

  5. Tidak ada strategi stop loss.

  6. Pengaturan parameter yang tidak wajar dapat mempengaruhi kinerja strategi.

  7. Pemilihan interval waktu backtest yang tidak tepat dapat menyebabkan overfit.

Arahan Optimasi

Strategi dapat dioptimalkan dalam aspek berikut:

  1. Tambahkan indikator lain seperti MACD, RSI untuk mengkonfirmasi sinyal dan meningkatkan akurasi.

  2. Tambahkan strategi stop loss untuk mengendalikan kerugian tunggal.

  3. Mengoptimalkan parameter rata-rata bergerak untuk periode yang berbeda.

  4. Tambahkan ukuran posisi berdasarkan kondisi pasar.

  5. Pertimbangkan biaya perdagangan, sesuaikan titik masuk dan keluar.

  6. Uji jangka waktu yang lebih lama untuk menghindari overfitting.

  7. Terus-menerus mengoptimalkan parameter menggunakan analisis berjalan ke depan.

Ringkasan

Strategi crossover rata-rata bergerak adalah strategi yang sederhana dan praktis mengikuti tren. Ini dapat menyaring fluktuasi acak dan mengidentifikasi arah tren. Tapi juga memiliki beberapa masalah seperti efek lag, dan harus dikombinasikan dengan indikator lain. Optimasi dan pengujian terus menerus dapat meningkatkan kinerja strategi dan membuatnya lebih dapat diandalkan untuk perdagangan langsung. Secara keseluruhan, strategi ini cocok untuk investor dengan persyaratan yang relatif rendah untuk penentuan tren.


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

//@version=2
// strategy("MavCrossover v2", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

// Revision:        1
// Author:          @ToS_MavericK

// === INPUT SMA ===
fastMA  = input(defval = 13,  title = "FastMA", minval = 1, step = 1)
slowMA  = input(defval = 144,  title = "SlowMA", minval = 1, step = 1)
Type    = input(defval = 1,  title = "Type (1 = SMA, 2 = EMA)", minval = 1, maxval = 2, step = 1)
SlowMAIsFactor = input(false)

slowMA := SlowMAIsFactor == true ? round(fastMA * slowMA) : slowMA

// === INPUT BACKTEST RANGE ===
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear  = input(defval = 2018, title = "From Year", minval = 2012)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear    = input(defval = 2020, title = "To Year", minval = 2012)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

// === MA SETUP ===
fast = Type == 1 ? sma(close, fastMA) : ema(close, fastMA)
slow = Type == 1 ? sma(close, slowMA) : ema(close, slowMA)

// === EXECUTION ===
strategy.entry("L", strategy.long, when = crossover(fast, slow) and window())   // buy long when "within window of time" AND crossover
strategy.close("L", when = crossunder(fast, slow) or time > finish)             // sell long when window ends OR crossunder         

plot(fast, title = 'FastMA', color = yellow, linewidth = 2, style = line)  // plot FastMA
plot(slow, title = 'SlowMA', color = aqua, linewidth = 2, style = line)    // plot SlowMA

Lebih banyak