The Supertrend and EMA Combination Strategy is a trading strategy that combines the Supertrend indicator with multiple EMA indicators. The strategy uses the Supertrend indicator to determine the current market trend direction and uses different periods of EMA indicators as triggers for buy and sell signals. When the short-term EMA crosses above the medium-term EMA, and the Supertrend indicator shows an uptrend, a buy signal is generated; when the short-term EMA crosses below the medium-term EMA, and the Supertrend indicator shows a downtrend, a sell signal is generated.
The core principle of the Supertrend and EMA Combination Strategy is to utilize the characteristics of the Supertrend indicator and EMA indicators to capture changes in market trends and price fluctuations. The Supertrend indicator determines the current market trend direction by comparing the current closing price with the upper and lower bands of the previous period. When the closing price breaks above the upper band, it indicates an uptrend in the market; when the closing price falls below the lower band, it indicates a downtrend in the market. At the same time, the strategy uses four different periods of EMA indicators (20-day, 50-day, 100-day, and 200-day) and generates buy and sell signals by comparing the crossover of the short-term EMA and medium-term EMA. When the short-term EMA crosses above the medium-term EMA, it indicates potential upward momentum in the market, and combined with the uptrend indicated by the Supertrend indicator, a buy signal is generated; when the short-term EMA crosses below the medium-term EMA, it indicates potential downward pressure in the market, and combined with the downtrend indicated by the Supertrend indicator, a sell signal is generated.
The Supertrend and EMA Combination Strategy combines the Supertrend indicator with multiple EMA indicators to form a complete trend-following trading system. The strategy uses the Supertrend indicator to determine market trends and generates buy and sell signals based on the crossover of EMA indicators. It has the advantages of strong trend-following ability, reliable signal confirmation, and wide adaptability. However, the strategy also faces risks such as parameter optimization, market volatility, and trend reversal. It needs to be optimized and improved through parameter optimization, signal filtering, stop-loss and take-profit, and multiple instruments and timeframes to enhance the strategy’s robustness and profitability.
/*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")template: strategy.tpl:40:21: executing "strategy.tpl" at <.api.GetStrategyListByName>: wrong number of args for GetStrategyListByName: want 7 got 6