বলিঙ্গার ব্যান্ড এবং VWAP এর উপর ভিত্তি করে বুলিশ ব্রেকআউট কৌশল


সৃষ্টির তারিখ: 2024-02-06 14:36:26 অবশেষে সংশোধন করুন: 2024-02-06 14:36:26
অনুলিপি: 1 ক্লিকের সংখ্যা: 885
1
ফোকাস
1617
অনুসারী

বলিঙ্গার ব্যান্ড এবং VWAP এর উপর ভিত্তি করে বুলিশ ব্রেকআউট কৌশল

ওভারভিউ

এই কৌশলটি বুলিন ব্যান্ডের সূচক ব্যবহার করে ভিডাব্লুএপি ট্র্যাক করে, যখন ভিডাব্লুএপি বুলিন ব্যান্ডের মধ্যবর্তী রেলপথটি অতিক্রম করে তখন এটি বহু-বিভাজন হিসাবে বিচার করে এবং বহু-বিভাজন কৌশল গ্রহণ করে; যখন ভিডাব্লুএপি বুলিন ব্যান্ডের নীচের রেলপথটি অতিক্রম করে তখন এটি শূন্য-প্রমাণিত, সমতল-অবস্থান ত্যাগ করে। একই সাথে, কৌশলটি প্রবেশের সংকেতের সহায়ক বিচার হিসাবে মূল সমর্থন পয়েন্ট পিভট পয়েন্টও প্রবর্তন করে, যা কিছু মিথ্যা বিভাজনকে ফিল্টার করতে পারে।

কৌশল নীতি

  1. ভিডাব্লুএপি গণনা করুন
  2. VWAP-এর জন্য বুলিন ব্যান্ডের গণনা করা হয়, যার মধ্যে আপ, মিড, এবং ডাউন রেল রয়েছে।
  3. মূল্যায়ন করুন যে ভিডাব্লুএপি বিউলিন ব্যান্ডের মধ্যম ট্র্যাকটি উর্ধ্বমুখী করেছে কিনা, এবং যদি তা হয় এবং মূল সমর্থন পিভট পয়েন্টের চেয়ে বেশি দাম হয় তবে একটি মাল্টি-হোল্ডার কৌশল প্রয়োগ করুন।
  4. স্টপ লস 5%।
  5. যদি ভিডাব্লুএপি নীচে থেকে ব্রিনের ট্র্যাকের নীচে ভেঙে যায়, তবে শূন্য মাথাটি নিশ্চিত বলে মনে করা হয়, এবং পজিশনটি বন্ধ হয়ে যায়; যদি স্টপ ক্ষতির সূত্রপাত হয়, তবে এটিও বন্ধ হয়ে যায়।

সামর্থ্য বিশ্লেষণ

  1. ভিডাব্লুএপি-র শক্তিশালী ট্রেন্ড ট্র্যাকিং ক্ষমতা রয়েছে এবং ব্রিনব্যান্ডের সাথে মিলিত হয়ে এটি সঠিকভাবে ট্রেন্ড নির্ধারণ করতে সক্ষম।
  2. পিভট পয়েন্ট যোগ করা একটি সহায়ক শর্ত, যা অনেক ভুয়া ব্রেকআপগুলিকে ফিল্টার করে এবং অপ্রয়োজনীয় ক্ষতি এড়াতে পারে।
  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 )