
بولنگر لہر کی حکمت عملی (انگریزی: Bollinger Wave Strategy) ایک مقداری تجارتی حکمت عملی ہے جس میں بولنگر لہر اور چلتی اوسط کا امتزاج کیا جاتا ہے۔ یہ حکمت عملی بولنگر لہر کی معیاری فاصلے اور چلتی اوسط کے کراس سگنل کا حساب کتاب کرکے مارکیٹ کے رجحانات اور اوور بیئر اوور سیل علاقوں کا تعین کرتی ہے۔
یہ حکمت عملی پہلے ایک مخصوص دورانیے میں اشاریہ کی حرکت پذیری اوسط ((EMA) کو بیس لائن کے طور پر شمار کرتی ہے۔ اس کے بعد اس ای ایم اے کے مطابق اوپر کی پٹری ((EMA + n گنا معیاری فرق) اور نیچے کی پٹری ((EMA - n گنا معیاری فرق) کا حساب لگایا جاتا ہے۔ جب قیمت اوپر کی پٹری کو توڑتی ہے تو یہ ایک اوور خرید سگنل ہوتا ہے ، اور جب قیمت نیچے کی پٹری کو توڑتی ہے تو یہ ایک اوور فروخت سگنل ہوتا ہے۔
جب قیمت اوپری ٹریک لائن اور ڈاؤن ٹریک لائن کے درمیان ہوتی ہے تو ، یہ اسٹاک کی قیمت میں معمول کی اتار چڑھاؤ کی حد ہوتی ہے۔ اس کے علاوہ ، یہ حکمت عملی آر ایس آئی اشارے جیسے دیگر اشارے کے ساتھ مل کر ٹریڈنگ سگنل کو فلٹر کرتی ہے ، جس سے ٹریڈنگ کی تعدد کم ہوجاتی ہے اور غیر ضروری نقصانات کو کم کیا جاتا ہے۔
خاص طور پر ، اس حکمت عملی کے لئے ٹریڈنگ سگنل کے فیصلے کے قواعد یہ ہیں:
جب مذکورہ بالا ٹریڈنگ سگنل ظاہر ہوتا ہے تو ، فکسڈ مقدار یا اکاؤنٹ تناسب کے ذریعہ داخل ہوں۔ جب قیمت دوبارہ موج کی حد میں واپس آجائے یا اس کے برعکس سگنل ظاہر ہو تو ، پوزیشن سے باہر نکلیں۔
اس حکمت عملی میں رجحانات کا فیصلہ اور اوور بیئر اوور سیل فیصلے کا امتزاج کیا گیا ہے ، جس سے ہنگامی بندش کے دوران غلط تجارت سے بچا جاسکتا ہے۔ ایک ہی اشارے کی حکمت عملی کے مقابلے میں ، غیر ضروری پوزیشن کھولنے کو کم کیا جاسکتا ہے ، اور خطرے کو مؤثر طریقے سے کنٹرول کیا جاسکتا ہے۔
سادہ منتقل اوسط حکمت عملی کے مقابلے میں ، بول بینڈ موجودہ مارکیٹ میں اتار چڑھاؤ اور خطرے کی سطح کو بہتر طور پر ظاہر کرتا ہے۔ گھنٹہ کی طول و عرض کے ساتھ ، ٹریڈنگ سگنل زیادہ قابل اعتماد ہیں۔ جب طول و عرض کی چوڑائی زیادہ ہوتی ہے تو ، تجارت کی تعدد خود بخود کم ہوجاتی ہے۔ یہ موافقت مختلف مارکیٹ کے حالات کے مطابق حکمت عملی کے خطرے کو کنٹرول کرنے میں مدد دیتی ہے۔
اس کے علاوہ ، اس حکمت عملی کو آر ایس آئی جیسے اشارے کے ذریعہ دوہری تصدیق کی جاتی ہے ، جس سے کچھ غلط سگنل فلٹر ہوجاتے ہیں ، اور رجحانات کے موڑ پر غلط تجارت سے بچا جاتا ہے۔ اس سے حکمت عملی کی جیت کی شرح میں بھی اضافہ ہوتا ہے۔
اس حکمت عملی میں مندرجہ ذیل خطرات شامل ہیں:
پیرامیٹرز کو بہتر بنانے کا خطرہ۔ اگر منتقل اوسط پیرامیٹرز یا معیاری فاصلے کے ضارب کو غلط طریقے سے ترتیب دیا گیا ہے تو ، زیادہ شور کی تجارت یا تجارت کے مواقع سے محروم ہوجائیں گے۔ ان پیرامیٹرز کو بار بار جانچنے اور بہتر بنانے کی ضرورت ہے۔
جعلی سگنل کو توڑنے کا خطرہ۔ غلط سگنل اس وقت پیدا ہوتا ہے جب قیمتوں میں مختصر عرصے کے بعد اوپر اور نیچے کی لائنوں کو توڑنے کے بعد جلد ہی دوبارہ ریگولیشن کیا جاتا ہے۔ اس وقت تجارت میں نقصان میں اضافہ ہوتا ہے۔ اس خطرے کو کنٹرول کرنے کے لئے ، آپ کو بڑھتی ہوئی اوسط اوسط کی مدت یا اسٹاپ نقصان کی ترتیب دے سکتے ہیں۔
تجارت کی فریکوئنسی کا خطرہ۔ اگر اوپر اور نیچے کی پٹریوں میں بہت کم فرق ہو تو ، تجارت کی تعداد اور فیس کی ادائیگی میں اضافہ ہوگا۔ اس سے حتمی منافع پر کچھ اثر پڑتا ہے۔ اس خطرے کو کنٹرول کرنے کے لئے ، آپ کو مناسب طریقے سے بڑھتی ہوئی اوسط اوسط سائیکل کی ضرورت ہے۔
اس حکمت عملی میں مزید اصلاحات کی گنجائش موجود ہے:
نقصانات کو روکنے کا طریقہ کار بڑھانا۔ متحرک نقصانات یا وقت کی روک تھام کا قیام ، جو وقت پر نقصانات کو روکنے اور ایک ہی نقصان کو کنٹرول کرنے میں مدد کرتا ہے۔
پوزیشن مینجمنٹ میں اضافہ کریں۔ مثال کے طور پر ، پوزیشنوں کو بڑھانے اور کم کرنے کے قواعد قائم کریں ، تاکہ منافع میں اضافہ اور نقصان میں کمی ہو۔ اس سے حکمت عملی کی شرح منافع میں اضافہ ہوسکتا ہے۔
دوسرے اشارے کے ساتھ مل کر فلٹرنگ سگنل۔ جیسے کے ڈی جے ، ایم اے سی ڈی اور دیگر اشارے معاون فیصلے کے اشارے کے طور پر کام کرسکتے ہیں۔ اس سے حکمت عملی کی منافع کی شرح کو مزید بڑھانے میں مدد ملتی ہے۔
پیرامیٹرز کی ترتیب کو بہتر بنائیں۔ آپ زیادہ منظم طریقوں جیسے جینیاتی الگورتھم کے ذریعہ پیرامیٹرز کے مجموعے کی جانچ کرسکتے ہیں تاکہ بہتر پیرامیٹرز کی ترتیب کو تلاش کیا جاسکے۔
بول ویو بینڈ کے اتار چڑھاؤ کے سگنل کی حکمت عملی میں حرکت پذیر اوسط کے رجحان کا فیصلہ اور اوور خرید اوور فروخت کا فیصلہ شامل ہے۔ یہ مارکیٹ کی مختلف حالتوں کے مطابق ٹریڈنگ کی تعدد کو ایڈجسٹ کرتا ہے۔ اس کے ساتھ ساتھ آر ایس آئی جیسے اشارے کے ساتھ مل کر سگنل فلٹرنگ کی جاتی ہے تاکہ غلط تجارت سے بچا جاسکے۔ اس حکمت عملی میں مارکیٹ کے رجحانات کی پیروی کرنے کی ضرورت پر بھی غور کیا گیا ہے اور اس میں خطرہ پر قابو پایا گیا ہے۔ اس حکمت عملی کو مستقل طور پر بہتر بنانے کے ساتھ ، یہ مستحکم منافع بخش مقدار کی تجارت کی حکمت عملی بن سکتی ہے۔
/*backtest
start: 2023-01-08 00:00:00
end: 2024-01-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
//@FiboBuLL
strategy(shorttitle='FB Wave', title='FiboBuLL Wave', overlay=true, pyramiding=1, currency=currency.NONE, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
src = input(close, title='Source')
length = input.int(55, minval=1, title='EMA length') // 20 for classis Bollinger Bands SMA line (basis)
mult = input.float(1., minval=0.236, maxval=2, title='Standard Deviation') //2 for Classic Bollinger Bands //Maxval = 2 as higher the deviation, higher the risk
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
Show = input.string('Both', options=['Longs Only', 'Shorts Only', 'Both'], title='Trade Type')
CC = input(true, 'Color Bars')
upper = basis + dev
lower = basis - dev
//Conditions for Long and Short - Extra filter condition can be used such as RSI or CCI etc.
short = src < lower // and rsi(close,14)<40
long = src > upper // and rsi(close,14)>60
L1 = ta.barssince(long)
S1 = ta.barssince(short)
longSignal = L1 < S1 and not (L1 < S1)[1]
shortSignal = S1 < L1 and not (S1 < L1)[1]
//Plots and Fills
////Long/Short shapes with text
// plotshape(S1<L1 and not (S1<L1)[1]?close:na, text = "sᴇʟʟ", textcolor=#ff0100, color=#ff0100, style=shape.triangledown, size=size.small, location=location.abovebar, transp=0, title = "SELL", editable = true)
// plotshape(L1<S1 and not (L1<S1)[1]?close:na, text = "ʙᴜʏ", textcolor = #008000, color=#008000, style=shape.triangleup, size=size.small, location=location.belowbar, transp=0, title = "BUY", editable = true)
// plotshape(shortSignal?close:na, color=#ff0100, style=shape.triangledown, size=size.small, location=location.abovebar, transp=0, title = "Short Signal", editable = true)
// plotshape(longSignal?close:na, color=#008000, style=shape.triangleup, size=size.small, location=location.belowbar, transp=0, title = "Long Signal", editable = true)
p1 = plot(upper, color=color.new(#ff0000, 75), display=display.all, title='Upper Band')
p2 = plot(lower, color=color.new(#008000, 75), display=display.all, title='Lower Band')
p = plot(basis, color=L1 < S1 ? #008000 : S1 < L1 ? #ff0000 : na, linewidth=2, editable=false, title='Basis')
fill(p, p1, color=color.new(color.teal, 85), title='Top Fill') //fill for basis-upper
fill(p, p2, color=color.rgb(217, 161, 161), title='Bottom Fill', transp=85) //fill for basis-lower
//Barcolor
bcol = src > upper ? color.new(#8ceb07, 0) : src < lower ? color.new(#ff0000, 0) : src > basis ? color.green : src < basis ? color.red : na
barcolor(CC ? bcol : na, editable=false, title='Color Bars')
// //Alerts ---- // Use 'Once per bar close'
// alertcondition(condition=longSignal, title="Long - BB Filter", message='BB Filter Long @ {{close}}') // Use 'Once per bar close'
// alertcondition(condition=shortSignal, title="Short - BB Filter", message='BB Filter Short @ {{close}}') // Use 'Once per bar close'
Notestart1 = input(true, '╔═══ Time Range to BackTest ═══╗')
// === INPUT BACKTEST RANGE ===
FromMonth = input.int(defval=1, title='From Month', minval=1, maxval=12)
FromDay = input.int(defval=1, title='From Day', minval=1, maxval=31)
FromYear = input.int(defval=2018, title='From Year', minval=2015)
ToMonth = input.int(defval=1, title='To Month', minval=1, maxval=12)
ToDay = input.int(defval=1, title='To Day', minval=1, maxval=31)
ToYear = input.int(defval=9999, title='To Year', minval=2010)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() =>
time >= start and time <= finish ? true : false
if window() and (Show == 'Longs Only' or Show == 'Both')
strategy.entry('AL', direction=strategy.long, when=longSignal)
strategy.close('LongAL', when=shortSignal, comment='AL KAPA')
if window() and (Show == 'Shorts Only' or Show == 'Both')
strategy.entry('SAT', direction=strategy.short, when=shortSignal)
strategy.close('SAT', when=longSignal, comment='SAT KAPA')