এই কৌশলটি একটি মাল্টি-ইনডিকেটর ট্রেডিং সিস্টেম যা জি-চ্যানেল, এক্সপোনেনশিয়াল মুভিং এভারেজ (ইএমএ) এবং গড় সত্য পরিসীমা (এটিআর) একত্রিত করে। এটি গতিশীল সমর্থন / প্রতিরোধের স্তর এবং প্রবণতা নিশ্চিতকরণের মাধ্যমে ট্রেডিং সংকেতগুলি সনাক্ত করে, এটিআর ভিত্তিক স্টপ-লস এবং লাভের স্তরগুলি ব্যবহার করে ঝুঁকি পরিচালনা করে। সিস্টেমটি নির্ভরযোগ্যতা এবং ঝুঁকি নিয়ন্ত্রণের উপর জোর দেয়, একটি শক্তিশালী ট্রেডিং পদ্ধতির সন্ধানকারী ব্যবসায়ীদের জন্য উপযুক্ত।
কৌশলটির মূল যুক্তি নিম্নলিখিত মূল উপাদানগুলির উপর ভিত্তি করেঃ 1. জি-চ্যানেল গতিশীল সমর্থন এবং প্রতিরোধের মাত্রা গণনা করে, ক্রমাগত উপরের এবং নীচের ব্যান্ড সমন্বয় 2. ইএমএ সামগ্রিক প্রবণতার দিকনির্দেশনা নিশ্চিত করে, যেখানে ইএমএর তুলনায় মূল্য অবস্থানের দ্বারা বাণিজ্যের দিকনির্দেশনা নির্ধারিত হয় ৩. এন্ট্রি সিগন্যালগুলি জি-চ্যানেল ব্রেকআউট এবং ইএমএ পজিশন নিশ্চিতকরণের উপর ভিত্তি করে ৪. স্টপ লস এবং টেক লাভের মাত্রা ATR এর বহুগুণ ব্যবহার করে নির্ধারণ করা হয়, যেখানে স্টপ লসের জন্য 2x ATR এবং টেক লাভের জন্য 4x ATR ৫. স্টেট ট্র্যাকিং ধারাবাহিক ডুপ্লিকেট সিগন্যাল প্রতিরোধ করে
কৌশলটি একাধিক পরিপক্ক প্রযুক্তিগত সূচককে একত্রিত করে একটি সম্পূর্ণ ট্রেডিং সিস্টেম তৈরি করে। এর শক্তি বহু-স্তরের সংকেত নিশ্চিতকরণ প্রক্রিয়া এবং অস্থিরতা ভিত্তিক ঝুঁকি ব্যবস্থাপনায় রয়েছে, যদিও এটি এখনও ব্যবহারিক অ্যাপ্লিকেশনগুলিতে নির্দিষ্ট বাজারের বৈশিষ্ট্যগুলির উপর ভিত্তি করে অপ্টিমাইজেশনের প্রয়োজন। প্রস্তাবিত অপ্টিমাইজেশান দিকগুলির মাধ্যমে কৌশলটির স্থিতিশীলতা এবং অভিযোজনযোগ্যতা আরও বাড়ানো যেতে পারে।
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-10 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("G-Channel with EMA Strategy and ATR SL/TP", shorttitle="G-EMA-ATR", overlay=true) // Input parameters length = input.int(100, title="G-Channel Length") src = input.source(close, title="Source") ema_length = input.int(50, title="EMA Length") // EMA length atr_length = input.int(14, title="ATR Length") // ATR length // G-Channel calculation var float a = na var float b = na a := math.max(src, nz(a[1])) - nz(a[1] - b[1]) / length b := math.min(src, nz(b[1])) + nz(a[1] - b[1]) / length avg = (a + b) / 2 // G-Channel cross conditions crossup = b[1] < close[1] and b > close crossdn = a[1] < close[1] and a > close bullish = ta.barssince(crossdn) <= ta.barssince(crossup) c = bullish ? color.lime : color.red // EMA calculation ema_value = ta.ema(src, ema_length) // ATR calculation atr_value = ta.atr(atr_length) // Plot G-Channel average and Close price p1 = plot(avg, "G-Channel 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) // Plot EMA plot(ema_value, color=color.blue, linewidth=2, title="EMA") // Buy and Sell conditions buy_condition = bullish and close < ema_value sell_condition = not bullish and close > ema_value // Track the last signal state var bool last_was_buy = false var bool last_was_sell = false // ATR-based SL and TP calculations long_sl = close - 2 * atr_value // 2 ATR below the entry for SL long_tp = close + 4 * atr_value // 4 ATR above the entry for TP short_sl = close + 2 * atr_value // 2 ATR above the entry for SL (short) short_tp = close - 4 * atr_value // 4 ATR below the entry for TP (short) // Generate Buy signal only if the last signal was not Buy if (buy_condition and not last_was_buy) strategy.entry("Buy", strategy.long) strategy.exit("Exit Buy", from_entry="Buy", stop=long_sl, limit=long_tp) last_was_buy := true last_was_sell := false // Generate Sell signal only if the last signal was not Sell if (sell_condition and not last_was_sell) strategy.entry("Sell", strategy.short) strategy.exit("Exit Sell", from_entry="Sell", stop=short_sl, limit=short_tp) last_was_sell := true last_was_buy := false // Plot shapes for Buy and Sell signals plotshape(series=buy_condition and not last_was_buy, location=location.belowbar, style=shape.labelup, color=color.lime, size=size.small, text="Buy", textcolor=color.white) plotshape(series=sell_condition and not last_was_sell, location=location.abovebar, style=shape.labeldown, color=color.red, size=size.small, text="Sell", textcolor=color.white)