وسائل لوڈ ہو رہے ہیں... لوڈنگ...

VWAP پر مبنی بولنگر بینڈ بریک آؤٹ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-02-06 14:36:26
ٹیگز:

img

جائزہ

یہ حکمت عملی VWAP کو ٹریک کرنے کے لئے بولنگر بینڈ کا استعمال کرتی ہے۔ جب VWAP وسط بینڈ سے اوپر ٹوٹ جاتا ہے تو یہ ایک لمبی پوزیشن اپناتا ہے ، اور جب VWAP نچلے بینڈ سے نیچے ٹوٹ جاتا ہے تو پوزیشن بند ہوجاتا ہے۔ غلط بریک آؤٹ سے بچنے کے لئے ، داخلہ کے لئے ایک معاون سگنل کے طور پر بھی پییوٹ پوائنٹ کا استعمال کیا جاتا ہے۔

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

  1. VWAP کا حساب لگائیں.
  2. اس کے علاوہ، یہ بھی کہا جاتا ہے کہ اس کے علاوہ، یہ بھی کہا جاتا ہے کہ اس کے علاوہ، یہ بھی کہا جاتا ہے کہ اس کے علاوہ، یہ بھی کہا جاتا ہے کہ اس کے علاوہ، یہ بھی کہا جاتا ہے کہ اس کے علاوہ، یہ بھی کہا جاتا ہے کہ اس کے علاوہ، یہ بھی کہا جاتا ہے کہ اس کے علاوہ، یہ بھی کہا جاتا ہے کہ اس کے علاوہ، یہ بھی کہا جاتا ہے کہ اس کے علاوہ، یہ بھی کہا جاتا ہے کہ اس کے علاوہ، یہ بھی کہا جاتا ہے کہ اس کے علاوہ، یہ بھی کہا جاتا ہے کہ اس کے علاوہ، یہ بھی کہا جاتا ہے کہ اس کے علاوہ، یہ بھی کہا جاتا ہے کہ یہ بھی کہا جاتا ہے کہ اس کے علاوہ، یہ بھی کہا جاتا ہے کہ یہ بھی کہا جاتا ہے.
  3. جب VWAP درمیانی بینڈ سے اوپر ٹوٹ جاتا ہے اور قیمت محور نقطہ سے اوپر ہوتی ہے تو طویل پوزیشن لیں.
  4. 5 فیصد پر سٹاپ نقصان مقرر کریں.
  5. اگر VWAP نچلے بینڈ سے نیچے ٹوٹ جاتا ہے تو ، طویل پوزیشن بند کریں۔ اگر اسٹاپ نقصان شروع ہوتا ہے تو ، باہر بھی نکلیں۔

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

  1. وی ڈبلیو اے پی کے پاس مضبوط رجحان ٹریکنگ کی صلاحیت ہے۔ بی بی کے ساتھ ، یہ رجحان کے آغاز کی درستگی سے نشاندہی کرتا ہے۔
  2. Pivot Point شامل کرنے سے غلط بریک آؤٹ فلٹر ہوتے ہیں، غیر ضروری نقصانات سے بچتے ہیں۔
  3. کچھ منافع میں جزوی باہر نکلنے کے تالے اور کنٹرول خطرہ.
  4. بیک ٹسٹ میں اچھی استحکام کے ساتھ بیل مارکیٹ میں اچھی کارکردگی دکھائی گئی ہے۔

خطرے کا تجزیہ

  1. حد سے محدود مارکیٹ میں جھوٹے بریک آؤٹ سے نقصان کا شکار۔
  2. محور پوائنٹس مکمل طور پر غلط سگنل سے بچ نہیں سکتے۔ مزید فلٹرز کی ضرورت ہے۔
  3. تجارت کی بڑھتی ہوئی تعدد سے لین دین کے اخراجات میں اضافہ ہوتا ہے۔
  4. ریڑھ کی ہڈی کی مارکیٹ میں اچھی کارکردگی کا مظاہرہ نہیں کرتا۔

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

  1. سگنل فلٹر کرنے کے لئے MACD، KDJ جیسے اشارے شامل کریں.
  2. بیک ٹیسٹ کے ذریعے بی بی پیرامیٹرز کو بہتر بنائیں.
  3. بی بی پیرامیٹرز کو متحرک طور پر بہتر بنانے کے لیے مشین لرننگ کا استعمال کریں۔
  4. بہترین تلاش کرنے کے لئے مختلف سٹاپ نقصان کی سطحوں کا تجربہ کریں.
  5. مارکیٹ کی اتار چڑھاؤ کی بنیاد پر موافقت پذیر منافع حاصل کریں.

