Sumber dimuat naik... memuat...

Strategi Dagangan Ganda Crossover Zero Lag MACD - Dagangan Frekuensi Tinggi Berdasarkan Penangkapan Trend Jangka Pendek

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

img

Ringkasan

Strategi ini adalah berdasarkan kepada versi penghujung penghujung penunjuk MACD (Moving Average Convergence Divergence), yang menangkap trend jangka pendek dengan cepat bertindak balas terhadap perubahan harga, membolehkan perdagangan frekuensi tinggi. Strategi ini menggunakan dua purata bergerak dengan tempoh yang berbeza (garis cepat dan perlahan) untuk membina penunjuk MACD dan memperkenalkan algoritma penghujung penghujung untuk menghapuskan kelewatan antara penunjuk dan harga, meningkatkan ketepatan masa isyarat.

Prinsip Strategi

  1. Mengira EMA (Exponential Moving Average) atau SMA (Simple Moving Average) daripada garis pantas (default 12 tempoh) dan garis perlahan (default 26 tempoh).
  2. Gunakan algoritma zero-lag untuk meluruskan garis cepat dan perlahan, menghapuskan kelewatan antara penunjuk dan harga.
  3. Garis MACD terbentuk oleh perbezaan antara garis pantas tanpa kelewatan dan garis perlahan tanpa kelewatan.
  4. Garis isyarat dibentuk oleh EMA (default 9 tempoh) atau SMA garis MACD.
  5. Histogram MACD terbentuk oleh perbezaan antara garis MACD dan garis isyarat, dengan warna biru mewakili nilai positif dan merah mewakili nilai negatif.
  6. Apabila garis MACD melintasi garis isyarat dari bawah dan titik persimpangan berada di bawah paksi sifar, isyarat beli (titik biru) dihasilkan.
  7. Apabila garis MACD melintasi garis isyarat dari atas dan titik persimpangan berada di atas paksi sifar, isyarat jual (titik merah) dihasilkan.
  8. Strategi secara automatik meletakkan pesanan berdasarkan isyarat beli dan jual dan mencetuskan amaran yang sepadan.

Analisis Kelebihan

  1. Algoritma zero-lag secara berkesan menghapuskan kelewatan antara penunjuk dan harga, meningkatkan ketepatan dan ketepatan isyarat.
  2. Reka bentuk purata bergerak berganda dapat menangkap trend pasaran dengan lebih baik dan menyesuaikan diri dengan persekitaran pasaran yang berbeza.
  3. Histogram MACD secara intuitif mencerminkan perbandingan kekuatan kenaikan dan penurunan, membantu keputusan perdagangan.
  4. Fungsi penempatan pesanan automatik dan amaran memudahkan peniaga untuk merebut peluang perdagangan dengan tepat pada masanya, meningkatkan kecekapan perdagangan.

Analisis Risiko

  1. Dalam pasaran yang tidak stabil, isyarat silang yang kerap boleh menyebabkan perdagangan berlebihan dan kerugian.
  2. Tetapan parameter yang tidak betul boleh menyebabkan gangguan isyarat dan menjejaskan prestasi strategi.
  3. Strategi ini bergantung pada data sejarah untuk pengiraan dan mempunyai daya adaptasi yang lemah terhadap peristiwa tiba-tiba dan peristiwa angsa hitam.

Arah pengoptimuman

  1. Memperkenalkan penunjuk pengesahan trend, seperti ADX, untuk menapis isyarat palsu di pasaran yang tidak menentu.
  2. Mengoptimumkan parameter untuk mencari gabungan terbaik tempoh garis pantas dan perlahan dan tempoh garis isyarat, meningkatkan kestabilan strategi.
  3. Menggabungkan penunjuk teknikal atau faktor asas lain untuk membina model pelbagai faktor, meningkatkan pulangan strategi yang disesuaikan dengan risiko.
  4. Memperkenalkan mekanisme stop-loss dan mengambil keuntungan untuk mengawal risiko perdagangan tunggal.

Ringkasan

Strategi Dagangan MACD Dual Crossover Zero Lag mencapai perdagangan frekuensi tinggi dengan cepat bertindak balas terhadap perubahan harga dan menangkap trend jangka pendek. Algoritma zero-lag dan reka bentuk purata bergerak berganda meningkatkan ketepatan masa dan ketepatan isyarat. Strategi ini mempunyai kelebihan tertentu, seperti isyarat intuitif dan operasi yang mudah, tetapi juga menghadapi risiko seperti overtrading dan sensitiviti parameter. Pada masa akan datang, strategi boleh dioptimumkan dengan memperkenalkan penanda pengesahan trend, pengoptimuman parameter, model pelbagai faktor, dan lain-lain, untuk meningkatkan ketahanan dan keuntungan strategi.


/*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 lanjut