यह रणनीति बाजार की प्रवृत्ति दिशा की पहचान करने के लिए जी-चैनल संकेतक का उपयोग करती है, जबकि प्रवेश और निकास बिंदुओं को अनुकूलित करने के लिए ईएमए और एटीआर संकेतक को शामिल करती है। मुख्य विचार यह हैः जब कीमत जी-चैनल के ऊपरी बैंड से ऊपर टूटती है और ईएमए से नीचे होती है तो लंबी हो जाती है; जब कीमत निचले बैंड से नीचे टूटती है और ईएमए से ऊपर होती है तो छोटी हो जाती है। इस बीच, एटीआर का उपयोग गतिशील स्टॉप-लॉस और टेक-प्रॉफिट स्तरों को निर्धारित करने के लिए किया जाता है, जिसमें स्टॉप-लॉस एटीआर के 2 गुना और टेक-प्रॉफिट एटीआर के 4 गुना होता है। यह दृष्टिकोण जोखिमों को सख्ती से नियंत्रित करते हुए ट्रेंडिंग बाजारों में अधिक लाभ प्राप्त कर सकता है।
यह रणनीति जी-चैनल, ईएमए, और एटीआर जैसे संकेतकों का उपयोग करके एक सरल और प्रभावी प्रवृत्ति-अनुसरण ट्रेडिंग प्रणाली का निर्माण करती है। यह प्रवृत्ति बाजारों में अच्छे परिणाम प्राप्त कर सकती है, लेकिन रेंजिंग बाजारों में औसत प्रदर्शन करती है। आगे बढ़ते हुए, रणनीति की मजबूती और लाभप्रदता को और बढ़ाने के लिए प्रवृत्ति फ़िल्टरिंग, पैरामीटर अनुकूलन, स्थिति प्रबंधन, रणनीति संयोजन, आदि के संदर्भ में रणनीति का अनुकूलन किया जा सकता है।
/*backtest start: 2024-05-01 00:00:00 end: 2024-05-31 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Full credit to AlexGrover: https://www.tradingview.com/script/fIvlS64B-G-Channels-Efficient-Calculation-Of-Upper-Lower-Extremities/ strategy ("G-Channel Trend Detection with EMA Strategy and ATR", shorttitle="G-Trend EMA ATR Strategy", overlay=true) // Inputs for G-Channel length = input(100, title="G-Channel Length") src = input(close, title="Source") // G-Channel Calculation var float a = na var float b = na a := max(src, nz(a[1])) - (nz(a[1] - b[1]) / length) b := min(src, nz(b[1])) + (nz(a[1] - b[1]) / length) avg = (a + b) / 2 // G-Channel Signals crossup = b[1] < close[1] and b > close crossdn = a[1] < close[1] and a > close bullish = barssince(crossdn) <= barssince(crossup) c = bullish ? color.lime : color.red // Plot G-Channel Average p1 = plot(avg, "Average", color=c, linewidth=1, transp=90) p2 = plot(close, "Close price", color=c, linewidth=1, transp=100) fill(p1, p2, color=c, transp=90) // Show Buy/Sell Labels showcross = input(true, title="Show Buy/Sell Labels") plotshape(showcross and not bullish and bullish[1] ? avg : na, location=location.absolute, style=shape.labeldown, color=color.red, size=size.tiny, text="Sell", textcolor=color.white, transp=0, offset=-1) plotshape(showcross and bullish and not bullish[1] ? avg : na, location=location.absolute, style=shape.labelup, color=color.lime, size=size.tiny, text="Buy", textcolor=color.white, transp=0, offset=-1) // Inputs for EMA emaLength = input(50, title="EMA Length") emaValue = ema(close, emaLength) // Plot EMA plot(emaValue, title="EMA", color=color.blue, linewidth=1) // ATR Calculation atrLength = input(14, title="ATR Length") atrValue = atr(atrLength) // Strategy Conditions buyCondition = bullish and close < emaValue sellCondition = not bullish and close > emaValue // Stop Loss and Take Profit Levels longStopLoss = close - 2 * atrValue longTakeProfit = close + 4 * atrValue shortStopLoss = close + 2 * atrValue shortTakeProfit = close - 4 * atrValue // Execute Strategy with ATR-based stop loss and take profit if (buyCondition) strategy.entry("Buy", strategy.long) strategy.exit("Sell", "Buy", stop=longStopLoss, limit=longTakeProfit) if (sellCondition) strategy.entry("Sell", strategy.short) strategy.exit("Cover", "Sell", stop=shortStopLoss, limit=shortTakeProfit) // Plot Buy/Sell Signals on the chart plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", offset=-1) plotshape(series=sellCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", offset=-1)