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.
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.
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)