اس حکمت عملی کا بنیادی خیال رجحان کی پیروی کے لئے متحرک حرکت پذیر اوسط کا استعمال کرنا ، اسٹاپ نقصان اور منافع حاصل کرنا ، اور طویل / مختصر سگنل فیصلے کے لئے ہیکن آشی موم بتی کی تکنیک کو جوڑنا ہے۔ اے ٹی آر اشارے کا استعمال متحرک حرکت پذیر اوسط اور اسٹاپ نقصان کی پوزیشن کا حساب کرنے کے لئے کیا جاتا ہے۔
حکمت عملی پہلے اے ٹی آر اشارے کا حساب لگاتی ہے ، پھر متحرک حرکت پذیر اوسط کا حساب لگانے کے لئے ان پٹ قیمت کے ماخذ اور پیرامیٹرز کو جوڑتی ہے۔ جب قیمت متحرک حرکت پذیر اوسط سے اوپر / نیچے عبور کرتی ہے تو لانگ / شارٹ سگنل تیار کیے جاتے ہیں۔ دریں اثنا ، اسٹاپ نقصان اور منافع کی پوزیشنیں ریئل ٹائم میں قیمت کی تبدیلیوں کو ٹریک کرنے کے لئے مقرر کی جاتی ہیں۔
خاص طور پر ، اے ٹی آر اشارے اور پیرامیٹر این لیس کا حساب سب سے پہلے کیا جاتا ہے۔ پھر موجودہ مدت کی قیمت اور پچھلی مدت کی اسٹاپ نقصان کی پوزیشن کا موازنہ اسٹاپ نقصان لائن کو اپ ڈیٹ کرنے کے لئے کیا جاتا ہے۔ جب قیمت پچھلی مدت کی اسٹاپ نقصان لائن سے ٹوٹ جاتی ہے تو ، طویل / مختصر سگنل پوز اور اسی طرح کے رنگ تیار کیے جاتے ہیں۔ جب تجارتی سگنل متحرک ہوتے ہیں تو ، تیر کے نشانات دکھائے جاتے ہیں۔ آخر میں اسٹاپ نقصان / منافع حاصل کرنے کی منطق کی بنیاد پر پوزیشنیں بند کردی جاتی ہیں۔
اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ قیمتوں میں ہونے والی تبدیلیوں کو حقیقی وقت میں ٹریک کرنے کے لئے متحرک حرکت پذیر اوسط کا استعمال کیا جاتا ہے۔ یہ روایتی فکسڈ حرکت پذیر اوسط سے بہتر رجحانات کو پکڑتا ہے اور اسٹاپ نقصان کے امکانات کو کم کرتا ہے۔ اس کے علاوہ ، اے ٹی آر پر مبنی اسٹاپ نقصان کو جوڑنے سے مارکیٹ میں اتار چڑھاؤ کی بنیاد پر اسٹاپ نقصان کی پوزیشن کی لچکدار ایڈجسٹمنٹ کی اجازت ملتی ہے تاکہ خطرات کو مؤثر طریقے سے کنٹرول کیا جاسکے۔
اس حکمت عملی کا بنیادی خطرہ یہ ہے کہ قیمت میں نمایاں طور پر فرق ہوسکتا ہے ، جب اسٹاپ نقصان کو نشانہ بنایا جاتا ہے تو غلط سگنل پیدا ہوجاتا ہے۔ نیز ، غیر مناسب حالت کی ترتیبات سے زیادہ کثرت سے تجارت ہوسکتی ہے۔
حل میں چلتی اوسط مدت کو بہتر بنانا ، غلط سگنلز کے امکان کو کم کرنے کے لئے اے ٹی آر اور اسٹاپ نقصان کے گتانک کو ایڈجسٹ کرنا شامل ہے۔ بہت زیادہ کثافت سے بچنے کے لئے اضافی فلٹرز شامل کیے جاسکتے ہیں۔
حکمت عملی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:
پیرامیٹرز کے بہترین مجموعے تلاش کرنے کے لئے مختلف قسم کے اور دورانیے کے چلتے ہوئے اوسط کی جانچ کریں
سٹاپ نقصان کی حساسیت کو متوازن کرنے کے لئے ATR مدت پیرامیٹر کو بہتر بنائیں
سگنل کے معیار کو بہتر بنانے کے لئے اضافی فلٹرز اور اشارے شامل کریں
خطرہ انعام تناسب کو بہتر بنانے کے لئے سٹاپ نقصان / منافع حاصل کرنے کے اقدار کو ایڈجسٹ کریں
اس حکمت عملی کا بنیادی خیال حقیقی وقت میں قیمتوں میں تبدیلیوں کو ٹریک کرنے کے لئے متحرک حرکت پذیر اوسط کا استعمال کرنا ہے ، اسٹاپ نقصان کی پوزیشنوں کو متحرک طور پر ترتیب دینے کے لئے اے ٹی آر اشارے کا استعمال کرتے ہوئے ، رجحانات کو ٹریک کرتے ہوئے خطرے کو سختی سے کنٹرول کرنا ہے۔ پیرامیٹر کی اصلاح اور اصول کو بہتر بنانے کے ذریعے ، اس حکمت عملی کو انتہائی عملی مقداری نظام میں ایڈجسٹ کیا جاسکتا ہے۔
/*backtest start: 2022-11-23 00:00:00 end: 2023-11-05 05:20:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Binance","currency":"BTC_USDT","stocks":0}] */ //@version=5 strategy(title='UT Bot v5', overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) //CREDITS to HPotter for the orginal code. The guy trying to sell this as his own is a scammer lol. //Edited and converted to @version=5 by SeaSide420 for Paperina // Inputs AllowBuy = input(defval=true, title='Allow Buy?') AllowSell = input(defval=false, title='Allow Sell?') h = input(false, title='Signals from Heikin Ashi Candles') //revclose = input(defval=true, title='Close when reverse signal?') Price = input(defval=open, title='Price Source (recommended OPEN to avoid repainting)') smoothing = input.string(title="Moving Average Type", defval="HMA", options=["SMA", "EMA", "WMA", "HMA"]) MA_Period = input(2, title='This changes the MAPeriod') a = input.float(1, title='This changes the sensitivity',step=0.1) c = input(11, title='ATR Period') TakeProfit = input.int(defval=50000, title='Take Profit ($)', minval=1) StopLoss = input.int(defval=50000, title='Stop Loss ($)', minval=1) xATR = ta.atr(c) nLoss = a * xATR src = h ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, Price, lookahead=barmerge.lookahead_off) : Price xATRTrailingStop = 0.0 iff_1 = src > nz(xATRTrailingStop[1], 0) ? src - nLoss : src + nLoss iff_2 = src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0) ? math.min(nz(xATRTrailingStop[1]), src + nLoss) : iff_1 xATRTrailingStop := src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0) ? math.max(nz(xATRTrailingStop[1]), src - nLoss) : iff_2 pos = 0 iff_3 = src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0) ? -1 : nz(pos[1], 0) pos := src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0) ? 1 : iff_3 xcolor = pos == -1 ? color.red : pos == 1 ? color.green : color.blue ma_function(src, MA_Period) => switch smoothing "SMA" => ta.sma(src, MA_Period) "EMA" => ta.ema(src, MA_Period) "WMA" => ta.wma(src, MA_Period) => ta.hma(src, MA_Period) thema = ma_function(src, MA_Period) above = ta.crossover(thema, xATRTrailingStop) below = ta.crossover(xATRTrailingStop, thema) buy = src > xATRTrailingStop and above sell = src < xATRTrailingStop and below barbuy = src > xATRTrailingStop barsell = src < xATRTrailingStop plot(thema,title="The M.A.",color=color.green,linewidth=2) plot(xATRTrailingStop,title="The M.A.",color=color.red,linewidth=2) 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(barbuy ? color.green : na) barcolor(barsell ? color.red : na) strategy.close_all(when=strategy.openprofit>TakeProfit,alert_message="Close- TakeProfit", comment = "TP") strategy.close_all(when=strategy.openprofit<StopLoss-(StopLoss*2),alert_message="Close- StopLoss", comment = "SL") strategy.close("buy", when = sell and AllowSell==false , comment = "close buy") strategy.close("sell", when = buy and AllowBuy==false, comment = "close sell") strategy.entry("buy", strategy.long, when = buy and AllowBuy) strategy.entry("sell", strategy.short, when = sell and AllowSell)