Strategi perdagangan kuantitatif berdasarkan SMA dan EMA

Penulis:ChaoZhang, Tanggal: 2023-12-12 12:31:25
Tag:

img

I. Ringkasan Strategi

Strategi ini disebut Quantitative Trading Strategy Based on SMA and EMA. Ide utamanya adalah menggabungkan garis SMA dan garis EMA dengan parameter yang berbeda untuk membangun sinyal perdagangan.

II. Prinsip Strategi

  1. Menghitung SMA9, SMA50, SMA180 dari harga penutupan dan EMA20.

  2. Menentukan sinyal beli dan jual berdasarkan hubungan antara harga tutup dan dukungan sup dan resistensi res.

  3. Ketika membeli sinyal pemicu, melaksanakan strategi posisi panjang; ketika menjual sinyal pemicu, menutup posisi panjang.

  4. Ketika menjual sinyal pemicu, melaksanakan strategi posisi pendek; ketika membeli sinyal pemicu, menutup posisi pendek.

III. Analisis Keuntungan

  1. Menggabungkan beberapa moving average untuk membentuk sinyal perdagangan meningkatkan akurasi dan stabilitas.

  2. Menghitung dukungan dan resistensi dinamis membuat sinyal perdagangan lebih dapat diandalkan.

  3. Mengadopsi rata-rata bergerak volatilitas tinggi, menengah dan rendah mempertimbangkan tren jangka panjang dan terobosan jangka pendek, meningkatkan profitabilitas strategi.

  4. Mendukung posisi panjang dan pendek dapat menghasilkan keuntungan di pasar tren dan samping.

IV. Analisis Risiko

  1. SMA memiliki efek lag, yang dapat menunda sinyal beli dan jual dan mempengaruhi kinerja strategi.

  2. Tidak ada mekanisme stop loss, kerugian dapat berkembang.

  3. Data backtesting yang tidak cukup, parameter harus disesuaikan sesuai dengan pasar.

  4. Bergantung pada indikator teknis, tidak mampu mengatasi peristiwa angsa hitam.

Solusi:

  1. Sesuaikan periode SMA dengan benar.
  2. Tetapkan stop loss yang wajar.
  3. Meningkatkan ukuran sampel untuk backtesting, menyesuaikan parameter.
  4. Meningkatkan mekanisme pengendalian risiko.

V. Optimalisasi

  1. Tambahkan stop loss berdasarkan volatilitas untuk mengendalikan kerugian tunggal.

  2. Tambahkan model pembelajaran mesin untuk membantu penilaian tren dan generasi sinyal.

  3. Tambahkan analisis harga kunci untuk meningkatkan akurasi support dan resistance.

  4. Uji kombinasi parameter yang berbeda untuk menemukan parameter yang lebih baik.

VI. Ringkasan

Strategi ini menggabungkan indikator teknis SMA dan EMA untuk membangun sinyal perdagangan, dan menghitung dukungan dan resistensi dinamis untuk membentuk logika beli dan jual yang lengkap. Keuntungannya adalah parameter yang fleksibel, perdagangan dua arah, dapat beradaptasi dengan pasar yang berbeda, tetapi juga menghadapi masalah seperti ketinggalan dan stop loss yang tidak memadai. Optimasi masa depan dapat dilakukan dalam aspek seperti stop loss, trend penilaian, analisis harga kunci untuk meningkatkan stabilitas dan profitabilitas.

]


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

//@version=4
strategy(title="StrategySMA 9/50/180 | EMA 20 | BUY/SELL", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

//SMA and EMA code
smaInput1 = input(9, title="SMA1")
smaInput2 = input(50, title="SMA2")
smaInput3 = input(180, title="SMA3")
emaInput1 = input(20, title="EMA1")
sma1 = sma(close, smaInput1)
sma2 = sma(close, smaInput2)
sma3 = sma(close, smaInput3)
EMA1 = ema(close, emaInput1)
plot(sma1, color= color.red , title="SMA1")
plot(sma2, color = color.blue, title="SMA2")
plot(sma3, color= color.white, title="SMA3")
plot(EMA1, color = color.yellow, title="EMA1")

no=input(3,title="BUY/SELL Swing")
Barcolor=input(false,title="BUY/SELL Bar Color")
Bgcolor=input(false,title="BUY/SELL Background Color")
res=highest(high,no)
sup=lowest(low,no)
avd=iff(close>res[1],1,iff(close<sup[1],-1,0))
avn=valuewhen(avd!=0,avd,0)
tsl=iff(avn==1,sup,res)

// Buy/sell signals
BuySignal = crossover(close, tsl)
SellSignal = crossunder(close, tsl)

// Enter long position
strategy.entry("Buy", strategy.long, when=BuySignal)

// Exit long position
strategy.exit("Sell", "Buy", when=SellSignal)

// Enter short position
strategy.entry("Sell", strategy.short, when=SellSignal)

// Exit short position
strategy.exit("Buy", "Sell", when=BuySignal)

colr = close>=tsl ? color.green : close<=tsl ? color.red : na
plot(tsl, color=colr)


Lebih banyak