यह रणनीति एक्सपोनेंशियल मूविंग एवरेज (ईएमए) और सुपरट्रेंड इंडिकेटर को जोड़कर खरीद और बिक्री संकेत उत्पन्न करती है। एक खरीद संकेत तब उत्पन्न होता है जब कीमत 20-दिवसीय ईएमए से ऊपर टूट जाती है और सुपरट्रेंड इंडिकेटर तेजी की प्रवृत्ति में होता है। एक बिक्री संकेत तब उत्पन्न होता है जब कीमत 20-दिवसीय ईएमए से नीचे टूट जाती है और सुपरट्रेंड इंडिकेटर मंदी की प्रवृत्ति में होता है। रणनीति का उद्देश्य ईएमए का उपयोग करते हुए झूठे संकेतों को कम करने के लिए एक फ़िल्टरिंग स्थिति के रूप में ट्रेंडिंग बाजार स्थितियों को कैप्चर करना है।
यह रणनीति 20-दिवसीय ईएमए और सुपरट्रेंड संकेतक को मिलाकर खरीद और बिक्री संकेत उत्पन्न करती है, जिसका उद्देश्य ट्रेंडिंग बाजार स्थितियों को पकड़ना है। रणनीति के फायदे इसकी सादगी और ईएमए और सुपरट्रेंड संकेतक के संयोजन में निहित हैं, जो प्रभावी रूप से झूठे संकेतों को कम कर सकते हैं। हालांकि, चंचल बाजारों में, रणनीति अक्सर व्यापार कर सकती है और जोखिम प्रबंधन उपायों की कमी है। भविष्य में सुधार रणनीति को बढ़ाने के लिए स्टॉप-लॉस, स्थिति आकार और पैरामीटर अनुकूलन विधियों को शामिल करने पर विचार कर सकते हैं। कुल मिलाकर, यह रणनीति ट्रेडिंग प्रवृत्ति के लिए एक सरल और प्रभावी दृष्टिकोण प्रदान करती है, लेकिन व्यावहारिक अनुप्रयोग के लिए आगे अनुकूलन और परिष्करण की आवश्यकता होती है।
/*backtest start: 2023-06-11 00:00:00 end: 2024-06-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("20 EMA and Supertrend Strategy", overlay=true) // Inputs emaLength = input(20, title="EMA Length") supertrendMultiplier = input.float(3.0, title="Supertrend Multiplier") supertrendPeriod = input(10, title="Supertrend Period") // EMA Calculation ema = ta.ema(close, emaLength) // Supertrend Calculation Periods = supertrendPeriod src = hl2 Multiplier = supertrendMultiplier changeATR= input.bool(true, title="Change ATR Calculation Method?") showsignals = input.bool(true, title="Show Buy/Sell Signals?") highlighting = input.bool(true, title="Highlighter On/Off?") atr2 = ta.sma(ta.tr, Periods) atr = changeATR ? ta.atr(Periods) : atr2 up = src - (Multiplier * atr) up1 = na(up[1]) ? up : up[1] up := close[1] > up1 ? math.max(up, up1) : up dn = src + (Multiplier * atr) dn1 = na(dn[1]) ? dn : dn[1] dn := close[1] < dn1 ? math.min(dn, dn1) : dn trend = 1 trend := na(trend[1]) ? trend : trend[1] trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green) buySignal = trend == 1 and trend[1] == -1 plotshape(series=buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.green, 0)) plotshape(series=buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0), textcolor=color.white) dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red) sellSignal = trend == -1 and trend[1] == 1 plotshape(series=sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.red, 0)) plotshape(series=sellSignal and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0), textcolor=color.white) mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=1) longFillColor = highlighting ? (trend == 1 ? color.new(color.green, 90) : color.new(color.white, 0)) : color.new(color.white, 0) shortFillColor = highlighting ? (trend == -1 ? color.new(color.red, 90) : color.new(color.white, 0)) : color.new(color.white, 0) fill(mPlot, upPlot, title="UpTrend Highlighter", color=longFillColor) fill(mPlot, dnPlot, title="DownTrend Highlighter", color=shortFillColor) alertcondition(buySignal, title="SuperTrend Buy", message="SuperTrend Buy!") alertcondition(sellSignal, title="SuperTrend Sell", message="SuperTrend Sell!") changeCond = trend != trend[1] alertcondition(changeCond, title="SuperTrend Direction Change", message="SuperTrend has changed direction!") // Buy and Sell Signals based on EMA and Supertrend buySignalEMA = ta.crossover(close, ema) and trend == 1 sellSignalEMA = ta.crossunder(close, ema) and trend == -1 // Plot EMA plot(ema, color=color.blue, title="20 EMA") // Plot Buy and Sell Signals plotshape(series=buySignalEMA, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY") plotshape(series=sellSignalEMA, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL") // Strategy Entries and Exits if (buySignalEMA) strategy.entry("Buy", strategy.long) if (sellSignalEMA) strategy.close("Buy")