بہترین اے ٹی آر سٹاپ ملٹیپل حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-02-21 14:24:22
ٹیگز:

img

جائزہ

بیسٹ اے ٹی آر اسٹاپ ملٹیپل حکمت عملی ایک رجحان کی پیروی کرنے والی حکمت عملی ہے جو اوسط حقیقی رینج (اے ٹی آر) کے ضربوں کا استعمال اسٹاپ نقصان پوائنٹس کو مرتب کرنے اور متحرک طور پر خطرہ کو ایڈجسٹ کرنے کے لئے کرتی ہے۔ یہ بڑے نقصانات سے بچنے کے لئے قیمت کے رجحانات میں تبدیلی کے وقت بروقت طریقے سے پوزیشنوں سے باہر نکل سکتی ہے۔

حکمت عملی منطق

یہ حکمت عملی سب سے پہلے تیز اور سست ایس ایم اے ادوار کے سادہ چلنے والے اوسط کا حساب لگاتی ہے۔ جب تیز ایس ایم اے سست ایس ایم اے پر عبور کرتی ہے تو یہ لمبی ہوتی ہے ، اور جب تیز ایس ایم اے سست ایس ایم اے سے نیچے عبور کرتی ہے تو مختصر ہوجاتی ہے۔

داخل ہونے کے بعد ، یہ حقیقی وقت میں اے ٹی آر کی قیمت کی نگرانی کرتا ہے۔ اے ٹی آر ایک خاص نظرثانی کی مدت میں اوسط اتار چڑھاؤ کی نمائندگی کرتا ہے۔ حکمت عملی ہمیں اے ٹی آر کی مدت (ڈیفالٹ 14) اور ضرب (ڈیفالٹ 2) مقرر کرنے کی اجازت دیتی ہے۔ نظام داخل ہونے پر اے ٹی آر کی قیمت کا حساب لگاتا ہے ، پھر اسے مقررہ ضرب سے ضرب دیتا ہے۔

مثال کے طور پر ، اگر اندراج کے بعد اے ٹی آر 50 پوائنٹس ہے ، اور ضارب 2 پر مقرر کیا گیا ہے ، تو اسٹاپ فاصلہ 100 پوائنٹس ہوگا۔ اگر قیمت پھر 100 پوائنٹس سے زیادہ چلتی ہے تو ، اسٹاپ نقصان کا آرڈر ٹرگر ہوجائے گا۔ اس سے زیادہ نقصانات سے بچنے کے لئے بروقت اسٹاپ نقصانات کی اجازت ملتی ہے۔

حکمت عملی میں رجحان کا تعین بھی شامل ہے۔ لانگ اسٹاپ نقصان صرف اس وقت قابل عمل ہوتا ہے جب خریدنے کا اشارہ اوپر کے رجحان سے ملتا ہے۔ شارٹ اسٹاپ نقصان نیچے کے رجحان سے ملتا ہے۔

اسٹاپ نقصان کی لائنیں چارٹ پر دکھائی جاتی ہیں تاکہ ہم انہیں حقیقی وقت میں تصدیق کرسکیں۔ جب اسٹاپ نقصان کی شرائط کو متحرک کیا جاتا ہے تو ، متعلقہ پوزیشنیں خود بخود سسٹم کے ذریعہ بند ہوجاتی ہیں۔

فوائد کا تجزیہ

اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ یہ اسٹاپ نقصان کے فاصلے کو متحرک طور پر ایڈجسٹ کرتا ہے اور مارکیٹ میں اتار چڑھاؤ کی تبدیلیوں کی بنیاد پر خود بخود رسک ایکسپوزر میں ترمیم کرتا ہے۔ جب اتار چڑھاؤ بڑھتا ہے تو ، اسٹاپ نقصان کا امکان بھی بڑھ جاتا ہے ، جس سے اسٹاپ نقصان کا خطرہ کم ہوجاتا ہے۔ کم اتار چڑھاؤ والے بازاروں میں ، اسٹاپ فاصلہ کم ہوجاتا ہے۔

