یہ حکمت عملی بنیادی طور پر ایک انکولی اسٹاپ نقصان میکانزم کو نافذ کرتی ہے جو قیمت میں اتار چڑھاؤ کی بنیاد پر اسٹاپ نقصان کی پوزیشن کو خود بخود ایڈجسٹ کرتی ہے تاکہ اسٹاپ نقصان کا بہتر اثر حاصل کیا جاسکے۔ یہ حکمت عملی مناسب اسٹاپ نقصان کی حد کا حساب لگانے کے لئے اے ٹی آر اشارے کا استعمال کرتی ہے ، اور ای ایم اے لائنوں کے ساتھ مل کر تجارتی سگنل تیار کرتی ہے۔ جب قیمت ای ایم اے لائنوں سے ٹوٹ جاتی ہے تو یہ لمبی یا مختصر پوزیشنیں کھولتی ہے ، اور اسٹاپ نقصان کو ٹریک کرنے کے لئے ایک انکولی اسٹاپ نقصان الگورتھم کا استعمال کرتی ہے۔
اس حکمت عملی میں واضح اور سادہ منطق ہے ، جس میں موافقت پذیر اے ٹی آر پر مبنی اسٹاپ نقصان اور تجارتی سگنلز کے لئے ای ایم اے کے ساتھ خطرات کا انتظام ہے۔ لیکن یہ نسبتا pas غیر فعال ہے جس میں اصلاح کے لئے بہت زیادہ گنجائش ہے۔ اس کو زیادہ فعال بنانے کے ل trend رجحانات کا فیصلہ ، متحرک پیرامیٹر ایڈجسٹمنٹ شامل کرنے پر غور کریں۔ مجموعی طور پر یہ ریورس اسٹاپ نقصان کی حکمت عملیوں کے لئے ایک اچھا خیال اور ٹیمپلیٹ کی حیثیت سے کام کرتا ہے ، لیکن پیرامیٹرز کو اندھا دھند ڈیفالٹ اقدار کو لاگو کرنے کے بجائے مختلف علامتوں کے لئے ٹون کیا جانا چاہئے۔
/*backtest start: 2023-09-07 00:00:00 end: 2023-10-07 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="UT Bot Strategy", overlay = true) //CREDITS to HPotter for the orginal code. The guy trying to sell this as his own is a scammer lol. // Inputs a = input(1, title = "Key Vaule. 'This changes the sensitivity'") c = input(10, title = "ATR Period") h = input(false, title = "Signals from Heikin Ashi Candles") //////////////////////////////////////////////////////////////////////////////// // BACKTESTING RANGE // From Date Inputs fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2019, title = "From Year", minval = 1970) // To Date Inputs toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2100, title = "To Year", minval = 1970) // Calculate start/end date and time condition startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true //////////////////////////////////////////////////////////////////////////////// xATR = atr(c) nLoss = a * xATR src = h ? security(heikinashi(syminfo.tickerid), timeframe.period, close, lookahead = false) : close xATRTrailingStop = 0.0 xATRTrailingStop := iff(src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), src - nLoss), iff(src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), src + nLoss), iff(src > nz(xATRTrailingStop[1], 0), src - nLoss, src + nLoss))) pos = 0 pos := iff(src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0), 1, iff(src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue ema = ema(src,1) above = crossover(ema, xATRTrailingStop) below = crossover(xATRTrailingStop, ema) buy = src > xATRTrailingStop and above sell = src < xATRTrailingStop and below barbuy = src > xATRTrailingStop barsell = src < xATRTrailingStop plotshape(buy, title = "Buy", text = 'Buy', style = shape.labelup, location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny) plotshape(sell, title = "Sell", text = 'Sell', style = shape.labeldown, location = location.abovebar, color= color.red, textcolor = color.white, transp = 0, size = size.tiny) barcolor(barbuy ? color.green : na) barcolor(barsell ? color.red : na) strategy.entry("long", true, when = buy and time_cond) strategy.entry("short", false, when = sell and time_cond)