نتیجہ

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


/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ediks123

//@version=4
strategy("BBofVWAP with entry at Pivot Point", overlay=false, pyramiding=1,   default_qty_type=strategy.percent_of_equity,  default_qty_value=20, initial_capital=10000, currency=currency.USD)  //default_qty_value=10, default_qty_type=strategy.fixed,

// Function outputs 1 when it's the first bar of the D/W/M/Y
is_newbar(res) =>
    ch = 0
    if(res == 'Y')
        t  = year(time('D'))
        ch := change(t) != 0 ? 1 : 0
    else
        t = time(res)
        ch := change(t) != 0 ? 1 : 0
    ch


//variables BEGIN
//smaLength=input(200,title="Slow MA Length")

bbLength=input(50,title="BB Length")  
//bbsrc = input(close, title="BB Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)

pp_period = input(title = "Pivot Period", type=input.string, defval="Week", options = ['Day', 'Week'])

pp_res = pp_period == 'Day' ? 'D' : pp_period == 'Week' ? 'W' : pp_period == 'Month' ? 'M' : 'Y' 

riskCapital = input(title="Risk % of capital", defval=10, minval=1)
stopLoss=input(5,title="Stop Loss",minval=1)



//sma200=sma(close,smaLength)
//plot(sma200, title="SMA 200", color=color.orange)

myVwap=vwap(hlc3)

//bollinger calculation
basis = sma(myVwap, bbLength)
dev = mult * stdev(myVwap, bbLength)
upperBand = basis + dev
lowerBand = basis - dev

//plot bb
plot(basis, "Basis", color=color.teal, style=plot.style_circles , offset = offset)
p1 = plot(upperBand, "Upper", color=color.teal, offset = offset)
p2 = plot(lowerBand, "Lower", color=color.teal, offset = offset)
fill(p1, p2, title = "Background", color=color.teal, transp=95)

plot(myVwap, title="VWAP", color=color.purple)


//pivot points 


// Calc High
high_cur = 0.0
high_cur := is_newbar(pp_res) ? high : max(high_cur[1], high)

phigh = 0.0
phigh := is_newbar(pp_res) ? high_cur[1] : phigh[1]

// Calc Low
low_cur = 0.0
low_cur := is_newbar(pp_res) ? low : min(low_cur[1], low)

plow = 0.0
plow := is_newbar(pp_res) ? low_cur[1] : plow[1]

// Calc Close
pclose = 0.0
pclose := is_newbar(pp_res) ? close[1] : pclose[1]


vPP = (phigh + plow + pclose) / 3

//pivot points


//Entry--
//Echeck how many units can be purchased based on risk manage ment and stop loss
qty1 = (strategy.equity  * riskCapital / 100 ) /  (close*stopLoss/100)  

//check if cash is sufficient  to buy qty1  , if capital not available use the available capital only
qty1:= (qty1 * close >= strategy.equity ) ? (strategy.equity / close) : qty1


strategy.entry(id="BB_VWAP_PP",long=true, qty=qty1, when=   crossover(myVwap,basis)  and close>=vPP  )

bgcolor(strategy.position_size>=1?color.blue:na, transp=75)
barcolor(strategy.position_size>=1?color.green:na)

stopLossVal=  strategy.position_size>=1 ?  close * (1 - (stopLoss*0.01) ) : 0.00

//partial exit
//strategy.close(id="BBofVwap", qty=strategy.position_size/3, when=crossunder(myVwap,upperBand) and strategy.position_size>=1 )  //and close>strategy.position_avg_price)



//exit on lowerband or stoploss 
strategy.close(id="BB_VWAP_PP", comment="P" , qty=strategy.position_size/3, when= crossunder(myVwap,upperBand) and strategy.position_size>=1 and close>strategy.position_avg_price)  //
strategy.close(id="BB_VWAP_PP", comment="Exit All", when=crossunder(myVwap,lowerBand) and strategy.position_size>=1 )
//strategy.close(id="BBofVwapWithFibPivot", comment="Exit All", when=crossunder(close,vPP) and strategy.position_size>=1 )

strategy.close(id="BB_VWAP_PP", comment="Stop Loss Exit", when=crossunder(close,stopLossVal) and strategy.position_size>=1 )

مزید