Sumber dimuat naik... memuat...

Strategi Dagangan Kuantitatif Trend Dinamik MACD Lanjutan

Penulis:ChaoZhang, Tarikh: 2024-11-12 16:27:01
Tag:MACDMAEMARSI

img

Ringkasan

Strategi ini adalah sistem perdagangan kuantitatif canggih berdasarkan penunjuk Divergensi Convergensi Purata Bergerak (MACD), meningkatkan keputusan perdagangan melalui paparan latar belakang dinamik dan pelbagai kombinasi parameter yang telah ditetapkan.

Prinsip Strategi

Strategi ini menggunakan sepuluh set parameter MACD yang berbeza, termasuk Standard (12,26,9), Jangka Pendek (5,35,5), Jangka Panjang (19,39,9), dan lain-lain, untuk menyesuaikan diri dengan persekitaran pasaran dan gaya perdagangan yang berbeza. Sistem ini menghasilkan isyarat beli apabila garis MACD melintasi di atas garis isyarat (salib emas) dan isyarat jual apabila melintasi di bawah (salib kematian). Strategi ini meningkatkan pengenalan visual melalui perubahan warna latar belakang dinamik (hijau untuk bullish, merah untuk bearish) untuk membantu peniaga lebih memahami trend pasaran.

Kelebihan Strategi

  1. Fleksibiliti Parameter: Menawarkan sepuluh kombinasi parameter yang telah ditetapkan untuk persekitaran pasaran yang berbeza
  2. Maklum balas visual yang jelas: Perubahan warna latar belakang dinamik memberikan paparan trend pasaran yang intuitif
  3. Isyarat yang jelas: Menghasilkan isyarat beli / jual yang jelas berdasarkan persilangan MACD
  4. Kebolehsesuaian yang tinggi: Boleh digunakan untuk perdagangan jangka masa yang berbeza
  5. Struktur Kod Jelas: Menggunakan struktur suis untuk menukar parameter, mudah dikekalkan dan dilanjutkan

Risiko Strategi

  1. Risiko Lag: MACD sebagai penunjuk lag boleh menghasilkan isyarat tertunda di pasaran yang tidak menentu
  2. Risiko pecah palsu: Boleh menghasilkan isyarat silang palsu di pasaran yang berbeza
  3. Kebergantungan Parameter: Gabungan parameter yang berbeza berfungsi secara berbeza dalam keadaan pasaran yang berbeza
  4. Sekatan keadaan pasaran: Mungkin kurang berprestasi dalam persekitaran pasaran yang sangat tidak stabil atau tidak cair

Arahan Pengoptimuman Strategi

  1. Melaksanakan penapis turun naik untuk menapis isyarat dagangan semasa tempoh yang sangat turun naik
  2. Tambah penunjuk pengesahan trend seperti RSI atau ATR untuk meningkatkan kebolehpercayaan isyarat
  3. Melaksanakan pengoptimuman parameter adaptif berdasarkan keadaan pasaran
  4. Tambah fungsi stop-loss dan mengambil keuntungan untuk meningkatkan pengurusan risiko
  5. Sertakan analisis jumlah untuk meningkatkan kebolehpercayaan isyarat

Ringkasan

Ini adalah versi canggih strategi MACD yang berstruktur baik dan logik. Melalui pelbagai parameter preset dan maklum balas visual yang dinamik, ia meningkatkan kepraktisan dan kebolehoperasian strategi dengan ketara. Walaupun terdapat risiko yang melekat, strategi ini berpotensi menjadi sistem perdagangan yang kukuh dengan pengoptimuman yang dicadangkan. Pedagang dinasihatkan untuk melakukan pengujian belakang yang menyeluruh sebelum pelaksanaan langsung dan memilih tetapan parameter yang sesuai berdasarkan keadaan pasaran tertentu.


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


Berkaitan

Lebih lanjut