এই কৌশলটি বাজারের প্রবণতা দিক চিহ্নিত করতে জি-চ্যানেল সূচক ব্যবহার করে, প্রবেশ এবং প্রস্থান পয়েন্টগুলি অনুকূল করতে ইএমএ এবং এটিআর সূচকগুলি অন্তর্ভুক্ত করে। মূল ধারণাটি হ'লঃ যখন দাম জি-চ্যানেলের উপরের ব্যান্ডের উপরে ভেঙে যায় এবং ইএমএর নীচে থাকে তখন দীর্ঘ যান; যখন দাম নীচের ব্যান্ডের নীচে ভেঙে যায় এবং ইএমএর উপরে থাকে তখন সংক্ষিপ্ত যান। এদিকে, এটিআর গতিশীল স্টপ-লস এবং লাভের স্তর সেট করতে ব্যবহৃত হয়, স্টপ-লস 2 বার এটিআর এবং লাভের 4 বার এটিআর। এই পদ্ধতিটি ঝুঁকিগুলি কঠোরভাবে নিয়ন্ত্রণ করার সময় ট্রেন্ডিং বাজারে আরও লাভ অর্জন করতে পারে।
এই কৌশলটি জি-চ্যানেল, ইএমএ, এবং এটিআর এর মতো সূচক ব্যবহার করে একটি সহজ এবং কার্যকর প্রবণতা অনুসরণকারী ট্রেডিং সিস্টেম তৈরি করে। এটি ট্রেন্ডিং মার্কেটে ভাল ফলাফল অর্জন করতে পারে, তবে রেঞ্জিং মার্কেটে গড় পারফর্ম করে। ভবিষ্যতে, কৌশলটি প্রবণতা ফিল্টারিং, পরামিতি অপ্টিমাইজেশন, অবস্থান পরিচালনা, কৌশল সংমিশ্রণ ইত্যাদির ক্ষেত্রে অনুকূলিত করা যেতে পারে, যাতে কৌশলটির দৃust়তা এবং লাভজনকতা আরও বাড়ানো যায়।
/*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)