বোলিংজার ব্যান্ড এবং ভিডব্লিউএপি ভিত্তিক পরিমাণগত ট্রেডিং কৌশল

লেখক:চাওঝাং, তারিখঃ 2024-01-04 15:59:46
ট্যাগঃ

img

সারসংক্ষেপ

এই কৌশলটি প্রবেশ এবং প্রস্থান সিদ্ধান্ত নেওয়ার জন্য বোলিংজার ব্যান্ড (বিবি) এবং ভলিউম ওয়েটেড মিডিয়ার প্রাইস (ভিডাব্লুএপি) সূচকগুলিকে একত্রিত করে। এটি ব্যবসায়ের জন্য স্বল্পমেয়াদী দামের অস্বাভাবিকতা আবিষ্কার করতে পারে এবং স্বল্পমেয়াদী ব্যবসায়ের জন্য উপযুক্ত।

কৌশলগত যুক্তি

এই কৌশলটি মূলত নিম্নলিখিত প্রবেশ ও প্রস্থানের নিয়মের উপর ভিত্তি করেঃ

  1. প্রবণতা মূল্যায়নের পূর্বশর্ত হিসাবে ধীর EMA লাইনের উপরে দ্রুত EMA লাইন

  2. VWAP এর উপরে বন্ধের মূল্য যখন ক্রয় করা হয় তখন দাম বাড়তে থাকে

  3. যদি শেষ ১০ বারের মধ্যে বন্ধের দাম বিবি এর নীচের অংশের নিচে পড়ে থাকে তবে লং প্রবেশ করুন যা মূল্যের বৈষম্যকে নির্দেশ করে

  4. যখন বন্ধের দাম বিবি উপরের ব্যান্ডের উপরে যায় তখন বিক্রি করুন যা মূল্য বিপরীত নির্দেশ করে

বিশেষত, এটি প্রথমে মূল্যায়ন করে যে 50 দিনের ইএমএ 200 দিনের ইএমএ এর উপরে রয়েছে কিনা তা সামগ্রিক প্রবণতা নির্ধারণ করতে। তারপরে দামটি স্বল্পমেয়াদী আপট্রেন্ডে রয়েছে কিনা তা বিচার করতে ভিডাব্লুএপি-র সাথে মিলিত হয়। অবশেষে প্রবেশের সুযোগ হিসাবে স্বল্পমেয়াদী অস্বাভাবিকতা হ্রাস সনাক্ত করতে বোলিংজার ব্যান্ডগুলি ব্যবহার করে।

প্রস্থান নিয়মটি সহজ, যখন দাম বিবি উপরের ব্যান্ডের উপরে যায় তখন প্রস্থান করুন যা মূল্য বিপরীত নির্দেশ করে।

সুবিধা বিশ্লেষণ

এন্ট্রি সিগন্যালের বৈধতা বাড়ানোর জন্য কৌশলটি একাধিক সূচককে একত্রিত করে। সামগ্রিক প্রবণতা বিচার করার জন্য ইএমএ ব্যবহার করে প্রবণতার বিরুদ্ধে ট্রেডিং এড়ানো হয়। ভিডাব্লুএপি স্বল্পমেয়াদী উত্থান গতি ধারণ করে। বিবি এন্ট্রিগুলির সময় হিসাবে স্বল্পমেয়াদী অস্বাভাবিকতা সনাক্ত করে।

ঝুঁকি বিশ্লেষণ

  1. ইএমএ-র ভুল ট্রেন্ড মূল্যায়ন ট্রেন্ড বিপরীত ট্রেডিংয়ের কারণ
  2. ভিডাব্লুএপি ঘন্টা বা দিনের মধ্যে তথ্যের জন্য আরও উপযুক্ত, দৈনিক তথ্যের ক্ষেত্রে কম দক্ষ
  3. ভুল বিবি পরামিতি সেটিং, খুব প্রশস্ত বা সংকীর্ণ ব্যান্ড সংকেত অনুপস্থিত

ঝুঁকি কমাতে, ইএমএ এবং বিবি এর পরামিতিগুলি সামঞ্জস্য করা যেতে পারে। প্রবণতা সনাক্তকরণের জন্য বিভিন্ন সূচক পরীক্ষা করুন। কম সময়সীমার মধ্যে ভিডাব্লুএপি ব্যবহার করুন। সেরা ব্যান্ডউইথের জন্য বিবি পরামিতিটি অনুকূল করুন।

উন্নতির সুযোগ

  1. ম্যাকডির মতো প্রবণতা সনাক্তকরণের জন্য অন্যান্য সূচক পরীক্ষা করুন
  2. EMA এবং BB পরামিতিগুলি অপ্টিমাইজ করুন
  3. স্টপ লস মেকানিজম যোগ করুন
  4. মিথ্যা সংকেত এড়াতে ফিল্টার যোগ করুন
  5. বিভিন্ন পণ্য এবং সময়সীমার ব্যাকটেস্ট

