بولنگر بینڈ سٹاپ نقصان کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-23 15:49:12
ٹیگز:

img

جائزہ

بولنگر بینڈس حکمت عملی ایک کلاسیکی حکمت عملی ہے جو بولنگر بینڈس کو رجحان کی پیروی اور زیادہ خرید / زیادہ فروخت سگنل کے لئے استعمال کرتی ہے۔ اس ورژن میں اصل حکمت عملی پر خطرات کو کنٹرول کرنے کے لئے اسٹاپ نقصان کے طریقہ کار کو شامل کیا گیا ہے۔

یہ حکمت عملی پوزیشنوں کو قائم کرنے کے لئے اوپری / نچلے بولنگر بینڈز کے سنہری / مردہ کراس اوور کے ذریعہ اوور بک / اوور سیلڈ شرائط کا جائزہ لیتی ہے۔ بینڈ کے درمیان کا علاقہ موجودہ مارکیٹ میں اتار چڑھاؤ کی حد کی عکاسی کرتا ہے۔ بینڈ میں درمیانی ، اوپری اور نچلی بینڈ شامل ہیں ، جہاں درمیانی بینڈ N دن کا سادہ چلتا ہوا اوسط ہے اور اوپری / نچلی بینڈ درمیانی بینڈ +/- K معیاری انحراف ہیں۔

اصول

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

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

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

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

فوائد

  1. کم خرید-زیادہ فروخت کے سیٹ اپ کے لئے بولنگر بینڈ کے ساتھ زیادہ خرید / زیادہ فروخت کی سطحوں کی نشاندہی کریں جو بینڈ کراسورز کی طرف سے فیصلہ کرتے ہیں.

  2. بولنگر بینڈ کی اتار چڑھاؤ کی خاصیت کے ذریعے رجحانات کو پکڑو.

  3. سٹاپ نقصان کا طریقہ کار مؤثر طریقے سے فی تجارت زیادہ سے زیادہ نقصان کو محدود کرتا ہے۔

  4. رجحان ٹریکنگ اور سٹاپ نقصان کو یکجا کرنے سے مستحکم منافع حاصل ہوتا ہے۔

خطرات اور اصلاح

  1. پیرامیٹر کی ترتیبات سگنل کے معیار کو متاثر کرتی ہیں۔ درمیانی بینڈ کی لمبائی N اور معیاری انحراف کے ضارب K کو مختلف منڈیوں کے لئے عقلی طور پر ترتیب دینا چاہئے ، ورنہ درستگی متاثر ہوگی۔

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

  3. دیگر اشارے کے ساتھ اضافی فلٹر سگنل کی درستگی کو بہتر بنا سکتے ہیں.

  4. مختلف انعقاد کی مدت کی ترتیبات کا تجربہ کیا جا سکتا ہے، جیسے زیادہ تعدد ٹریڈنگ اور سرمایہ کاری کے استعمال کی کارکردگی میں بہتری کے لئے گھنٹہ یا مختصر مدت کے بینڈ کو یکجا کرنا.

نتیجہ

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


/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-22 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Bollinger Bands Strategy", overlay=false, shorttitle="BBS", pyramiding=0, currency=currency.USD, commission_type=strategy.commission.percent, commission_value=0.03, initial_capital=1000)
source = input(close, "Source")
length = input.int(20, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50, step=0.001)
stopLossFactor = input.float(1, "Stop Loss Percent", maxval = 100, minval = 0, step=0.1)

basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
upper = basis + dev
lower = basis - dev

var float lastTradePrice = na
var float stopLossLow = na
var float stopLossHigh = na
var bool currentIsLong = na

var bool nextExpectedIsLong = true

var bool existedLong = false
var bool existedShort = false

buyEntry = ta.crossover(source, lower)
sellEntry = ta.crossunder(source, upper)

if (buyEntry and nextExpectedIsLong == true)
	strategy.entry("BBandLE", strategy.long, comment="BBandLE")
	nextExpectedIsLong := false
	if(nz(strategy.position_size[1], 0) < 0) // new position detected
	    lastTradePrice := close
	    stopLossLow := lastTradePrice * (1 - (stopLossFactor / 100))
	    stopLossHigh := lastTradePrice * (1 + (stopLossFactor / 100))
else
    strategy.cancel("BBandLE")

if (sellEntry and nextExpectedIsLong == false)
	strategy.entry("BBandSE", strategy.short, comment="BBandSE")
	nextExpectedIsLong := true
	if(nz(strategy.position_size[1], 0) > 0) // new position detected
        lastTradePrice := close
        stopLossLow := lastTradePrice * (1 - (stopLossFactor / 100))
        stopLossHigh := lastTradePrice * (1 + (stopLossFactor / 100))
else
    strategy.cancel("BBandSE")

strategy.close("BBandLE", close < stopLossLow)
strategy.close("BBandSE", close > stopLossHigh)

// if(nz(strategy.position_size[1], 0) < 0 and close > stopLossHigh)
//     strategy.entry("BBandLE", strategy.long, comment="BBandLE")
// 	lastTradePrice := close
// 	stopLossLow := lastTradePrice * (1 - (stopLossFactor / 100))
// 	stopLossHigh := lastTradePrice * (1 + (stopLossFactor / 100))
// if(nz(strategy.position_size[1], 0) > 0 and close < stopLossLow)
//     strategy.exit("BBandSE", strategy.short, comment="BBandSE")
//     lastTradePrice := close
//     stopLossLow := lastTradePrice * (1 - (stopLossFactor / 100))
//     stopLossHigh := lastTradePrice * (1 + (stopLossFactor / 100))

plot(source, "close", color.blue)
plot(lower, "lower", color.red)
plot(upper, "upper", color.red)
plot(stopLossLow, "StopLossLow", color.black)
plot(stopLossHigh, "StopLossHigh", color.black)
plot(lastTradePrice, "lastTradePrice", color.green)
plotchar(strategy.position_size > 0, char="-", size=size.tiny, location=location.bottom, color=color.green)
plotchar(strategy.position_size < 0, char="-", size=size.tiny, location=location.bottom, color=color.red)




مزید