اے ٹی آر اشارے پر مبنی پیرابولک SAR ٹریلنگ اسٹاپ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-09-13 15:53:00
ٹیگز:

اس حکمت عملی کا نام ہے پیرابولک SAR ٹریلنگ اسٹاپ حکمت عملی اے ٹی آر اشارے پر مبنی ۔ یہ مارکیٹ کی اتار چڑھاؤ کو تبدیل کرنے کے ل Para پیرابولک SAR کے تیز رفتار عنصر کو ایڈجسٹ کرنے کے لئے اے ٹی آر اشارے کا استعمال کرتا ہے۔

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

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

اس حکمت عملی کا فائدہ یہ ہے کہ مارکیٹ کی اتار چڑھاؤ کی بنیاد پر روایتی پیرابولک SAR اسٹاپ متحرک ہوجاتا ہے۔ لیکن اے ٹی آر پیرامیٹرز کو بہتر بنانے کی ضرورت ہے ، اور اسٹاپ لائن جلد ہی خلاف ورزی کا شکار ہوسکتی ہے۔

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


/*backtest
start: 2023-08-13 00:00:00
end: 2023-09-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="ATR Parabolic SAR Strategy [QuantNomad]", shorttitle="ATR PSAR Strategy [QN]", overlay=true, default_qty_type = strategy.percent_of_equity,  default_qty_value = 100)

atr_length = input(14)
start      = input(0.02)
increment  = input(0.02)
maximum    = input(0.2)
entry_bars = input(1, title = "Entry on Nth trend bar") 

atr = atr(atr_length)

atr := na(atr) ? tr : atr

psar        = 0.0 // PSAR
af          = 0.0 // Acceleration Factor
trend_dir   = 0   // Current direction of PSAR
ep          = 0.0 // Extreme point
trend_bars  = 0

sar_long_to_short = trend_dir[1] == 1  and close <= psar[1] // PSAR switches from long to short
sar_short_to_long = trend_dir[1] == -1 and close >= psar[1] // PSAR switches from short to long

trend_change = barstate.isfirst[1] or sar_long_to_short or sar_short_to_long

// Calculate trend direction
trend_dir    :=  barstate.isfirst[1] and close[1]  > open[1] ?  1 : 
                 barstate.isfirst[1] and close[1] <= open[1] ? -1 : 
                 sar_long_to_short ? -1 : 
                 sar_short_to_long ?  1 : nz(trend_dir[1])

trend_bars := sar_long_to_short ? -1 : 
              sar_short_to_long ?  1 : 
              trend_dir ==  1   ? nz(trend_bars[1]) + 1 : 
              trend_dir == -1   ? nz(trend_bars[1]) - 1 : 
              nz(trend_bars[1])

// Calculate  Acceleration Factor
af := trend_change ? start : 
   (trend_dir == 1 and high > ep[1]) or  
   (trend_dir == -1 and low < ep[1]) ? 
   min(maximum, af[1] + increment) : 
   af[1]

// Calculate extreme point
ep := trend_change and trend_dir == 1 ? high :  
   trend_change and trend_dir == -1 ? low : 
   trend_dir == 1 ? max(ep[1], high) : 
   min(ep[1], low)

// Calculate PSAR
psar :=  barstate.isfirst[1] and close[1]  > open[1] ? low[1]  : 
         barstate.isfirst[1] and close[1] <= open[1] ? high[1] : 
         trend_change ? ep[1] :    
         trend_dir == 1 ? psar[1] + af * atr : 
                          psar[1] - af * atr

plot(psar, style=plot.style_cross, color=trend_dir == 1 ? color.green : color.red,  linewidth = 2)


// Strategy 
strategy.entry("Long",  true,  when = trend_bars ==  entry_bars)
strategy.entry("Short", false, when = trend_bars == -entry_bars)

مزید