সিদ্ধান্ত

কৌশলটি এন্ট্রি টাইমিং হিসাবে স্বল্পমেয়াদী দামের অস্বাভাবিকতা সনাক্ত করতে বিবি এবং ভিডাব্লুএপিকে একত্রিত করে। সামগ্রিক প্রবণতা নির্ধারণের জন্য ইএমএ ব্যবহার করে প্রবণতার বিরুদ্ধে ট্রেডিং এড়ানো যায়। এটি দ্রুত স্বল্পমেয়াদী গতি আবিষ্কার করতে পারে। ইনট্রাডে এবং স্বল্পমেয়াদী ট্রেডিংয়ের জন্য উপযুক্ত। প্যারামিটারগুলি অনুকূল করে এবং আরও যৌক্তিকতা অন্তর্ভুক্ত করে স্থিতিশীলতা এবং লাভজনকতা আরও উন্নত করে।


/*backtest
start: 2023-12-04 00:00:00
end: 2024-01-03 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/
// © mohanee

//@version=4
strategy(title="VWAP and BB strategy [EEMANI]", overlay=true,pyramiding=2, default_qty_value=3, default_qty_type=strategy.fixed,    initial_capital=10000, currency=currency.USD)
//This strategy combines VWAP and BB indicators
//BUY RULE
//1. EMA50 > EMA 200
//2. if current close > vwap session  value 
//3. check if  price dipped BB lower band for any of last 10 candles
//EXIT RULE
//1. price closes above BB upper band   
//STOP LOSS EXIT
//1. As configured --- default is set to 5%

is_price_dipped_bb(pds,source1) =>
    t_bbDipped=false
    for i=1 to pds
        t_bbDipped:=  (t_bbDipped   or  close[i]<source1) ? true : false
        if t_bbDipped==true
            break
        else
            continue
            
    t_bbDipped
    
// variables  BEGIN
shortEMA = input(50, title="fast EMA", minval=1)
longEMA = input(200, title="slow EMA", minval=1)

//BB

smaLength = input(20, title="BB SMA Length", minval=1)
bbsrc = input(close, title="BB Source")



//addOnDivergence = input(true,title="Add to existing on Divergence")
//exitOption = input(title="exit on RSI or BB", type=input.string, options=["RSI", "BB"],      defval="BB")

//bbSource = input(title="BB  source", type=input.string, options=["close", "vwap"],      defval="close")
     
//vwap_res = input(title="VWAP Resolution", type=input.resolution, defval="session")
stopLoss = input(title="Stop Loss%", defval=5, minval=1)

//variables  END




longEMAval= ema(close, longEMA)
shortEMAval= ema(close, shortEMA)


vwapVal=vwap(close)



// Drawings

//plot emas
plot(longEMAval, color = color.orange, linewidth = 1, transp=0)
plot(shortEMAval, color = color.green, linewidth = 1, transp=0)


//bollinger calculation 
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis = sma(bbsrc, smaLength)
dev = mult * stdev(bbsrc, smaLength)
upperBand = basis + dev
lowerBand = basis - dev
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
//bollinger calculation 

//plot bb
//plot(basis, "Basis", color=#872323, 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=#198787, transp=95)


plot(vwapVal, color = color.purple, linewidth = 1, transp=0)


// Colour background

barcolor(shortEMAval>longEMAval and close<=lowerBand ? color.yellow: na)
  

//longCondition=  shortEMAval > longEMAval and  close>open and  close>vwapVal
longCondition= shortEMAval >= longEMAval  and  close>=vwapVal and close>open  //      close>vwapVal   and   



//Entry
strategy.entry(id="VWAP_BB LE", comment="VB LE" , long=true,  when= longCondition and  is_price_dipped_bb(10,lowerBand) )  //and strategy.position_size<1 

//add to the existing position
//strategy.entry(id="VWAP_RSI LE", comment="VR LE Add" , long=true,  when= addOnDivergence==true and strategy.position_size>=1 and close<strategy.position_avg_price   and (close<lowerBand or  low<lowerBand) and rsiVal>rsi_buy_line)

barcolor(strategy.position_size>=1  ? color.blue: na)



strategy.close(id="VWAP_BB LE", comment="TP Exit VB LE",   when=crossover(close,upperBand) )

//stoploss
stopLossVal =   strategy.position_avg_price * (1-(stopLoss*0.01) )
strategy.close(id="VB LE", comment="SL Exit",   when= close < stopLossVal)



আরো