MACD trend dinamik strategi dagangan kuantitatif versi lanjutan

MACD MA EMA RSI
Tarikh penciptaan: 2024-11-12 16:27:01 Akhirnya diubah suai: 2024-11-12 16:27:01
Salin: 0 Bilangan klik: 602
1
fokus pada
1617
Pengikut

MACD trend dinamik strategi dagangan kuantitatif versi lanjutan

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan kuantitatif yang lebih tinggi berdasarkan MACD (Moving Average Convergence Spread Indicator) untuk meningkatkan ketepatan keputusan perdagangan melalui paparan latar belakang dinamik dan pelbagai kombinasi parameter yang telah ditetapkan. Inti strategi ini adalah untuk menangkap titik peralihan trend pasaran melalui isyarat silang MACD dan menunjukkan keadaan kosong pasaran secara visual.

Prinsip Strategi

Strategi ini menggunakan sepuluh parameter MACD yang berbeza, termasuk tetapan standard ((12,26,9), jangka pendek ((5,35,5)), jangka panjang ((19,39,9)), dan lain-lain, untuk menyesuaikan diri dengan persekitaran pasaran yang berbeza dan gaya perdagangan. Apabila garis MACD bersilang dengan garis isyarat emas, sistem menghasilkan isyarat beli; apabila berlaku persilangan mati, sistem menghasilkan menjual.

Kelebihan Strategik

  1. Fleksibiliti parameter: menyediakan sepuluh kombinasi parameter yang boleh disesuaikan dengan keadaan pasaran yang berbeza
  2. Maklum balas visual yang jelas: menunjukkan trend pasaran secara intuitif melalui perubahan warna latar belakang yang dinamik
  3. Isyarat jelas: menghasilkan isyarat jual beli yang jelas berdasarkan MACD crossover
  4. Kebolehan beradaptasi: boleh digunakan untuk berdagang dalam tempoh masa yang berbeza
  5. Struktur kod yang jelas: menggunakan struktur suis untuk menukar parameter, memudahkan penyelenggaraan dan pengembangan

Risiko Strategik

  1. Risiko ketinggalan: MACD sebagai penunjuk ketinggalan mungkin menghasilkan isyarat kelewatan dalam pasaran yang bergolak
  2. Risiko penembusan palsu: mungkin menghasilkan isyarat silang palsu di pasaran berlawanan
  3. Ketergantungan parameter: kombinasi parameter yang berbeza menunjukkan perbezaan yang besar dalam keadaan pasaran yang berbeza
  4. Kekurangan keadaan pasaran: mungkin tidak dapat dilaksanakan dengan baik dalam keadaan pasaran yang sangat tidak menentu atau kurang likuid

Arah pengoptimuman strategi

  1. Memperkenalkan penapis kadar turun naik untuk menyaring isyarat dagangan semasa pasaran terlalu bergolak
  2. Tambah indikator pengesahan trend seperti RSI atau ATR untuk meningkatkan kebolehpercayaan isyarat
  3. Memperbaiki parameter penyesuaian diri, menyesuaikan parameter MACD mengikut keadaan pasaran yang dinamik
  4. Meningkatkan fungsi pencegahan kerosakan dan meningkatkan keupayaan pengurusan risiko
  5. Menambah analisis jumlah transaksi untuk meningkatkan kebolehpercayaan isyarat

ringkaskan

Ini adalah versi lanjutan strategi MACD yang tersusun dengan baik dan logik yang jelas. Keupayaan dan kebolehan strategi telah ditingkatkan dengan banyak parameter dan maklum balas visual yang dinamik. Walaupun terdapat beberapa risiko yang wujud, strategi ini dijangka menjadi sistem perdagangan yang mantap setelah diperbaiki dengan arah pengoptimuman yang disediakan.

Kod sumber strategi
/*backtest
start: 2024-10-12 00:00:00
end: 2024-11-11 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Hanzo - Top 10 MACD Strategy", overlay=false)  // MACD in a separate pane

// Define dropdown options for MACD settings
macdOption = input.string(title="Select MACD Setting", 
     defval="Standard (12, 26, 9)", 
     options=["Standard (12, 26, 9)", 
              "Short-Term (5, 35, 5)", 
              "Long-Term (19, 39, 9)", 
              "Scalping (3, 10, 16)", 
              "Cryptocurrency (20, 50, 9)", 
              "Forex (8, 17, 9)", 
              "Conservative (24, 52, 18)", 
              "Trend-Following (7, 28, 7)", 
              "Swing Trading (5, 15, 5)", 
              "Contrarian (15, 35, 5)"])

// MACD setting based on user selection
var int fastLength = 12
var int slowLength = 26
var int signalLength = 9

switch macdOption
    "Standard (12, 26, 9)" => 
        fastLength := 12
        slowLength := 26
        signalLength := 9
    "Short-Term (5, 35, 5)" => 
        fastLength := 5
        slowLength := 35
        signalLength := 5
    "Long-Term (19, 39, 9)" => 
        fastLength := 19
        slowLength := 39
        signalLength := 9
    "Scalping (3, 10, 16)" => 
        fastLength := 3
        slowLength := 10
        signalLength := 16
    "Cryptocurrency (20, 50, 9)" => 
        fastLength := 20
        slowLength := 50
        signalLength := 9
    "Forex (8, 17, 9)" => 
        fastLength := 8
        slowLength := 17
        signalLength := 9
    "Conservative (24, 52, 18)" => 
        fastLength := 24
        slowLength := 52
        signalLength := 18
    "Trend-Following (7, 28, 7)" => 
        fastLength := 7
        slowLength := 28
        signalLength := 7
    "Swing Trading (5, 15, 5)" => 
        fastLength := 5
        slowLength := 15
        signalLength := 5
    "Contrarian (15, 35, 5)" => 
        fastLength := 15
        slowLength := 35
        signalLength := 5

// MACD Calculation
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength)
macdHist = macdLine - signalLine

// Buy and Sell conditions based on MACD crossovers
enterLong = ta.crossover(macdLine, signalLine)
exitLong = ta.crossunder(macdLine, signalLine)

// Execute buy and sell orders with price labels in the comments
if (enterLong)
    strategy.entry("Buy", strategy.long, comment="Buy at " + str.tostring(close, "#.##"))

if (exitLong)
    strategy.close("Buy", comment="Sell at " + str.tostring(close, "#.##"))

// Plot the signal price using plotchar for buy/sell prices
//plotchar(enterLong ? close : na, location=location.belowbar, color=color.green, size=size.small, title="Buy Price", offset=0)
//plotchar(exitLong ? close : na, location=location.abovebar, color=color.red, size=size.small, title="Sell Price", offset=0)

// Background highlighting based on bullish or bearish MACD
isBullish = macdLine > signalLine
isBearish = macdLine < signalLine

// Change background to green for bullish periods and red for bearish periods
bgcolor(isBullish ? color.new(color.green, 90) : na, title="Bullish Background")
bgcolor(isBearish ? color.new(color.red, 90) : na, title="Bearish Background")

// Plot the MACD and Signal line in a separate pane
plot(macdLine, title="MACD Line", color=color.blue, linewidth=2)
plot(signalLine, title="Signal Line", color=color.orange, linewidth=2)
hline(0, "Zero Line", color=color.gray)
plot(macdHist, title="MACD Histogram", style=plot.style_histogram, color=color.red)