یہ قیمت کی اتار چڑھاؤ پر مبنی رجحان ٹریکنگ اسٹاپ نقصان کی حکمت عملی ہے۔ یہ قیمتوں میں اتار چڑھاؤ کے لئے اسٹاپ نقصان کی لائنیں طے کرنے کے لئے اوسط حقیقی رینج (اے ٹی آر) کا استعمال کرتا ہے۔ اے ٹی آر قیمتوں کی اتار چڑھاؤ اور خطرے کی سطح کی عکاسی کرتا ہے۔ جب قیمت اسٹاپ نقصان کی لائن سے تجاوز کرتی ہے تو ، حکمت عملی رجحان کے الٹ کا فیصلہ کرتی ہے اور پوزیشن کھولنے یا نقصانات کو روکنے کے لئے متعلقہ اقدامات کرتی ہے۔
حکمت عملی سب سے پہلے ایک خاص مدت کے دوران اوسط حقیقی رینج (اے ٹی آر) کا حساب لگاتی ہے۔ پھر موجودہ قیمت کے رجحان کی سمت کی بنیاد پر ، اگر یہ ایک اپ ٹرینڈ ہے تو ، اسٹاپ نقصان کی لکیر موجودہ اعلی ترین قیمت مائنس این گنا اے ٹی آر پر مقرر کی جاتی ہے۔ اگر یہ ایک ڈاؤن ٹرینڈ ہے تو ، اسٹاپ نقصان کی لکیر موجودہ کم ترین قیمت کے علاوہ این گنا اے ٹی آر پر مقرر کی جاتی ہے۔ اسٹاپ نقصان کی لکیر اور قیمت کے درمیان فاصلے کو کنٹرول کرنے کے لئے پیرامیٹرز کے ذریعے این ویلیو کو ایڈجسٹ کیا جاسکتا ہے۔
جب قیمت اپ ٹرینڈ یا ڈاؤن ٹرینڈ کی اسٹاپ نقصان لائن کو توڑتی ہے تو ، اس رجحان کو تبدیل ہونے کا فیصلہ کیا جاتا ہے۔ اس وقت ، حکمت عملی اسٹاپ نقصان کے لئے پوزیشنوں کو صاف کرتی ہے اور نئے رجحان کی سمت کی بنیاد پر ایک نئی اسٹاپ نقصان لائن طے کرتی ہے۔
خلاصہ یہ کہ ، حکمت عملی رجحان کی تبدیلیوں کا درست فیصلہ حاصل کرنے کے لئے اسٹاپ نقصان کی لائنیں طے کرنے کے لئے قیمت کی اتار چڑھاؤ کا استعمال کرتی ہے۔ جب رجحان بدلتا ہے تو بروقت اسٹاپ نقصان حکمت عملی کو نئے رجحان کی سمت کو سمجھنے میں مدد کرتا ہے۔
مجموعی طور پر یہ قیمت کی اتار چڑھاؤ کی بنیاد پر اسٹاپ نقصان کی لائنوں کی ترتیب کے لئے ایک اچھا الگورتھم نفاذ ہے۔ قیمت کے رجحانات کا فیصلہ کرنے میں اس کی درستگی زیادہ ہے اور یہ رجحانات کے اہم موڑ کے مقامات کو پکڑ سکتا ہے۔ یہ بہتر موافقت کے ل param پیرامیٹر ٹیوننگ کے لئے بھی کچھ گنجائش فراہم کرتا ہے۔ اسٹاپ نقصان کی حکمت عملی کے طور پر ، یہ مارکیٹ میں الٹ جانے کے خطرات سے مؤثر طریقے سے بچ سکتا ہے اور براہ راست تجارت میں لاگو کرنے کے قابل ہے۔
/*backtest start: 2022-11-30 00:00:00 end: 2023-11-30 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © laptevmaxim92 //@version=4 strategy("Volatility stop strategy", overlay=true) length = input(20) mult = input(2, step = 0.1) utp = input(false, "Use take profit?") pr = input(100, "Take profit pips") usl = input(false, "Use stop loss?") sl = input(100, "Stop loss pips") fromday = input(01, defval=01, minval=01, maxval=31, title="From Day") frommonth = input(01, defval=01, minval= 01, maxval=12, title="From Month") fromyear = input(2000, minval=1900, maxval=2100, title="From Year") today = input(31, defval=01, minval=01, maxval=31, title="To Day") tomonth = input(12, defval=12, minval=01, maxval=12, title="To Month") toyear = input(2039, minval=1900, maxval=2100, title="To Year") use_date = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)) atr_ = atr(length) max_ = 0.0 min_ = 0.0 max1 = 0.0 max1 := max(nz(max_[1]), close) min1 = 0.0 min1 := min(nz(min_[1]), close) vstop = 0.0 is_uptrend = false is_uptrend_prev = false is_uptrend_prev := nz(is_uptrend[1], true) stop = is_uptrend_prev ? max1 - mult * atr_ : min1 + mult * atr_ vstop_prev = nz(vstop[1]) vstop1 = is_uptrend_prev ? max(vstop_prev, stop) : min(vstop_prev, stop) is_uptrend := close - vstop1 >= 0 is_trend_changed = is_uptrend != is_uptrend_prev max_ := is_trend_changed ? close : max1 min_ := is_trend_changed ? close : min1 vstop := is_trend_changed ? is_uptrend ? max_ - mult * atr_ : min_ + mult * atr_ : vstop1 plot(vstop, color = is_uptrend ? color.green : color.red, linewidth=2) longCondition = is_uptrend if (longCondition and use_date) strategy.entry("BUY", strategy.long) shortCondition = not is_uptrend if (shortCondition and use_date) strategy.entry("SELL", strategy.short) if (utp and not usl) strategy.exit("TP", "BUY", profit = pr) strategy.exit("TP", "SELL", profit = pr) if (usl and not utp) strategy.exit("SL", "BUY", loss = sl) strategy.exit("SL", "SELL", loss = sl) if (usl and utp) strategy.exit("TP/SL", "BUY", loss = sl, profit = pr) strategy.exit("TP/SL", "SELL", loss = sl, profit = pr)