
ایک رجحان سے باخبر رہنے والی اسٹاپ نقصان کی واپسی کی حکمت عملی ایک ایسی حکمت عملی ہے جو رجحانات کی نشاندہی کرنے کے لئے پیرابولک ایس اے آر اشارے کا استعمال کرتی ہے اور رجحانات کی واپسی پر الٹ پوزیشن میں داخل ہوتی ہے۔ اس حکمت عملی میں ایک ہی وقت میں اسٹاپ نقصان اور اسٹاپ اسٹاپ کا طریقہ کار شامل ہوتا ہے تاکہ خطرے کو کنٹرول کیا جاسکے۔
یہ حکمت عملی موجودہ مارکیٹ کے رجحانات کا اندازہ لگانے کے لئے پیرابولک ایس اے آر اشارے کا استعمال کرتی ہے۔ پیرابولک ایس اے آر کا مکمل نام ہے پیرابولک اسٹاپ اور ریورس ، جس کا مطلب ہے کہ پیرابولک لائنیں رک گئیں اور الٹ گئیں۔ اس کی اشارے کی لائنیں قیمتوں کے چارٹ پر پیرابولک لائنوں کی ایک سیریز کی طرح ہیں ، اور پیرابولک لائن پوائنٹس ممکنہ الٹ پوائنٹس کی نمائندگی کرتے ہیں۔
جب SAR نیچے اور قیمت سے نیچے ہوتا ہے تو ، یہ ایک bullish رجحان کی نمائندگی کرتا ہے۔ جب SAR اوپر اور قیمت سے اوپر ہوتا ہے تو ، یہ ایک bearish رجحان کی نمائندگی کرتا ہے۔ حکمت عملی یہ ہے کہ موجودہ رجحان کی سمت کا فیصلہ SAR کے مقام پر کیا جائے۔
خاص طور پر ، حکمت عملی خالی ہوجاتی ہے جب SAR اوپر کی طرف بڑھتی ہے اور قیمت سے زیادہ ہوتی ہے۔ حکمت عملی زیادہ ہوتی ہے جب SAR نیچے کی طرف بڑھتی ہے اور قیمت سے کم ہوتی ہے۔ یعنی ، جب SAR رجحان کا رخ موڑتا ہے تو اس میں داخل ہوتا ہے۔
اس کے علاوہ ، اس حکمت عملی میں اسٹاپ نقصان اور اسٹاپ اسٹاپ کا طریقہ کار بھی موجود ہے۔ جب زیادہ کام کیا جاتا ہے تو ، نقصان کو محدود کرنے کے لئے اسٹاپ نقصان کی قیمت کا تعین کرنا ممکن ہے۔ اس کے علاوہ ، اسٹاپ قیمت کا تعین کرنا ممکن ہے ، جب قیمت ایک خاص ہدف منافع تک پہنچ جاتی ہے۔
اس حکمت عملی میں رجحان کے اشارے اور اسٹاپ نقصان / اسٹاپ میکانیزم کے ساتھ مل کر مندرجہ ذیل اہم فوائد ہیں:
اس حکمت عملی کے کچھ خطرات بھی ہیں جن کے بارے میں آگاہ ہونا ضروری ہے:
ان خطرات کے لئے ، پیرامیٹرز کو ایڈجسٹ کرکے اصلاح کی جاسکتی ہے ، یا دوسرے اشارے کے فلٹرنگ کے ساتھ مل کر کام کیا جاسکتا ہے۔
اس حکمت عملی کو مندرجہ ذیل طریقوں سے بہتر بنایا جاسکتا ہے:
یہ رجحان ٹریکنگ اسٹاپ نقصان کی واپسی کی حکمت عملی ، مجموعی طور پر ایک زیادہ کلاسیکی تجارتی حکمت عملی ہے۔ یہ رجحان کی واپسی کی نشاندہی کرنے کا کام کرتا ہے ، جبکہ روک تھام اور روک تھام کے ذرائع کے ذریعہ خطرے کو کنٹرول کرنے میں معاون ہے۔ اصلاح کے ذریعہ یہ ایک قابل عمل حکمت عملی ہوسکتی ہے۔
/*backtest
start: 2024-01-24 00:00:00
end: 2024-01-31 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Parabolic SAR Strategy", overlay=true)
start = input(0.02)
increment = input(0.02)
maximum = input(0.2)
var bool uptrend = na
var float EP = na
var float SAR = na
var float AF = start
var float nextBarSAR = na
if bar_index > 0
firstTrendBar = false
SAR := nextBarSAR
if bar_index == 1
float prevSAR = na
float prevEP = na
lowPrev = low[1]
highPrev = high[1]
closeCur = close
closePrev = close[1]
if closeCur > closePrev
uptrend := true
EP := high
prevSAR := lowPrev
prevEP := high
else
uptrend := false
EP := low
prevSAR := highPrev
prevEP := low
firstTrendBar := true
SAR := prevSAR + start * (prevEP - prevSAR)
if uptrend
if SAR > low
firstTrendBar := true
uptrend := false
SAR := max(EP, high)
EP := low
AF := start
else
if SAR < high
firstTrendBar := true
uptrend := true
SAR := min(EP, low)
EP := high
AF := start
if not firstTrendBar
if uptrend
if high > EP
EP := high
AF := min(AF + increment, maximum)
else
if low < EP
EP := low
AF := min(AF + increment, maximum)
if uptrend
SAR := min(SAR, low[1])
if bar_index > 1
SAR := min(SAR, low[2])
else
SAR := max(SAR, high[1])
if bar_index > 1
SAR := max(SAR, high[2])
nextBarSAR := SAR + AF * (EP - SAR)
if barstate.isconfirmed
if uptrend
strategy.entry("ParSE", strategy.short, stop=nextBarSAR, comment="ParSE")
strategy.cancel("ParLE")
else
strategy.entry("ParLE", strategy.long, stop=nextBarSAR, comment="ParLE")
strategy.cancel("ParSE")
plot(SAR, style=plot.style_cross, linewidth=3, color=color.orange)
plot(nextBarSAR, style=plot.style_cross, linewidth=3, color=color.aqua)
//Stop Loss Inputs
use_short_stop_loss = input(false, title="Short Stop Loss", group="Stop Loss and Take Profit", inline="Short_SL")
short_stop_loss = input(title="(%)", type=input.float, minval=0.0, step=0.1,
defval=5, group="Stop Loss and Take Profit", inline="Short_SL") * 0.01
use_long_stop_loss = input(false, title="Long Stop Loss", group="Stop Loss and Take Profit", inline="Long_SL")
long_stop_loss = input(title="(%)", type=input.float, minval=0.0, step=0.1,
defval=5, group="Stop Loss and Take Profit", inline="Long_SL") * 0.01
//Take Profit Inputs
use_short_take_profit = input(false, title="Short Take Profit", group="Stop Loss and Take Profit", inline="Short_TP")
short_take_profit = input(title="(%)", type=input.float, minval=0.0, step=0.1,
defval = 20, group="Stop Loss and Take Profit", inline="Short_TP") * .01
use_long_take_profit = input(false, title="Long Take Profit", group="Stop Loss and Take Profit", inline="Long_TP")
long_take_profit = input(title="(%)", type=input.float, minval=0.0, step=0.1,
defval = 20, group="Stop Loss and Take Profit", inline="Long_TP") * .01
longStopPrice = strategy.position_avg_price * (1 - long_stop_loss)
shortStopPrice = strategy.position_avg_price * (1 + short_stop_loss)
longLimitPrice = strategy.position_avg_price * (1 + long_take_profit)
shortLimitPrice = strategy.position_avg_price * (1 - short_take_profit)
if (strategy.position_size > 0.0)
if (use_long_stop_loss and not use_long_take_profit)
strategy.exit("Long", stop = longStopPrice)
if (use_long_take_profit and not use_long_stop_loss)
strategy.exit("Long", limit = longLimitPrice)
if (use_long_take_profit and use_long_stop_loss)
strategy.exit("Long", stop = longStopPrice, limit=longLimitPrice)
if (strategy.position_size < 0.0)
if (use_short_stop_loss and not use_short_take_profit)
strategy.exit("Short", stop = shortStopPrice)
if (use_short_take_profit and not use_short_stop_loss)
strategy.exit("Short", limit = shortLimitPrice)
if (use_short_take_profit and use_short_stop_loss)
strategy.exit("Short", stop = shortStopPrice, limit = shortLimitPrice)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)