
Strategi gabungan Supertrend dan EMA adalah strategi perdagangan yang menggunakan gabungan indikator Supertrend dan pelbagai indikator EMA. Strategi ini menggunakan indikator Supertrend untuk menentukan arah trend pasaran semasa, sambil menggunakan indikator EMA yang berbeza-beza sebagai pemicu isyarat jual beli. Isyarat beli dihasilkan apabila EMA jangka pendek berhadapan dengan EMA pertengahan dan indikator Supertrend menunjukkan trend naik; Isyarat jual dihasilkan apabila EMA jangka pendek berhadapan dengan EMA pertengahan dan indikator Supertrend menunjukkan trend menurun.
Prinsip utama strategi gabungan Supertrend dan EMA adalah menggunakan ciri-ciri indikator Supertrend dan EMA untuk menangkap perubahan trend dan turun naik harga di pasaran. Indikator Supertrend menilai arah trend pasaran semasa dengan membandingkan harga penutupan semasa dengan pergerakan naik turun dari kitaran sebelumnya. Apabila harga penutupan pecah, menunjukkan bahawa pasaran memasuki tren naik; apabila harga penutupan jatuh, menunjukkan bahawa pasaran memasuki tren menurun.
Strategi gabungan Supertrend dan EMA membentuk satu sistem perdagangan pengesanan trend yang lengkap dengan menggabungkan indikator Supertrend dengan pelbagai indikator EMA. Strategi ini menggunakan indikator Supertrend untuk menilai trend pasaran, dan menghasilkan isyarat jual beli melalui persilangan indikator EMA. Ia mempunyai kelebihan seperti keupayaan pengesanan trend yang kuat, pengesahan isyarat yang boleh dipercayai, dan fleksibiliti yang luas.
/*backtest
start: 2023-06-01 00:00:00
end: 2024-06-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Supertrend EMA Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Supertrend Parameters
atrPeriod = input(10, title="ATR Period")
src = input(hl2, title="Source")
multiplier = input(3.0, title="ATR Multiplier", step=0.1)
changeATR = input(true, title="Change ATR Calculation Method?")
showSignals = input(true, title="Show Buy/Sell Signals?")
highlighting = input(true, title="Highlighter On/Off?")
// Calculate ATR
atr = changeATR ? atr(atrPeriod) : sma(tr, atrPeriod)
// Calculate Supertrend
up = src - (multiplier * atr)
dn = src + (multiplier * atr)
up1 = nz(up[1], up)
dn1 = nz(dn[1], dn)
up := close[1] > up1 ? max(up, up1) : up
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
// Plot Supertrend
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
// EMA Parameters
shortEmaLength = input(20, title="Short EMA Length")
mediumEmaLength = input(50, title="Medium EMA Length")
longEmaLength = input(100, title="Long EMA Length")
longestEmaLength = input(200, title="Longest EMA Length")
// Calculate EMA
shortEma = ema(close, shortEmaLength)
mediumEma = ema(close, mediumEmaLength)
longEma = ema(close, longEmaLength)
longestEma = ema(close, longestEmaLength)
// Plot EMA
plot(shortEma, color=color.red, title="EMA 20")
plot(mediumEma, color=color.orange, title="EMA 50")
plot(longEma, color=color.aqua, title="EMA 100")
plot(longestEma, color=color.blue, title="EMA 200")
// Define Buy and Sell Conditions
buyCondition = crossover(shortEma, mediumEma) and trend == 1
sellCondition = crossunder(shortEma, mediumEma) and trend == -1
// Plot Buy/Sell Signals
plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sellCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Add Text Labels for Buy and Sell Signals
if (buyCondition)
label.new(bar_index, high, text="Buy", color=color.green, textcolor=color.white, style=label.style_label_up, yloc=yloc.abovebar)
if (sellCondition)
label.new(bar_index, low, text="Sell", color=color.red, textcolor=color.white, style=label.style_label_down, yloc=yloc.belowbar)
// Strategy Entry and Exit
if (buyCondition)
strategy.entry("Buy", strategy.long)
if (sellCondition)
strategy.close("Buy")
// Highlight Trend
longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white
fill(plot(ohlc4, title="", style=plot.style_circles, linewidth=0), upPlot, title="UpTrend Highlighter", color=longFillColor)
fill(plot(ohlc4, title="", style=plot.style_circles, linewidth=0), dnPlot, title="DownTrend Highlighter", color=shortFillColor)
// Alerts
alertcondition(buyCondition, title="Buy Alert", message="Supertrend EMA Buy Signal")
alertcondition(sellCondition, title="Sell Alert", message="Supertrend EMA Sell Signal")