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