
Strategi ini adalah sistem perdagangan kuantitatif berdasarkan MACD dan indikator EMA pelbagai tempoh. Strategi ini membina sistem keputusan perdagangan yang lengkap dengan menggabungkan ciri-ciri pengesanan trend indikator MACD dan ciri-ciri penyokong rintangan pelbagai garis EMA.
Logik teras strategi ini dibina di atas dua petunjuk teknikal utama. Pertama, indikator MACD, yang terdiri daripada garis cepat (12 kitaran) dan garis perlahan (26 kitaran), menghasilkan isyarat perdagangan melalui persilangan dua garis. Apabila MACD melintasi garis isyarat, ia menghasilkan isyarat beli, dan apabila ia melintasi, ia menghasilkan isyarat jual. Kedua, strategi ini memperkenalkan purata bergerak indeks dalam 5 kitaran yang berbeza (10/20/50/100/200) sebagai rujukan untuk pengesahan trend dan sokongan rintangan.
Strategi ini membina sistem perdagangan yang lebih lengkap dengan menggabungkan MACD dan indikator EMA pelbagai kitaran. Kelebihan sistem ini adalah bahawa isyaratnya jelas, analisisnya kaya dengan dimensi, dan mempunyai kesan visualisasi yang baik. Tetapi terdapat juga risiko yang wujud seperti lag dan isyarat palsu.
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("REEL TIME MACD Strategy with Alerts and EMAs", overlay=true)
// --- Custom Indicator: MACD ---
fastLength = input(12, title="MACD Fast Length")
slowLength = input(26, title="MACD Slow Length")
signalSmoothing = input(9, title="MACD Signal Smoothing")
src = close
[macdLine, signalLine, _] = ta.macd(src, fastLength, slowLength, signalSmoothing)
histogram = macdLine - signalLine
// Plot MACD components
plot(macdLine, color=color.blue, linewidth=2, title="MACD Line")
plot(signalLine, color=color.orange, linewidth=2, title="Signal Line")
plot(histogram, style=plot.style_histogram, color=(histogram >= 0 ? color.green : color.red), title="Histogram")
// --- Custom Indicator: EMAs ---
ema10 = ta.ema(src, 10)
ema20 = ta.ema(src, 20)
ema50 = ta.ema(src, 50)
ema100 = ta.ema(src, 100)
ema200 = ta.ema(src, 200)
// Plot EMAs on the chart
plot(ema10, color=color.green, linewidth=1, title="EMA 10")
plot(ema20, color=color.blue, linewidth=1, title="EMA 20")
plot(ema50, color=color.purple, linewidth=1, title="EMA 50")
plot(ema100, color=color.orange, linewidth=1, title="EMA 100")
plot(ema200, color=color.red, linewidth=1, title="EMA 200")
// --- Strategy: Buy and Sell conditions (MACD) ---
buyCondition = ta.crossover(macdLine, signalLine) // Buy when MACD crosses above signal line
sellCondition = ta.crossunder(macdLine, signalLine) // Sell when MACD crosses below signal line
// Execute strategy based on buy/sell conditions
if (buyCondition)
strategy.entry("Buy", strategy.long)
if (sellCondition)
strategy.close("Buy")
// --- Alerts ---
alertcondition(buyCondition, title="MACD Buy Alert", message="MACD XUP - Buy")
alertcondition(sellCondition, title="MACD Sell Alert", message="MACD XDN - Sell")
// Optional: Visualization for Buy/Sell signals
plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY")
plotshape(series=sellCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL")