
یہ حکمت عملی 5 دن کے ایکسپونینشل موونگ ایوریج (EMA) پر مبنی ٹرینڈ ٹریکنگ سسٹم ہے جو قیمت اور EMA کے درمیان پوزیشن کے تعلق کا تجزیہ کرتی ہے اور مارکیٹ کے رجحان کو سمجھنے کے لیے سٹاپ نقصان اور منافع کے اہداف کی متحرک ایڈجسٹمنٹ کو یکجا کرتی ہے۔ حکمت عملی فیصد پوزیشن کے انتظام کا طریقہ اپناتی ہے اور لین دین کی لاگت کے عوامل کو مدنظر رکھتی ہے، جس سے یہ انتہائی عملی اور لچکدار بنتی ہے۔
حکمت عملی کی بنیادی منطق قیمت اور 5 دن کے EMA کے درمیان تعامل کی بنیاد پر داخلے کے وقت کا تعین کرنا ہے۔ خاص طور پر، جب موجودہ مدت کی بلند ترین قیمت EMA سے کم ہے اور موجودہ مدت میں کوئی پیش رفت ہوتی ہے، تو نظام ایک طویل سگنل جاری کرے گا۔ ایک ہی وقت میں، حکمت عملی میں ایک اختیاری اضافی شرط بھی شامل ہے جس کے لیے سگنل کی وشوسنییتا کو بڑھانے کے لیے اختتامی قیمت کو پچھلی مدت سے زیادہ ہونا ضروری ہے۔ خطرے پر قابو پانے کے لیے، حکمت عملی دو سٹاپ لوس طریقے فراہم کرتی ہے: پچھلی کم کی بنیاد پر ڈائنامک سٹاپ لاس، اور مقررہ پوائنٹس کی بنیاد پر سٹاپ لاس۔ منافع کے اہداف خطرے کی واپسی کے تناسب کی بنیاد پر متحرک طور پر مقرر کیے جاتے ہیں، لین دین کے منافع کی صلاحیت کو یقینی بناتے ہوئے
یہ ایک اچھی طرح سے ڈیزائن کی گئی اور منطقی رجحان کی پیروی کرنے والی حکمت عملی ہے جو EMA اشارے اور قیمت کے رویے کے امتزاج کے ذریعے مارکیٹ کے رجحانات کو مؤثر طریقے سے پکڑ سکتی ہے۔ اس حکمت عملی میں رسک کنٹرول اور واپسی کے انتظام کے لیے نسبتاً مکمل طریقہ کار موجود ہے، اور یہ اصلاح کے لیے متعدد ہدایات فراہم کرتی ہے، جس میں مضبوط عملی قدر اور بہتری کی گنجائش ہے۔ اس کے بعد، حکمت عملی کے استحکام اور منافع کو ملٹی پیریڈ تجزیہ شامل کرکے، سٹاپ لاس کے طریقہ کار کو ایڈجسٹ کرکے، وغیرہ کو مزید بہتر بنایا جا سکتا ہے۔
/*backtest
start: 2024-12-29 00:00:00
end: 2025-01-05 00:00:00
period: 30m
basePeriod: 30m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Demo GPT - PowerOfStocks 5EMA", overlay=true)
// Inputs
enableSL = input.bool(false, title="Enable Extra SL")
usl = input.int(defval=5, title="SL Distance in Points", minval=1, maxval=100)
riskRewardRatio = input.int(defval=3, title="Risk to Reward Ratio", minval=3, maxval=25)
showSell = input.bool(true, title="Show Sell Signals")
showBuy = input.bool(true, title="Show Buy Signals")
buySellExtraCond = input.bool(false, title="Buy/Sell with Extra Condition")
startDate = input(timestamp("2018-01-01 00:00"), title="Start Date")
endDate = input(timestamp("2069-12-31 23:59"), title="End Date")
// EMA Calculation
ema5 = ta.ema(close, 5)
// Plot EMA
plot(ema5, "EMA 5", color=color.new(#882626, 0), linewidth=2)
// Variables for Buy
var bool longTriggered = na
var float longStopLoss = na
var float longTarget = na
// Variables for Sell (used for signal visualization but no actual short trades)
var bool shortTriggered = na
var float shortStopLoss = na
var float shortTarget = na
// Long Entry Logic
if true
if (showBuy)
longCondition = high[1] < ema5[1] and high[1] < high and (not buySellExtraCond or close > close[1])
if (longCondition and not longTriggered)
entryPrice = high[1]
stopLoss = enableSL ? low[1] - usl * syminfo.mintick : low[1]
target = enableSL ? entryPrice + (entryPrice - stopLoss) * riskRewardRatio : high[1] + (high[1] - low[1]) * riskRewardRatio
// Execute Buy Order
strategy.entry("Buy", strategy.long, stop=entryPrice)
longTriggered := true
longStopLoss := stopLoss
longTarget := target
label.new(bar_index, entryPrice, text="Buy@ " + str.tostring(entryPrice), style=label.style_label_up, color=color.green, textcolor=color.white)
// Short Signal Logic (Visual Only)
if (true)
if (showSell)
shortCondition = low[1] > ema5[1] and low[1] > low and (not buySellExtraCond or close < close[1])
if (shortCondition and not shortTriggered)
entryPrice = low[1]
stopLoss = enableSL ? high[1] + usl * syminfo.mintick : high[1]
target = enableSL ? entryPrice - (stopLoss - entryPrice) * riskRewardRatio : low[1] - (high[1] - low[1]) * riskRewardRatio
// Visual Signals Only
label.new(bar_index, entryPrice, text="Sell@ " + str.tostring(entryPrice), style=label.style_label_down, color=color.red, textcolor=color.white)
shortTriggered := true
shortStopLoss := stopLoss
shortTarget := target
// Exit Logic for Buy
if longTriggered
// Stop-loss Hit
if low <= longStopLoss
strategy.close("Buy", comment="SL Hit")
longTriggered := false
// Target Hit
if high >= longTarget
strategy.close("Buy", comment="Target Hit")
longTriggered := false
// Exit Logic for Short (Signals Only)
if shortTriggered
// Stop-loss Hit
if high >= shortStopLoss
shortTriggered := false
// Target Hit
if low <= shortTarget
shortTriggered := false