Strategi perdagangan berdasarkan persilangan rata-rata pergerakan


Tanggal Pembuatan: 2024-01-24 14:59:44 Akhirnya memodifikasi: 2024-01-24 14:59:44
menyalin: 0 Jumlah klik: 528
1
fokus pada
1617
Pengikut

Strategi perdagangan berdasarkan persilangan rata-rata pergerakan

Ringkasan

Strategi perdagangan lintas rata-rata bergerak adalah strategi perdagangan kuantitatif yang lebih umum. Strategi ini menghasilkan sinyal perdagangan dengan menghitung rata-rata bergerak dari periode yang berbeda dan berdasarkan persimpangan mereka. Secara khusus, adalah menghitung rata-rata bergerak indeks dari 4 siklus, 8 siklus, dan 20 siklus (EMA), melakukan over saat melewati EMA jangka panjang pada EMA jangka pendek; melakukan over saat EMA jangka pendek melanggar EMA jangka panjang.

Prinsip Strategi

Logika inti dari strategi ini adalah:

  1. Hitung garis EMA 4 siklus, 8 siklus, dan 20 siklus.
  2. Untuk menilai hubungan antara garis EMA 4 siklus dan garis EMA 8 siklus:
    1. Ketika 4 siklus EMA garis melewati 8 siklus EMA garis, menunjukkan bahwa harga bergerak kuat, termasuk sinyal multihead.
    2. Ketika 4 siklus EMA di bawah 8 siklus EMA, menunjukkan bahwa harga bergerak lemah, termasuk sinyal kosong.
  3. Ini juga menentukan arah garis EMA 20 periode:
    1. Jika 20 siklus EMA naik, Enter Long.
    2. Jika EMA 20 turun, Enter Short
  4. Ketika 4 siklus EMA garis dan 8 siklus EMA garis hubungan terjadi terbalik, Prepare Exit。
  5. Ketika 20 siklus EMA garis arah terjadi pembalikan, Exit Now.

Dengan metode ini, kami menggunakan persilangan antara garis rata-rata berkala yang berbeda untuk menilai sinyal pasar, dan menggunakan arah garis rata-rata berkala terpanjang untuk memfilter sinyal palsu dan membangun strategi perdagangan yang stabil.

Keunggulan Strategis

Strategi ini memiliki beberapa keuntungan utama:

  1. Strategi logisnya sederhana dan jelas, mudah dipahami dan diterapkan.
  2. Penggunaan filter kondisi ganda dapat mengurangi sinyal palsu.
  3. Meningkatkan EMA 20-siklus, dapat mengidentifikasi tren besar, meningkatkan stabilitas.
  4. Parameter yang dapat disesuaikan untuk menyesuaikan frekuensi transaksi.
  5. Mudah digabungkan dengan indikator atau model lain untuk membangun strategi komposit.

Risiko Strategis

Strategi ini juga memiliki beberapa risiko:

  1. Strategi garis tengah ganda mudah menghasilkan sinyal palsu.
  2. Siklus tetap tidak dapat beradaptasi dengan perubahan pasar.
  3. “Saya tidak tahu apa yang terjadi di Indonesia.

Solusi utama adalah:

  1. Mempersingkat periode kepemilikan dengan tepat, dan menghentikan kerugian tepat waktu.
  2. Parameter optimasi dinamis, menyesuaikan siklus rata-rata linear.
  3. Strategi komposit yang dibuat dengan menggunakan indikator atau model lain.

Optimasi Strategi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Siklus optimasi: menentukan kombinasi siklus MA yang optimal berdasarkan varietas yang berbeda Optimalisasi Stop Loss: mengatur stop loss yang masuk akal, mengendalikan kerugian tunggal Optimasi parameter: mengoptimalkan parameter secara dinamis menggunakan algoritma genetik, rantai Markov, dan lain-lain

  2. Integrasi Model: Integrasi dengan model pembelajaran mendalam seperti LSTM, RNN, dan lain-lain untuk mendapatkan lebih banyak Alpha

Optimasi portofolio: portofolio strategi dengan indikator lainnya, untuk membangun portofolio strategi

Meringkaskan

Strategi crossover rata-rata bergerak secara keseluruhan adalah strategi perdagangan kuantitatif yang lebih klasik dan umum digunakan. Strategi ini logisnya sederhana, mudah dipahami dan diimplementasikan, dan memiliki stabilitas tertentu. Namun, ada juga beberapa masalah, seperti menghasilkan sinyal palsu, tidak dapat beradaptasi dengan perubahan pasar, dll.

Kode Sumber Strategi
/*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=3
//future strategy
//strategy(title = "stub", default_qty_type = strategy.fixed, default_qty_value = 1,  overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2.05)
//stock strategy
strategy(title = "stub",   overlay = true)
//forex strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100,  overlay = true)
//crypto strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100,  overlay = true, commission_type=strategy.commission.percent,commission_value=.0,default_qty_value=10000)


testStartYear = input(1900, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testEndYear = input(2018, "Backtest Start Year")
testEndMonth = input(12, "Backtest Start Month")
testEndDay = input(1, "Backtest Start Day")
testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0)


testPeriod() => true

ema1 = ema(close,4)
ema2 = ema(close,8)
ema3 = ema(close,20)

go_long = ema1[0] > ema2[0] and ema3[0] > ema3[1]
exit_long = ema1[0] < ema2[0] or ema3[0] < ema3[1]

go_short = ema1[0] < ema2[0] and ema3[0] < ema3[1]
exit_short = ema1[0] > ema2[0] or ema3[0] > ema3[1]

 
if testPeriod()
    strategy.entry("simpleBuy", strategy.long, when=go_long)
    strategy.exit("simpleBuy", "simpleSell",when=exit_long)
    
    strategy.entry("simpleSell", strategy.short,when=go_short)
    strategy.exit("simpleSell", "simpleSell",when=exit_short)