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