
اس حکمت عملی میں اے ٹی آر ((اوسط حقیقی لہر) اور ای ایم اے ((انڈیکس کی حرکت پذیر اوسط) دو اشارے استعمال کیے جاتے ہیں ، تاکہ مارکیٹ میں اتار چڑھاؤ کو متحرک طور پر ایڈجسٹ کیا جاسکے۔ حکمت عملی کا بنیادی نظریہ یہ ہے کہ: اے ٹی آر اشارے کا استعمال مارکیٹ میں اتار چڑھاؤ کی پیمائش کرنے اور اتار چڑھاؤ کی مقدار کے مطابق اسٹاپ اسٹاپ نقصان کا مقام مرتب کرنے کے لئے کیا جائے۔ اس کے ساتھ ہی ای ایم اے اشارے کا استعمال تجارت کی سمت کا تعین کرنے کے لئے کیا جائے ، جب قیمت ای ایم اے کو توڑنے پر زیادہ آرڈر کھلے اور ای ایم اے کو توڑنے پر خالی آرڈر کھلے۔ یہ حکمت عملی مارکیٹ میں اتار چڑھاؤ کی تبدیلیوں کے مطابق اسٹاپ نقصان کے مقام کو خود بخود ایڈجسٹ کرنے کے قابل ہے ، تاکہ متحرک خطرے کو کنٹرول کیا جاسکے۔
اس حکمت عملی میں اے ٹی آر اور ای ایم اے دونوں اشارے استعمال کیے جاتے ہیں تاکہ مارکیٹ میں اتار چڑھاؤ کی تبدیلیوں کو متحرک طور پر ایڈجسٹ کیا جاسکے ، جبکہ ای ایم اے اشارے کو تجارت کی سمت کا فیصلہ کرنے کے لئے استعمال کیا جاتا ہے۔ حکمت عملی میں مضبوط موافقت اور رجحان سے باخبر رہنے کی صلاحیت ہے ، لیکن پیرامیٹرز کی ترتیب ، اتار چڑھاؤ کی مارکیٹ اور رجحان کی تبدیلی کے دوران کچھ خطرہ لاحق ہوسکتا ہے۔ مستقبل میں اس حکمت عملی کی کارکردگی کو مزید تکنیکی اشارے متعارف کرانے ، اسٹاپ نقصان کے الگورتھم کو بہتر بنانے ، انڈیکس کو بہتر بنانے اور پوزیشن مینجمنٹ کے طریقوں کو شامل کرنے کے ذریعہ بہتر بنایا جاسکتا ہے۔
/*backtest
start: 2024-04-27 00:00:00
end: 2024-05-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy(title='UT MB&SS Bot', overlay=true)
// Inputs
a = input(1, title='Key Value. \'This changes the sensitivity\'')
c = input(10, title='ATR Period')
h = input(false, title='Signals from Heikin Ashi Candles')
stoploss = input(2.0, title='Stop Loss (ATR Multiples)')
xATR = ta.atr(c)
nLoss = a * xATR
src = h ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close, lookahead=barmerge.lookahead_off) : close
var xATR_trailing_stop = 0.0
iff_1 = src > nz(xATR_trailing_stop[1], 0) ? src - nLoss : src + nLoss
iff_2 = src < nz(xATR_trailing_stop[1], 0) and src[1] < nz(xATR_trailing_stop[1], 0) ? math.min(nz(xATR_trailing_stop[1]), src + nLoss) : iff_1
xATR_trailing_stop := src > nz(xATR_trailing_stop[1], 0) and src[1] > nz(xATR_trailing_stop[1], 0) ? math.max(nz(xATR_trailing_stop[1]), src - nLoss) : iff_2
pos = 0
iff_3 = src[1] > nz(xATR_trailing_stop[1], 0) and src < nz(xATR_trailing_stop[1], 0) ? -1 : nz(pos[1], 0)
pos := src[1] < nz(xATR_trailing_stop[1], 0) and src > nz(xATR_trailing_stop[1], 0) ? 1 : iff_3
xcolor = pos == -1 ? color.red : pos == 1 ? color.green : color.blue
ema = ta.ema(src, 1)
above = ta.crossover(ema, xATR_trailing_stop)
below = ta.crossover(xATR_trailing_stop, ema)
buy = src > xATR_trailing_stop and above
sell = src < xATR_trailing_stop and below
barbuy = src > xATR_trailing_stop
barsell = src < xATR_trailing_stop
plotshape(buy, title='Buy', text='Buy', style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), textcolor=color.new(color.white, 0), size=size.tiny)
plotshape(sell, title='Sell', text='Sell', style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), size=size.tiny)
barcolor(barbuy ? color.green : na)
barcolor(barsell ? color.red : na)
stop_level = pos == 1 ? xATR_trailing_stop - stoploss * xATR : xATR_trailing_stop + stoploss * xATR
stop_level := math.max(stop_level, nz(stop_level[1]))
if pos == 1
strategy.exit('Exit Long', 'UT Long', stop=stop_level)
else if pos == -1
strategy.exit('Exit Short', 'UT Short', stop=stop_level)
if buy
strategy.entry("Enter Long", strategy.long)
else if sell
strategy.entry("Enter Short", strategy.short)