Strategi perdagangan lintas rata-rata bergerak

Penulis:ChaoZhang, Tanggal: 2024-01-24 11:48:29
Tag:

img

Gambaran umum

Strategi perdagangan crossover rata-rata bergerak menghasilkan sinyal beli dan jual dengan menghitung persilangan EMA cepat (fastLength) dan EMA lambat (slowLength). Ketika garis cepat melintasi di atas garis lambat, sinyal beli dihasilkan. Ketika garis cepat melintasi di bawah garis lambat, sinyal jual dihasilkan. Strategi ini sederhana dan praktis, cocok untuk perdagangan jangka menengah dan pendek.

Prinsip Strategi

Strategi ini menggunakan dua garis rata-rata bergerak, garis cepat dan garis lambat. Parameter garis cepat EMAfastLength default ke garis 9 hari, dan parameter garis lambat EMAslowLength default ke garis 26 hari. Hitung persilangan kedua garis EMA untuk menentukan sinyal beli dan jual pasar:

  1. Ketika garis cepat pecah ke atas melalui garis lambat, sinyal beli enterLong() dihasilkan.
  2. Ketika garis cepat pecah ke bawah melalui garis lambat, sinyal jual enterShort ((() dihasilkan.

Sinyal perdagangan khusus dan aturan strategi adalah sebagai berikut:

  1. Ketika garis cepat melintasi di atas garis lambat, pergi panjang; ketika garis cepat melintasi di bawah garis lambat, posisi dekat.
  2. Take profit for long adalah Targetpercentage (default 0,15%) dari harga, yaitu untuk menutup posisi ketika keuntungan mencapai 15%.
  3. Stop loss untuk panjang adalah StopLosspercentage (default 0,20%) dari harga, yang adalah untuk menutup posisi ketika kerugian mencapai 20%.
  4. Posisi pendek bekerja dengan cara yang sama.

Jadi strategi ini diperdagangkan berdasarkan golden cross dan dead cross dari dua garis rata-rata bergerak.

Analisis Keuntungan

  1. Strategi ini sederhana dan mudah dipahami.
  2. Aplikasi rata-rata bergerak menyaring beberapa kebisingan pasar dan membuat sinyal perdagangan lebih tepat.
  3. Aturan trading jelas dengan mengambil keuntungan dan stop loss yang pasti.
  4. Parameter uji dapat disesuaikan secara fleksibel untuk menyesuaikan diri dengan kondisi pasar yang berbeda.

Analisis Risiko

  1. Rata-rata bergerak sendiri memiliki keterlambatan, yang dapat melewatkan perubahan harga jangka pendek, yang mengarah pada titik beli dan jual yang tidak akurat.
  2. Parameter rata-rata bergerak siklus yang berbeda dapat menghasilkan sinyal palsu dan membawa kerugian.
  3. Bergantung hanya pada beberapa parameter, strategi ini memiliki persyaratan optimasi hiperparameter yang tinggi untuk menemukan kombinasi parameter terbaik.
  4. Dalam beberapa tren utama tertentu, strategi ini cenderung gagal.

Untuk mengatasi risiko, parameter yang dapat dioptimalkan termasuk siklus rata-rata bergerak, variasi perdagangan, rasio profit taking dan stop loss, dll. Pengujian ekstensif diperlukan untuk mengurangi risiko.

Arahan Optimasi

Ide crossover rata-rata bergerak dari strategi ini sederhana dan praktis.

  1. Mengubah jenis rata-rata bergerak: Selain EMA, uji juga SMA, LWMA, HMA dan jenis lainnya.
  2. Tambahkan indikator lain: Gabungkan dengan RSI, MACD dan indikator lainnya.
  3. Optimasi parameter: Otomatis mengoptimalkan dua parameter siklus EMA untuk menemukan kombinasi parameter terbaik.
  4. Pemfilteran tren: Berdagang secara selektif berdasarkan situasi tren utama.
  5. Pengoptimalan pengambilan keuntungan dan stop loss: Perbaiki pengambilan keuntungan persentase tetap dan stop loss untuk membuatnya lebih praktis.

Melalui uji optimalisasi ini, efek praktis dan stabilitas strategi dapat sangat ditingkatkan.

Ringkasan

Ide strategi crossover moving average sederhana, tetapi penerapan praktis membutuhkan optimasi terus menerus. Strategi ini memberikan logika untuk menghasilkan sinyal perdagangan dan aturan dasar perdagangan. Atas dasar ini, dapat sangat dioptimalkan untuk menjadi strategi kuantitatif yang dapat digunakan. Aplikasi moving average juga memberi kita ide untuk strategi, berdasarkan yang dapat kita inovasi dan memperbaiki.


/*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=4
strategy("EMA Cross by MarketAlpha", overlay=true)
EMAfastLength = input(defval = 9, minval = 2)
EMAslowLength = input(defval = 26, minval = 2)
Targetpercentage = input(defval = 0.15, title = "Profit Target in percentage", minval = 0.05)
StopLosspercentage = input(defval = 0.20, title = "Stop Loss in percentage", minval = 0.05)
profitpoints = close*Targetpercentage
stoplosspoints = close*StopLosspercentage
price = close

FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2000)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

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"

emafast = ema(price, EMAfastLength)
emaslow = sma(price, EMAslowLength)
plot(emafast,color=green)
plot(emaslow,color=red)

enterLong() => crossover(emafast, emaslow)
strategy.entry(id = "MarketAlpha Long", long = true, when = window() and enterLong())
strategy.exit("Exit Long", from_entry = "MarketAlpha Long", profit = profitpoints,loss = stoplosspoints)

enterShort() => crossunder(emafast, emaslow)
strategy.entry(id = "MarketAlpha Short", long = false, when = window() and enterShort())
strategy.exit("Exit Short", from_entry = "MarketAlpha Short", profit = profitpoints,loss = stoplosspoints)



Lebih banyak