فکسڈ اسٹاپ نقصان کے فاصلے کے مقابلے میں، یہ نقطہ نظر مؤثر طریقے سے ٹریڈنگ کی بنیاد پر نقصانات کو کنٹرول کرتا ہے جبکہ رجحانات کو ٹریک کرتا ہے۔ یہ منافع کی جگہ کے ساتھ ساتھ خطرے کا انتظام بھی یقینی بناتا ہے۔

اس کے علاوہ، رجحان کے تعین کے ساتھ مل کر، اس طرح کے سٹاپ نقصان کے طریقوں کو استحکام کے علاقوں میں whipsaws کی طرف سے روکنے کے امکانات کو کم کر سکتا ہے.

خطرے کا تجزیہ

اس حکمت عملی کا بنیادی خطرہ پوزیشن کے دوران قلیل مدتی میں قیمتوں میں کمی کا امکان ہے ، جس سے اسٹاپ نقصان شروع ہوتا ہے۔ خاص طور پر اگر اے ٹی آر کی مدت بہت کم ہے تو ، اسٹاپ فاصلے قلیل مدتی اتار چڑھاؤ کے اثرات کو مکمل طور پر فلٹر نہیں کرسکتے ہیں۔

ایک اور خطرہ یہ ہے کہ قیمتیں پرتشدد حرکتوں میں اسٹاپ نقصان کی سطح سے گزر سکتی ہیں۔ اس کے لئے اے ٹی آر کے زیادہ سے زیادہ ضرب کی ترتیبات کی ضرورت ہوگی ، لیکن اس کا مطلب یہ بھی ہے کہ منافع کی صلاحیت میں کمی واقع ہوگی۔

آخر میں ، حکمت عملی میں اے ٹی آر کی اقدار پر گھنٹوں کے بعد اور مارکیٹ سے پہلے کی تجارت کے اثرات پر غور نہیں کیا گیا ہے۔ اس سے اے ٹی آر کے اعداد و شمار کے افتتاحی یا بند ہونے پر غلط حساب لگایا جاسکتا ہے۔

اصلاح کی ہدایات

حکمت عملی کو کئی پہلوؤں میں بہتر بنایا جا سکتا ہے:

  1. ATR مدت پیرامیٹرز کو بہتر بنائیں اور مختلف مارکیٹوں کے لئے بہترین مجموعے کی جانچ کریں

  2. واپسی کے لحاظ سے فکسڈ بمقابلہ متحرک اے ٹی آر ضربوں کا موازنہ کریں

  3. کھلنے پر خلا کو کم کرنے کے لئے اے ٹی آر حساب میں بعد کے اوقات کے اعداد و شمار کو شامل کریں

  4. اے ٹی آر کے حالات مقرر کریں: صرف اس وقت رکنے کی اجازت دیں جب اے ٹی آر کچھ سطحوں تک پہنچ جائے ، کم اتار چڑھاؤ والے ماحول میں غیر ضروری رکنے سے گریز کریں۔

  5. مزید فلٹرز شامل کریں: اہم رجحانات، حجم / رفتار کے اشارے وغیرہ.

نتیجہ

بیسٹ اے ٹی آر اسٹاپ ملٹیپل حکمت عملی متحرک طور پر اسٹاپ فاصلوں کو ایڈجسٹ کرکے رجحان کی پیروی اور رسک کنٹرول کو مؤثر طریقے سے متوازن کرتی ہے۔ مقررہ اسٹاپ کے مقابلے میں ، یہ نقصانات کو مؤثر طریقے سے محدود کرتے ہوئے منافع کی صلاحیت کو یقینی بناتا ہے۔

یقینا some کچھ خطرات باقی ہیں ، جیسے قیمت کے فرق اور انتہائی حساس رکاوٹیں۔ متعدد جہتوں میں مزید اصلاحات استحکام اور منافع کو بہتر بنا سکتی ہیں۔


/*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)


مزید