Strategi Perdagangan Sifar Lag Penukaran Berganda MACD - Dagangan Frekuensi Tinggi Berdasarkan Tangkapan Trend Jangka Pendek

MACD EMA SMA
Tarikh penciptaan: 2024-05-24 18:14:37 Akhirnya diubah suai: 2024-05-24 18:14:37
Salin: 0 Bilangan klik: 1177
1
fokus pada
1617
Pengikut

Strategi Perdagangan Sifar Lag Penukaran Berganda MACD - Dagangan Frekuensi Tinggi Berdasarkan Tangkapan Trend Jangka Pendek

Gambaran keseluruhan

Strategi ini adalah berdasarkan pada MACD (Moving Average Convergence Line) yang merupakan versi tanpa lag, yang membolehkan perdagangan berfrekuensi tinggi dengan bertindak balas dengan cepat terhadap perubahan harga, menangkap trend jangka pendek. Strategi ini menggunakan dua purata bergerak dengan tempoh yang berbeza (Fast Line dan Slow Line) untuk membina indikator MACD, dan memperkenalkan algoritma tanpa lag, yang menghapuskan kelewatan indikator dan harga, meningkatkan kesesuaian isyarat.

Prinsip Strategi

  1. Hitung EMA (Indeks Purata Bergerak) atau SMA (Rata-rata Bergerak Sederhana) untuk garis pantas (Default 12 Period) dan garis perlahan (Default 26 Period).
  2. Aliran cepat dan lambat dihaluskan dua kali menggunakan algoritma ketinggalan sifar, menghapuskan kelewatan penunjuk dan harga.
  3. Garis MACD terdiri daripada perbezaan antara garis cepat dan lambat.
  4. Talian isyarat terdiri daripada EMA ((default 9 cycle) atau SMA dari tali MACD.
  5. Garis MACD terdiri daripada perbezaan antara garis MACD dan garis isyarat, dengan warna biru untuk nilai positif dan merah untuk nilai negatif.
  6. Apabila garisan MACD melintasi garisan isyarat dari bawah ke atas, dan titik melintasi berada di bawah paksi sifar, menghasilkan isyarat beli (titik biru).
  7. Apabila garisan MACD melintasi garisan isyarat dari atas ke bawah, dan titik melintasi terletak di atas paksi sifar, menghasilkan isyarat menjual (titik merah).
  8. Strategi untuk membuat pesanan secara automatik berdasarkan isyarat jual beli dan mencetuskan amaran yang sesuai.

Analisis kelebihan

  1. Algoritma sifar lag berkesan menghapuskan kelewatan dalam 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 keadaan pasaran yang berbeza.
  3. Bagan MACD secara intuitif mencerminkan perbandingan kuasa yang membantu membuat keputusan perdagangan.
  4. Fungsi pesanan automatik dan amaran memudahkan peniaga untuk menangkap peluang perdagangan tepat pada masanya, meningkatkan kecekapan perdagangan.

Analisis risiko

  1. Dalam pasaran yang bergolak, isyarat silang yang kerap boleh menyebabkan perdagangan berlebihan dan kerugian.
  2. Tetapan parameter yang tidak betul boleh menyebabkan isyarat tidak benar dan menjejaskan prestasi strategi.
  3. Strategi ini bergantung kepada data sejarah untuk pengiraan dan kurang sesuai untuk kejadian yang tidak dijangka dan Black Swan.

Arah pengoptimuman

  1. Memperkenalkan indikator pengesahan trend, seperti ADX dan lain-lain, untuk menyaring isyarat palsu di pasaran yang bergolak.
  2. Optimumkan parameter untuk mencari kombinasi terbaik kitaran garis laju dan kitaran garis isyarat, meningkatkan kestabilan strategi.
  3. Menggabungkan dengan petunjuk teknikal atau faktor asas lain, membina model pelbagai faktor untuk meningkatkan keuntungan selepas penyesuaian risiko strategi.
  4. Memperkenalkan mekanisme hentian dan penangguhan untuk mengawal risiko transaksi tunggal.

ringkaskan

Strategi perdagangan MACD double-conversion zero lag dengan bertindak balas dengan cepat terhadap perubahan harga, menangkap trend jangka pendek, dan mencapai perdagangan frekuensi tinggi. Reka bentuk algoritma nol lag dan purata bergerak berganda meningkatkan ketepatan dan ketepatan isyarat. Strategi ini mempunyai kelebihan tertentu, seperti isyarat yang intuitif, mudah dikendalikan, tetapi juga terdapat risiko, seperti parameter perdagangan yang berlebihan, sensitif.

Kod sumber 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)