
بہترین اے ٹی آر اسٹاپ نقصان کی ضرب کی حکمت عملی ایک رجحان کی پیروی کی حکمت عملی ہے جو اوسط حقیقی طول و عرض ((اے ٹی آر) کے ضرب کو استعمال کرتی ہے تاکہ اسٹاپ نقصان کا مقام مرتب کیا جاسکے ، متحرک ایڈجسٹ رسک۔ جب قیمت کا رجحان بدل جاتا ہے تو ، یہ بروقت روک سکتا ہے اور بڑے نقصان سے بچ سکتا ہے۔
یہ حکمت عملی سب سے پہلے ایک سادہ حرکت پذیر اوسط کا حساب لگاتی ہے جس میں ایک تیز رفتار SMA اور ایک سست رفتار SMA ہوتا ہے۔ جب تیز رفتار SMA پر سست رفتار SMA ہوتا ہے تو زیادہ ہوتا ہے اور جب تیز رفتار SMA کے نیچے سست رفتار SMA ہوتا ہے تو کم ہوتا ہے۔
داخل ہونے کے بعد ، یہ اصل وقت میں اے ٹی آر کی مقدار کی نگرانی کرے گا۔ اے ٹی آر کا مطلب ہے کہ پچھلے ایک خاص دورانیے میں اوسط اتار چڑھاؤ کی شدت۔ اس حکمت عملی سے ہمیں اے ٹی آر کی مدت کی لمبائی (ڈیفالٹ 14) اور ضرب (ڈیفالٹ 2) ترتیب دینے کی اجازت ملتی ہے۔ نظام داخل ہونے پر اے ٹی آر کی قیمت کا حساب لگاتا ہے ، اور پھر اس کی ترتیب کے ضرب سے ضرب ، اس کی روک تھام کے فاصلے کے طور پر۔
مثال کے طور پر ، اگر داخلہ کے بعد اے ٹی آر 50 پوائنٹس ہے اور ضرب 2 پر مقرر کیا گیا ہے تو ، اسٹاپ نقصان کا فاصلہ 100 پوائنٹس ہے۔ اگر قیمت 100 پوائنٹس سے زیادہ چلتی ہے تو ، اسٹاپ نقصان کا حکم متحرک ہوجائے گا۔ یہ وقت پر اسٹاپ نقصان کو روک سکتا ہے اور زیادہ نقصان سے بچ سکتا ہے۔
اس حکمت عملی میں رجحانات کا بھی خیال رکھا گیا ہے۔ طویل پوزیشن اسٹاپ صرف اس صورت میں چالو کیا جاتا ہے جب خریدنے کا سگنل ملاپ کے رجحان میں ہوتا ہے۔ مختصر پوزیشن کا سگنل ملاپ کے رجحان میں ہوتا ہے۔
اسٹاپ نقصان کی لائن چارٹ پر ڈرائنگ کی جاتی ہے اور ہم اس کی اصل وقت میں تصدیق کرسکتے ہیں۔ جب اسٹاپ نقصان کی شرائط کو متحرک کیا جاتا ہے تو ، اس کی پوزیشن کو بھی سسٹم کے ذریعہ خود بخود ختم کردیا جاتا ہے۔
اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ اسٹاپ ڈسٹینسج کو متحرک طور پر ایڈجسٹ کیا جاسکتا ہے ، جس سے مارکیٹ کی اتار چڑھاؤ کی تبدیلی کے مطابق خود بخود خطرے کی چوٹی میں ترمیم کی جاسکتی ہے۔ جب اتار چڑھاؤ بڑھتا ہے تو ، اسٹاپ ڈسٹینسج بھی بڑھ جاتا ہے ، جس سے اسٹاپ ڈسٹینسج کو توڑنے کا امکان کم ہوجاتا ہے۔ اور کم اتار چڑھاؤ والی مارکیٹوں میں ، اسٹاپ ڈسٹینسج بھی کم ہوجاتا ہے۔
فکسڈ اسٹاپ نقصان کے مقابلے میں ، یہ طریقہ رجحانات کی پیروی کرتے ہوئے ، انفرادی نقصان کو مؤثر طریقے سے کنٹرول کرسکتا ہے۔ یہ منافع کی جگہ کی ضمانت دیتا ہے اور خطرے کے انتظام پر بھی توجہ دیتا ہے۔
اس کے علاوہ ، رجحانات کے ساتھ مل کر ، اس طرح کے اسٹاپ نقصان کو کم کیا جاسکتا ہے جب زلزلے کے نتیجے میں خطے میں ہلچل پڑتی ہے۔
اس حکمت عملی کا بنیادی خطرہ یہ ہے کہ پوزیشن رکھنے کے دوران قیمت کی مختصر لائن پیچھے ہٹ جائے ، جس سے روک تھام کے احکامات کو متحرک کرنے کا خطرہ ہے۔ خاص طور پر جب اے ٹی آر کا دورانیہ بہت کم ہوتا ہے تو ، روک تھام کا فاصلہ مختصر مدت کے اتار چڑھاؤ کے اثرات کو مکمل طور پر فلٹر نہیں کرسکتا ہے۔
ایک اور خطرہ یہ ہے کہ ، شدید حالات میں ، قیمتوں میں چھلانگ لگانے والی حرکتیں براہ راست روک تھام کی لائن کو توڑ سکتی ہیں۔ اس وقت زیادہ سے زیادہ اسٹاپ نقصان کی ضرب کی ضرورت ہوتی ہے ، لیکن اس کا مطلب یہ بھی ہے کہ منافع کی گنجائش کم ہوجاتی ہے۔
آخر میں ، اس حکمت عملی میں اے ٹی آر کی قدر پر نائٹ ڈیسک اور پری ڈیسک ٹریڈنگ کے اثرات کو مدنظر نہیں رکھا گیا ہے۔ اس کے نتیجے میں حکمت عملی کے حساب سے اے ٹی آر کے اعداد و شمار کو کھولنے یا بند ہونے پر غلط سمجھا جاسکتا ہے۔
اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:
اے ٹی آر سائیکل پیرامیٹرز کو بہتر بنانا ، مختلف مارکیٹوں میں بہترین پیرامیٹرز کا مجموعہ جانچنا
فکسڈ ضرب اور متحرک تبدیلی ضرب سیٹ پر منافع کا موازنہ
ATR کا حساب رات کے کھلنے اور کھلنے سے پہلے کے اعداد و شمار کے ساتھ مل کر کھلنے کی قیمتوں میں اضافے کے اثرات کو کم کرنا
اے ٹی آر کی شرائط مقرر کریں: صرف ایک مخصوص سطح تک پہنچنے کے بعد اے ٹی آر کو چالو کریں ، تاکہ کم اتار چڑھاؤ والے بازاروں میں غیر ضروری نقصان سے بچا جاسکے
مزید فلٹرنگ شرائط کے ساتھ: جیسے بڑے پیمانے پر رجحانات، توانائی کی پیمائش، وغیرہ.
بہترین اے ٹی آر اسٹاپ نقصان کی ضرب کی حکمت عملی اسٹاپ نقصان کے فاصلے کو متحرک طور پر ایڈجسٹ کرکے رجحان سے باخبر رہنے اور خطرے پر قابو پانے کے مابین ایک موثر توازن حاصل کرتی ہے۔ اس سے فکسڈ اسٹاپ نقصان کے فاصلے کے مقابلے میں ، اس سے منافع کی گنجائش کو یقینی بناتے ہوئے ، انفرادی نقصان کو مؤثر طریقے سے محدود کیا جاسکتا ہے۔
یقینا ، کچھ ممکنہ خطرات ، جیسے کہ قیمتوں میں اضافے ، زیادہ حساس اسٹاپ نقصانات وغیرہ پر توجہ دینے کی ضرورت ہے۔ ہم حکمت عملی کی استحکام اور منافع کی شرح کو بڑھانے کے لئے متعدد سطحوں پر بہتر بنانے کے لئے جاری رکھ سکتے ہیں۔
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//@author=Daveatt
//This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
SystemName = "BEST ATR Stop Multiple Strategy"
TradeId = "BEST"
InitCapital = 100000
InitPosition = 100
InitCommission = 0.075
InitPyramidMax = 1
CalcOnorderFills = true
CalcOnTick = true
DefaultQtyType = strategy.fixed
DefaultQtyValue = strategy.fixed
Precision = 2
Overlay=true
strategy(title=SystemName, shorttitle=SystemName, overlay=Overlay )
fastSMAperiod = input(defval=15, title='Fast SMA', type=input.integer, minval=2, step=1)
slowSMAperiod = input(defval=45, title='Slow SMA', type=input.integer, minval=2, step=1)
src = close
// Calculate moving averages
fastSMA = sma(src, fastSMAperiod)
slowSMA = sma(src, slowSMAperiod)
// Calculate trading conditions
enterLong = crossover(fastSMA, slowSMA)
enterShort = crossunder(fastSMA, slowSMA)
// trend states
since_buy = barssince(enterLong)
since_sell = barssince(enterShort)
buy_trend = since_sell > since_buy
sell_trend = since_sell < since_buy
is_signal = enterLong or enterShort
// get the entry price
entry_price = valuewhen(enterLong or enterShort, src, 0)
// Plot moving averages
plot(series=fastSMA, color=color.teal)
plot(series=slowSMA, color=color.orange)
// Plot the entries
plotshape(enterLong, style=shape.circle, location=location.belowbar, color=color.green, size=size.small)
plotshape(enterShort, style=shape.circle, location=location.abovebar, color=color.red, size=size.small)
///////////////////////////////
//======[ Trailing STOP ]======//
///////////////////////////////
// use SL?
useSL = input(true, "Use stop Loss")
// ATR multiple Stop
stop_atr_length = input(14,title="ATR Length", minval=1, type=input.integer)
stop_atr_mult = input(2,title="ATR Multiple", minval=0.05, step=0.1, type=input.float)
// Global STOP
stop_price = 0.0, stop_price := nz(stop_price[1])
// STOP ATR
var stop_atr = 0.0
var entry_stop_atr = 0.0
stop_atr := nz(atr(stop_atr_length))
if enterLong or enterShort
entry_stop_atr := stop_atr * stop_atr_mult
// display the ATR value multiple
plotshape(enterLong, title='ATR Long Stop value', style=shape.labelup,
location=location.bottom, color=color.green, transp=0, text='', textcolor=color.navy, editable=true, size=size.small, show_last=1, size=size.small)
// var label atr_long_label = na
// var label atr_short_label = na
lapos_y_entry_up = lowest(30)
lapos_y_entry_dn = highest(30)
// text_label = "ATR value: " + tostring(stop_atr, '#.#') + "\n\nATR Multiple value: " + tostring(entry_stop_atr, '#.#')
// if enterLong
// label.delete(atr_long_label)
// atr_long_label := label.new(bar_index, lapos_y_entry_up, text=text_label,
// xloc=xloc.bar_index, yloc=yloc.price, color=color.green, style=label.style_labelup, textcolor=color.white,
// size=size.normal)
// if enterShort
// label.delete(atr_short_label)
// atr_short_label := label.new(bar_index, lapos_y_entry_dn, text=text_label,
// xloc=xloc.bar_index, yloc=yloc.price, color=color.red, style=label.style_labeldown, textcolor=color.black,
// size=size.normal)
// Determine trail stop loss prices
longStopPrice = 0.0, shortStopPrice = 0.0
longStopPrice := if useSL and buy_trend
stopValue = entry_price - entry_stop_atr
else
0
shortStopPrice := if useSL and sell_trend
stopValue = entry_price + entry_stop_atr
else
999999
//////////////////////////////////////////////////////////////////////////////////////////
//*** STOP LOSS HIT CONDITIONS TO BE USED IN ALERTS ***//
//////////////////////////////////////////////////////////////////////////////////////////
cond_long_stop_loss_hit = useSL and buy_trend and crossunder(low, longStopPrice[1])
cond_short_stop_loss_hit = useSL and sell_trend and crossover(high, shortStopPrice[1])
// Plot stop loss values for confirmation
plot(series=useSL and buy_trend and low >= longStopPrice
? longStopPrice : na,
color=color.fuchsia, style=plot.style_cross,
linewidth=2, title="Long Trail Stop")
plot(series=useSL and sell_trend and high <= shortStopPrice
? shortStopPrice : na,
color=color.fuchsia, style=plot.style_cross,
linewidth=2, title="Short Trail Stop")
close_long = cond_long_stop_loss_hit
close_short = cond_short_stop_loss_hit
// Submit entry orders
strategy.entry(TradeId + " L", long=true, when=enterLong)
strategy.close(TradeId + " L", when=close_long)
//if (enterShort)
strategy.entry(TradeId + " S", long=false, when=enterShort)
strategy.close(TradeId + " S", when=close_short)