Strategi perdagangan kombinasi Double Moving Average dan MACD

Penulis:ChaoZhang, Tanggal: 2024-02-29 11:31:48
Tag:

img

Gambaran umum

Strategi perdagangan kombinasi rata-rata bergerak ganda dan MACD adalah strategi perdagangan kuantitatif yang memanfaatkan rata-rata bergerak dan indikator momentum untuk generasi dan validasi sinyal perdagangan. Dengan menggabungkan kemampuan mengikuti tren rata-rata bergerak dan karakteristik momentum MACD, strategi ini dapat secara efektif menangkap kontur tren pasar melalui penetapan kriteria masuk dan keluar yang ketat, sambil menghindari risiko rentang keuntungan yang sempit atau fluktuasi pasar yang dapat menyebabkan penurunan keuntungan atau bahkan kerugian.

Logika Strategi

Strategi ini menggunakan kombinasi dari rata-rata bergerak sederhana 20 periode (SMA) dan rata-rata bergerak eksponensial 5 periode (EMA). SMA 20 periode dapat meratakan fluktuasi pasar secara efektif dan menentukan tren harga jangka menengah hingga panjang, sementara EMA 5 periode memberikan bobot yang lebih tinggi pada harga baru-baru ini dan bereaksi secara sensitif terhadap perubahan harga jangka pendek. Sinyal beli dihasilkan ketika harga melintasi di atas garis 5 periode sementara di atas garis 20 periode, dan sinyal jual dihasilkan ketika harga melintasi di bawah garis 5 periode sementara di bawah garis 20 periode. Kombinasi rata-rata bergerak ganda seperti itu memastikan sinyal perdagangan mengikuti tren utama sambil meningkatkan sensitivitas dan ketepatan waktu sinyal melalui pengenalan rata-rata bergerak jangka pendek.

Setelah sinyal perdagangan dihasilkan, indikator MACD diperkenalkan untuk memvalidasi tren. Secara khusus, ketika sinyal beli dipicu, garis MACD DIFF perlu melihat gold cross dengan garis DEA yang dipertahankan selama beberapa periode untuk mengkonfirmasi tren kenaikan; sebaliknya, ketika sinyal jual dipicu, dead cross diikuti oleh tren penurunan selama beberapa periode perlu diamati. Ini menyaring perdagangan kebisingan dan menghindari posisi pembukaan sering selama konsolidasi pasar.

Akhirnya, tingkat stop-loss yang wajar ditetapkan untuk posisi panjang dan pendek. Garis stop-loss panjang ditetapkan di bawah titik terendah sejak masuk, sementara garis stop-loss pendek ditetapkan di atas titik tertinggi sejak masuk. Tingkat stop loss diperbarui secara dinamis dengan fluktuasi harga. Metode stop loss tersebut mengunci keuntungan sejauh mungkin dan mencegah kerugian yang tidak dapat diterima jika terjadi pembalikan pasar yang serius.

Analisis Keuntungan

  • Rata-rata bergerak ganda secara efektif mengidentifikasi arah perdagangan dan menghindari gangguan kebisingan pasar
  • Validasi MACD memastikan tren yang ditetapkan dan mencegah posisi terbuka sering selama konsolidasi
  • Strategi stop loss yang ketat mengunci keuntungan sejauh mungkin dan mengendalikan risiko pasar
  • Parameter yang dapat disesuaikan yang memungkinkan optimalisasi berdasarkan karakteristik pasar dan produk

Analisis Risiko

  • Pemilihan parameter MACD yang tidak tepat dapat melewatkan tren jangka pendek atau campur tangan terlalu sering
  • Parameter rata-rata bergerak perlu diuji untuk optimal per produk
  • Stop loss dapat ditembus di pasar dengan tren yang kuat yang menyebabkan kerugian tertentu

Parameter MACD dapat disesuaikan untuk kerja sama yang lebih baik. Juga, parameter periode rata-rata bergerak perlu dioptimalkan sesuai dengan karakteristik produk. Akhirnya, rentang stop loss dapat dilonggarkan secara wajar untuk memungkinkan pembebasan keuntungan penuh untuk pergerakan arah utama.

Arahan Optimasi

Optimalisasi lebih lanjut dapat dilakukan dalam arah berikut untuk strategi ini:

  1. Memperkenalkan algoritma rata-rata bergerak adaptif. kombinasi rata-rata bergerak periode dinamis secara otomatis beradaptasi dengan pasar tanpa perlu penyesuaian parameter manual.

  2. Mengintegrasikan model pembelajaran mesin Algoritma seperti pembelajaran mendalam dapat secara otomatis mengidentifikasi karakteristik pasar dari produk yang berbeda dan output pengaturan parameter optimal secara real time.

  3. Tambahkan filter tambahan. Indikator teknis lainnya dapat diperkenalkan di atas sinyal arus sebagai standar penilaian tambahan, seperti mengintegrasikan faktor volume.

  4. Optimalkan strategi stop loss. Teknik stop loss yang lebih cerdas seperti stop loss breakout dan stop loss pelacakan harus diteliti, untuk mendapatkan imbalan yang lebih besar sambil mengendalikan risiko.

Ringkasan

Strategi kombinasi rata-rata bergerak ganda dan MACD secara komprehensif mempertimbangkan aspek seperti tren, momentum, pengendalian risiko di luar batasan indikator teknis tunggal, dan dapat secara efektif meningkatkan stabilitas perdagangan kuantitatif. Strategi ini beradaptasi dengan baik dengan lingkungan pasar yang berbeda melalui penyesuaian parameter dan sangat layak diterapkan secara langsung dan terus dioptimalkan. Sementara itu, masih ada ruang yang cukup dalam menggabungkan teknik yang lebih cerdas untuk optimasi otomatis dan memaksimalkan efektivitas strategi.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Band Strategy with Early Signal (v5)", overlay=true)

// Inputs
length = 20
mult = 1.5
src = close
riskRewardRatio = input(3.0, title="Risk-Reward Ratio")

// Calculating Bollinger Bands
basis = ta.ema(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev

// Plotting Bollinger Bands
plot(upper, "Upper Band", color=color.red)
plot(lower, "Lower Band", color=color.green)

// Tracking Two Candles Ago Crossing Bollinger Bands
var float twoCandlesAgoUpperCrossLow = na
var float twoCandlesAgoLowerCrossHigh = na

if (close[2] > upper[2])
    twoCandlesAgoUpperCrossLow := low[2]
if (close[2] < lower[2])
    twoCandlesAgoLowerCrossHigh := high[2]

// Entry Conditions
longCondition = (not na(twoCandlesAgoLowerCrossHigh)) and (high > twoCandlesAgoLowerCrossHigh)
shortCondition = (not na(twoCandlesAgoUpperCrossLow)) and (low < twoCandlesAgoUpperCrossLow)

// Plotting Entry Points
plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Strategy Execution
if (longCondition)
    stopLoss = low - (high - low) * 0.05
    takeProfit = close + (close - stopLoss) * riskRewardRatio
    strategy.entry("Buy", strategy.long)
    strategy.exit("Exit Buy", "Buy", stop=stopLoss, limit=takeProfit)

if (shortCondition)
    stopLoss = high + (high - low) * 0.05
    takeProfit = close - (stopLoss - close) * riskRewardRatio
    strategy.entry("Sell", strategy.short)
    strategy.exit("Exit Sell", "Sell", stop=stopLoss, limit=takeProfit)


Lebih banyak