
জি-চ্যানেল ট্রেন্ড সনাক্তকরণ কৌশলটি একটি পরিমাণগত ট্রেডিং কৌশল যা জি চ্যানেলের সূচকগুলির উপর ভিত্তি করে তৈরি করা হয়। এই কৌশলটি জি চ্যানেলের উপরের এবং নীচের চূড়ান্ত মানগুলি গণনা করে এবং জি চ্যানেলের গড়ের সাথে দামের ক্রস-অবস্থার ভিত্তিতে বর্তমান বাজার প্রবণতা বিচার করে, যার ফলে একটি কেনা-বেচা সংকেত তৈরি হয়। একই সাথে, এই কৌশলটি ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লস শর্তও নির্ধারণ করে।
জি-চ্যানেল প্রবণতা সনাক্তকরণ কৌশলটি একটি সহজ পরিমাণযুক্ত ট্রেডিং কৌশল যা জি-চ্যানেলের সূচকগুলির উপর ভিত্তি করে তৈরি করা হয়, বাজারের প্রবণতা ক্যাপচার করে ক্রয়-বিক্রয় সংকেত তৈরি করে এবং স্টপ লস শর্তগুলি নিয়ন্ত্রণের ঝুঁকি নির্ধারণ করে। এই কৌশলটির যুক্তি স্পষ্ট, বাস্তবায়ন করা সহজ এবং নবাগত ট্রেডিংয়ের জন্য উপযুক্ত। তবে, এই কৌশলটি বাজারের বৈশিষ্ট্য অনুসারে স্টপ লস অনুপাতটি সামঞ্জস্য করতে হবে এবং ট্রেডের জাতের বিশেষত্ব বিবেচনা করে না। ভবিষ্যতে অন্যান্য প্রযুক্তিগত সূচক, গতিশীলভাবে স্টপ লস অনুপাত, ট্রেডের জাতের বৈশিষ্ট্য অনুসারে ঝুঁকি নিয়ন্ত্রণ মডিউল যুক্ত করে কৌশলটি অপ্টিমাইজ করা যেতে পারে, যাতে কৌশলটির স্থায়িত্ব এবং উপার্জন বাড়ানো যায়।
//@version=5
// Full credit to AlexGrover: https://www.tradingview.com/script/fIvlS64B-G-Channels-Efficient-Calculation-Of-Upper-Lower-Extremities/
strategy("G-Channel Trend Detection Strategy", shorttitle="G-Trend", overlay=true)
// Input parameters
length = input.int(100, title="Length")
src = input(close, title="Source")
take_profit_percent = input.float(5.0, title="Take Profit (%)")
stop_loss_percent = input.float(2.0, title="Stop Loss (%)")
showcross = input.bool(true, title="Show Cross")
// Initialize variables
var float a = na
var float b = na
// Calculate a and b
a := math.max(src, nz(a[1])) - (nz(a[1]) - nz(b[1])) / length
b := math.min(src, nz(b[1])) + (nz(a[1]) - nz(b[1])) / length
// Calculate average
avg = (a + b) / 2
// Determine trend and color
crossup = ta.crossunder(b, close)
crossdn = ta.crossunder(a, close)
bullish = ta.barssince(crossdn) <= ta.barssince(crossup)
c = bullish ? color.lime : color.red
// Plotting
p1 = plot(avg, "Average", color=c, linewidth=1)
p2 = plot(close, "Close price", color=c, linewidth=1)
fill(p1, p2, c)
// Generate buy and sell signals
buy_signal = showcross and bullish and not bullish[1]
sell_signal = showcross and not bullish and bullish[1]
// Plot buy and sell signals on chart
plotshape(buy_signal ? avg : na, location=location.belowbar, style=shape.labeldown, color=color.new(color.lime, 0), size=size.tiny, text="Buy", textcolor=color.white, offset=-1)
plotshape(sell_signal ? avg : na, location=location.abovebar, style=shape.labelup, color=color.new(color.red, 0), size=size.tiny, text="Sell", textcolor=color.white, offset=-1)
// Alerts
alertcondition(buy_signal, title="Buy Signal", message="Buy Signal Detected")
alertcondition(sell_signal, title="Sell Signal", message="Sell Signal Detected")
// Calculate take profit and stop loss levels
take_profit_level = close * (1 + take_profit_percent / 100)
stop_loss_level = close * (1 - stop_loss_percent / 100)
// Strategy Entry and Exit
if (buy_signal)
strategy.entry("Buy", strategy.long)
if (sell_signal)
strategy.entry("Sell", strategy.short)
// Define the take profit and stop loss conditions for long positions
strategy.exit("Take Profit/Stop Loss", "Buy", limit=take_profit_level, stop=stop_loss_level)
// Define the take profit and stop loss conditions for short positions
strategy.exit("Take Profit/Stop Loss", "Sell", limit=close * (1 - take_profit_percent / 100), stop=close * (1 + stop_loss_percent / 100))