
یہ اے ٹی آر (اوسط حقیقی رینج) اشارے پر مبنی ایک ٹرینڈ ٹریکنگ حکمت عملی ہے جس میں متحرک اسٹاپ اور اوسط لائن کراس سگنل شامل ہیں۔ یہ حکمت عملی مارکیٹ میں اتار چڑھاؤ کا تعین کرنے کے لئے اے ٹی آر کا حساب لگاتی ہے اور اس معلومات کو متحرک ٹریکنگ اسٹاپ لائن بنانے کے لئے استعمال کرتی ہے۔ جب قیمت ای ایم اے (موبائل ایوریج) کے ساتھ اے ٹی آر ٹریکنگ اسٹاپ لائن کو پار کرتی ہے تو ، ایک تجارتی سگنل پیدا ہوتا ہے۔ حکمت عملی میں عام K لائن یا امن K لائن کا استعمال کرتے ہوئے حساب کتاب کرنے کا آپشن بھی فراہم کیا گیا ہے ، جس سے حکمت عملی میں لچک پیدا ہوتی ہے۔
اس حکمت عملی کا بنیادی منطق مندرجہ ذیل کلیدی حسابات پر مبنی ہے:
یہ ایک مکمل تجارتی حکمت عملی ہے جس میں متحرک ٹریکنگ اسٹاپ نقصانات اور یکساں لائن سسٹم شامل ہیں۔ اے ٹی آر اشارے کے ذریعہ مارکیٹ میں اتار چڑھاؤ کی خصوصیات کو پکڑنے کے لئے ، یکساں لائن کراسنگ کا استعمال کرتے ہوئے تجارتی سگنل فراہم کرنے کے لئے ، ایک منطقی سخت تجارتی نظام تشکیل دیا گیا ہے۔ حکمت عملی کی طاقت اس کی متحرک موافقت اور خطرے پر قابو پانے کی صلاحیت میں ہے ، لیکن اس کے ساتھ ہی افقی مارکیٹ کی کارکردگی پر بھی توجہ دینے کی ضرورت ہے۔ تجویز کردہ اصلاحی سمت کے ساتھ ، حکمت عملی میں مزید بہتری کی گنجائش ہے۔
/*backtest
start: 2024-05-15 00:00:00
end: 2024-08-08 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy(title="UT Bot Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Inputs
a = input.float(1, title="Key Value. 'This changes the sensitivity'")
c = input.int(10, title="ATR Period")
h = input.bool(false, title="Signals from Heikin Ashi Candles")
// Calculate ATR
xATR = ta.atr(c)
nLoss = a * xATR
// Source for calculations
src = h ? request.security(syminfo.tickerid, timeframe.period, hlc3) : close
// ATR Trailing Stop logic
var float xATRTrailingStop = na
if (not na(xATRTrailingStop[1]) and src > xATRTrailingStop[1] and src[1] > xATRTrailingStop[1])
xATRTrailingStop := math.max(xATRTrailingStop[1], src - nLoss)
else if (not na(xATRTrailingStop[1]) and src < xATRTrailingStop[1] and src[1] < xATRTrailingStop[1])
xATRTrailingStop := math.min(xATRTrailingStop[1], src + nLoss)
else
xATRTrailingStop := src > xATRTrailingStop[1] ? src - nLoss : src + nLoss
// Position logic
var int pos = 0
if (not na(xATRTrailingStop[1]) and src[1] < xATRTrailingStop[1] and src > xATRTrailingStop[1])
pos := 1
else if (not na(xATRTrailingStop[1]) and src[1] > xATRTrailingStop[1] and src < xATRTrailingStop[1])
pos := -1
else
pos := pos[1]
xcolor = pos == -1 ? color.red : pos == 1 ? color.green : color.blue
// Entry and Exit Signals
ema = ta.ema(src, 1)
above = ta.crossover(ema, xATRTrailingStop)
below = ta.crossover(xATRTrailingStop, ema)
buy = src > xATRTrailingStop and above
sell = src < xATRTrailingStop and below
// Strategy Execution
if (buy)
strategy.entry("UT Long", strategy.long)
if (sell)
strategy.entry("UT Short", strategy.short)
// Plotting and Alerts
plotshape(buy, title="Buy", text='Buy', style=shape.labelup, location=location.belowbar, color=color.green, textcolor=color.white, size=size.tiny)
plotshape(sell, title="Sell", text='Sell', style=shape.labeldown, location=location.abovebar, color=color.red, textcolor=color.white, size=size.tiny)
barcolor(src > xATRTrailingStop ? color.green : src < xATRTrailingStop ? color.red : na)
alertcondition(buy, title="UT Long", message="UT Long")
alertcondition(sell, title="UT Short", message="UT Short")