
جی چینل رجحانات کا پتہ لگانے کی حکمت عملی جی چینل کے اشارے پر مبنی ایک مقداری تجارتی حکمت عملی ہے۔ یہ حکمت عملی جی چینل کے اوپر اور نیچے کی انتہائی قیمتوں کا حساب لگاتی ہے اور موجودہ مارکیٹ کے رجحانات کو جی چینل کی مساوی قیمتوں کے ساتھ کراسنگ کی بنیاد پر فیصلہ کرتی ہے ، جس سے خرید و فروخت کا اشارہ ہوتا ہے۔ اس حکمت عملی میں خطرے کو کنٹرول کرنے کے لئے اسٹاپ نقصان کی شرائط بھی رکھی گئی ہیں۔
جی چینل ٹرینڈ کا پتہ لگانے کی حکمت عملی ایک سادہ ، جی چینل اشارے پر مبنی ، خرید و فروخت کے اشارے پیدا کرنے اور اسٹاپ نقصان کی شرائط کو کنٹرول کرنے کے لئے مارکیٹ کے رجحانات کو پکڑنے کے لئے ایک کمپیکٹ ٹریڈنگ حکمت عملی ہے۔ حکمت عملی کی منطق واضح ہے ، اس پر عمل درآمد کرنا آسان ہے ، اور اس کی مقدار کو تجارت کرنے کے لئے موزوں ہے۔ تاہم ، یہ حکمت عملی چونکہ چونکانے والی مارکیٹ میں زیادہ جعلی سگنل پیدا ہوسکتے ہیں ، اسٹاپ نقصان کی شرح کو مارکیٹ کی خصوصیات کے مطابق ایڈجسٹ کرنے کی ضرورت ہے ، تجارت کی قسم کی خاصیت کو مدنظر رکھتے ہوئے۔ مستقبل میں ، حکمت عملی کو دیگر تکنیکی اشارے متعارف کرانے ، اسٹاپ نقصان کی شرح کو متحرک طور پر ایڈجسٹ کرنے ، تجارت کی قسم کی خصوصیات کے لئے خطرے سے متعلق ماڈیول شامل کرنے وغیرہ کے ذریعہ بہتر بنایا جاسکتا ہے تاکہ حکمت عملی کی استحکام اور منافع کو بہتر بنایا جاسکے۔
//@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))