Sumber daya yang dimuat... Pemuatan...

Zero Lag MACD Dual Crossover Trading Strategy - Trading Frekuensi Tinggi Berdasarkan Penangkapan Tren Jangka Pendek

Penulis:ChaoZhang, Tanggal: 2024-05-24 18:14:37
Tag:MACDEMASMA

img

Gambaran umum

Strategi ini didasarkan pada versi MACD (Moving Average Convergence Divergence) yang tidak ada lagnya, yang menangkap tren jangka pendek dengan cepat merespons perubahan harga, memungkinkan perdagangan frekuensi tinggi. Strategi ini menggunakan dua rata-rata bergerak dengan periode yang berbeda (garis cepat dan lambat) untuk membangun indikator MACD dan memperkenalkan algoritma tanpa lag untuk menghilangkan keterlambatan antara indikator dan harga, meningkatkan ketepatan waktu sinyal. Selain itu, persilangan garis sinyal dan garis MACD digunakan sebagai sinyal beli dan jual, dan peringatan diatur untuk membantu pedagang memanfaatkan peluang perdagangan secara tepat waktu.

Prinsip Strategi

  1. Menghitung EMA (Exponential Moving Average) atau SMA (Simple Moving Average) dari garis cepat (default 12 periode) dan garis lambat (default 26 periode).
  2. Gunakan algoritma zero-lag untuk meluruskan garis cepat dan lambat, menghilangkan keterlambatan antara indikator dan harga.
  3. Garis MACD terbentuk oleh perbedaan antara garis cepat nol-lag dan garis lambat nol-lag.
  4. Garis sinyal dibentuk oleh EMA (default 9 periode) atau SMA dari garis MACD.
  5. Histogram MACD terbentuk oleh perbedaan antara garis MACD dan garis sinyal, dengan warna biru mewakili nilai positif dan merah mewakili nilai negatif.
  6. Ketika garis MACD melintasi garis sinyal dari bawah dan titik persimpangan berada di bawah sumbu nol, sinyal beli (titik biru) dihasilkan.
  7. Ketika garis MACD melintasi garis sinyal dari atas dan titik persimpangan berada di atas sumbu nol, sinyal jual (titik merah) dihasilkan.
  8. Strategi secara otomatis menempatkan pesanan berdasarkan sinyal beli dan jual dan memicu peringatan yang sesuai.

Analisis Keuntungan

  1. Algoritma zero-lag secara efektif menghilangkan keterlambatan antara indikator dan harga, meningkatkan ketepatan waktu dan akurasi sinyal.
  2. Desain rata-rata bergerak ganda dapat lebih menangkap tren pasar dan beradaptasi dengan lingkungan pasar yang berbeda.
  3. Histogram MACD secara intuitif mencerminkan perbandingan kekuatan bullish dan bearish, membantu dalam keputusan perdagangan.
  4. Fungsi penempatan pesanan dan peringatan otomatis memudahkan para pedagang untuk memanfaatkan peluang perdagangan secara tepat waktu, meningkatkan efisiensi perdagangan.

Analisis Risiko

  1. Di pasar yang volatile, sinyal crossover yang sering dapat menyebabkan overtrading dan kerugian.
  2. Pengaturan parameter yang tidak benar dapat menyebabkan distorsi sinyal dan mempengaruhi kinerja strategi.
  3. Strategi ini bergantung pada data historis untuk perhitungan dan memiliki kemampuan beradaptasi yang buruk terhadap peristiwa mendadak dan peristiwa angsa hitam.

Arah Optimalisasi

  1. Memperkenalkan indikator konfirmasi tren, seperti ADX, untuk menyaring sinyal palsu di pasar yang tidak stabil.
  2. Mengoptimalkan parameter untuk menemukan kombinasi terbaik dari periode jalur cepat dan lambat dan periode jalur sinyal, meningkatkan stabilitas strategi.
  3. Menggabungkan indikator teknis atau faktor fundamental lainnya untuk membangun model multi-faktor, meningkatkan pengembalian strategi yang disesuaikan dengan risiko.
  4. Memperkenalkan mekanisme stop loss dan take profit untuk mengendalikan risiko perdagangan tunggal.

