یہ بریک آؤٹ اور اتار چڑھاؤ اسٹاپ پر مبنی رجحان کی پیروی کرنے والی حکمت عملی ہے۔ حکمت عملی متحرک اسٹاپ نقصان لائن کی قیمت بریک آؤٹ کے ذریعہ رجحان کی سمت کی نشاندہی کرتی ہے۔ جب قیمت اسٹاپ نقصان لائن میں داخل ہوتی ہے تو یہ تجارت میں داخل ہوتی ہے اور رجحانات کو ٹریک کرنے اور منافع میں تالا لگانے کے لئے اسٹاپ نقصان لائن کا استعمال کرتی ہے۔ حکمت عملی کا مقصد متحرک اسٹاپ کے ساتھ خطرہ کو کنٹرول کرتے ہوئے درمیانی اور طویل مدتی رجحانات کو پکڑنا ہے۔
اس حکمت عملی میں رجحان کی سمت کا تعین کرنے اور اسٹاپ نقصان کو ٹریک کرنے کے لئے اتار چڑھاؤ اسٹاپ اشارے کا استعمال کیا جاتا ہے۔ اتار چڑھاؤ اسٹاپ قیمت میں اتار چڑھاؤ کی حد کی بنیاد پر متحرک اسٹاپ نقصان کی لائن کا حساب لگاتا ہے۔ مخصوص اقدامات یہ ہیں:
سٹاپ نقصان لائن قیمت کے ساتھ اوپر اور نیچے اتار چڑھاؤ کرتی ہے، ایک متحرک چینل بناتی ہے۔
جب قیمت اسٹاپ نقصان کی لائن میں داخل ہوتی ہے تو ، اس سے رجحان کی تبدیلی کا اشارہ ہوتا ہے۔ حکمت عملی پوزیشن کھولے گی:
کھلنے کی پوزیشن کے بعد، حکمت عملی لائن کے ساتھ سٹاپ نقصان کی پٹریوں:
جب قیمت دوبارہ سٹاپ نقصان کی لائن پر پہنچ جائے گی تو پوزیشن بند ہو جائے گی۔
اس طرح، حکمت عملی کو روکنے کے ساتھ خطرے کو کنٹرول کرتے ہوئے بروقت انداز میں رجحانات کی پیروی کر سکتی ہے.
اس حکمت عملی کے مندرجہ ذیل فوائد ہیں:
اس کے علاوہ کچھ خطرات پر بھی غور کرنا چاہئے:
حل:
اسٹریٹیجی کو مندرجہ ذیل پہلوؤں میں مزید بہتر بنایا جاسکتا ہے:
مجموعی طور پر ، اتار چڑھاؤ کی روک تھام کے ساتھ یہ رفتار توڑنے کی حکمت عملی ایک بہت ہی عملی رجحان کی پیروی کرنے والا نظام ہے۔ یہ رجحان کے الٹ جانے کے مواقع کو حاصل کرسکتا ہے اور رجحان کی پیروی کرسکتا ہے جبکہ متحرک رکاوٹوں کے ساتھ خطرہ کو مؤثر طریقے سے کنٹرول کرتا ہے۔ پیرامیٹرز کی مناسب ترتیب کے ساتھ ، یہ رجحان سازی کی منڈیوں کے دوران اچھی واپسی حاصل کرسکتا ہے۔ لیکن کچھ مسائل جیسے زیادہ حساس رکاوٹوں ، اعلی تجارتی تعدد وغیرہ کو حل کرنے کی ضرورت ہے۔ مزید اصلاحات اسے ایک موثر اور مضبوط مقدار کی تجارتی حکمت عملی میں تبدیل کرسکتی ہیں۔
/*backtest start: 2023-11-11 00:00:00 end: 2023-11-12 00:00:00 period: 3m basePeriod: 1m 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/ //@version=4 strategy(shorttitle='Volatility Stop Strategy',title='Volatility Stop Strategy (by Coinrule)', overlay=true, initial_capital = 100, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value=0.1) // Works better on 3h, 1h, 2h, 4h // Best time frame 2H //Backtest dates fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12) fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31) fromYear = input(defval = 2021, title = "From Year", type = input.integer, minval = 1970) thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12) thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31) thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970) showDate = input(defval = true, title = "Show Date Range", type = input.bool) start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create function "within window of time" length = input(20, "Length", minval = 2) src = input(close, "Source") factor = input(3.0, "vStop Multiplier", minval = 0.25, step = 0.25) volStop(src, atrlen, atrfactor) => var max = src var min = src var uptrend = true var stop = 0.0 atrM = nz(atr(atrlen) * atrfactor, tr) max := max(max, src) min := min(min, src) stop := nz(uptrend ? max(stop, max - atrM) : min(stop, min + atrM), src) uptrend := src - stop >= 0.0 if uptrend != nz(uptrend[1], true) max := src min := src stop := uptrend ? max - atrM : min + atrM [stop, uptrend] [vStop, uptrend] = volStop(src, length, factor) //Entry strategy.entry(id="long", long = true, when = crossover(close, vStop) and window()) //Exit strategy.close("long", when = crossunder(close, vStop)) plot(vStop,"Vstop", color.black, linewidth=2)