
Strategi supertrend dan EMA kombinasi adalah strategi perdagangan yang menggunakan indikator Supertrend dan kombinasi dari beberapa indikator EMA. Strategi ini menggunakan indikator Supertrend untuk menentukan arah tren pasar saat ini, dan menggunakan indikator EMA dari periode yang berbeda sebagai pemicu sinyal beli. Ketika EMA jangka pendek berselisih dengan EMA jangka menengah dan indikator Supertrend menunjukkan tren naik, sinyal beli dihasilkan; Ketika EMA jangka pendek berselisih dengan EMA jangka menengah dan indikator Supertrend menunjukkan tren turun, sinyal jual dihasilkan.
Prinsip inti dari kombinasi strategi Supertrend dan EMA adalah memanfaatkan karakteristik indikator Supertrend dan indikator EMA untuk menangkap perubahan tren pasar dan fluktuasi harga. Indikator Supertrend menilai arah tren pasar saat ini dengan membandingkan harga tutup saat ini dengan lintasan naik turun dari siklus sebelumnya.
Strategi kombinasi Supertrend dan EMA dengan menggabungkan indikator Supertrend dengan beberapa indikator EMA, membentuk satu set lengkap dari trend tracking trading system. Strategi ini menggunakan indikator Supertrend untuk menilai tren pasar, dan juga menghasilkan sinyal beli dan jual melalui crossover dari indikator EMA, dengan kekuatan kemampuan trend tracking, sinyal konfirmasi yang dapat diandalkan, fleksibilitas yang luas dan lain-lain. Namun, strategi ini juga menghadapi risiko seperti optimasi parameter, pergerakan pasar dan pergeseran tren, yang perlu dioptimalkan dan diperbaiki dengan cara seperti optimasi parameter, pemfilteran sinyal, stop loss, stop loss, dan siklus multi-varietas untuk meningkatkan stabilitas strategi dan kemampuan menguntungkan.
/*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")