Ringkasan

Strategi perdagangan MACD Dual Crossover Zero Lag mencapai perdagangan frekuensi tinggi dengan cepat merespons perubahan harga dan menangkap tren jangka pendek. Algoritma nol-lag dan desain rata-rata bergerak ganda meningkatkan ketepatan waktu dan akurasi sinyal. Strategi ini memiliki keuntungan tertentu, seperti sinyal intuitif dan operasi yang nyaman, tetapi juga menghadapi risiko seperti overtrading dan sensitivitas parameter.


/*backtest
start: 2024-04-23 00:00:00
end: 2024-05-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("BNM INTRADAY SETUP MACD 3M - Version 1.2", shorttitle="Zero Lag MACD Enhanced 1.2")
source = close

fastLength = input(12, title="Fast MM period", minval=1)
slowLength = input(26,title="Slow MM period", minval=1)
signalLength =input(9,title="Signal MM period", minval=1)
useEma = input(true, title="Use EMA (otherwise SMA)")
useOldAlgo = input(false, title="Use Glaz algo (otherwise 'real' original zero lag)")
showDots = input(true, title="Show symbols to indicate crossing")
dotsDistance = input(1.5, title="Symbols distance factor", minval=0.1)

// Fast line
ma1 = useEma ? ema(source, fastLength) : sma(source, fastLength) 
ma2 = useEma ? ema(ma1, fastLength) : sma(ma1, fastLength) 
zerolagEMA = ((2 * ma1) - ma2)

// Slow line
mas1 = useEma ? ema(source, slowLength) : sma(source, slowLength)
mas2 = useEma ? ema(mas1, slowLength) : sma(mas1, slowLength)
zerolagslowMA = ((2 * mas1) - mas2)

// MACD line
ZeroLagMACD = zerolagEMA - zerolagslowMA 

// Signal line
emasig1 = ema(ZeroLagMACD, signalLength)
emasig2 = ema(emasig1, signalLength)
signal = useOldAlgo ? sma(ZeroLagMACD, signalLength) : (2 * emasig1) - emasig2

hist = ZeroLagMACD - signal

upHist = (hist > 0) ? hist : 0
downHist = (hist <= 0) ? hist : 0

p1 = plot(upHist, color=color.blue, transp=40, style=plot.style_columns, title='Positive delta')
p2 = plot(downHist, color=color.red, transp=40, style=plot.style_columns, title='Negative delta') 

zeroLine = plot(ZeroLagMACD, color=color.red, transp=0, linewidth=2, title='MACD line')
signalLine = plot(signal, color=color.blue, transp=0, linewidth=2, title='Signal')

ribbonDiff = hist > 0 ? color.blue : color.red
fill(zeroLine, signalLine, color=ribbonDiff)

circleYPosition = signal * dotsDistance
ribbonDiff2 = hist > 0 ? color.blue : color.red

// Generate dots for cross signals
plot(showDots and cross(ZeroLagMACD, signal) ? circleYPosition : na, style=plot.style_circles, linewidth=4, color=ribbonDiff2, title='Dots')

// Alerts for buy and sell signals
buySignal = cross(ZeroLagMACD, signal) and (ribbonDiff2 == color.blue) and (ZeroLagMACD < 0)
sellSignal = cross(ZeroLagMACD, signal) and (ribbonDiff2 == color.red) and (ZeroLagMACD > 0)

// Use 'strategy.entry' for placing orders in strategy context
if (buySignal)
    strategy.entry("Buy", strategy.long)
    alert("Buy Signal: Blue dot below zero line", alert.freq_once_per_bar_close)

if (sellSignal)
    strategy.entry("Sell", strategy.short)
    alert("Sell Signal: Red dot above zero line", alert.freq_once_per_bar_close)


Berkaitan

Lebih banyak