গোল্ডেন ক্রস বোলিংজার ব্যান্ডের সাথে গতি কৌশল

লেখক:চাওঝাং, তারিখ: ২০২৩-১১-২১ ১২ঃ১১ঃ২৫
ট্যাগঃ

img

সারসংক্ষেপ

এই কৌশলটি চলমান গড়, বোলিংজার ব্যান্ড এবং ভলিউম ওয়েটেড গড় মূল্য (ভিডাব্লুএপি) সূচকগুলির সংমিশ্রণ করে। এটি যখন সোনার ক্রস গঠন করে এবং দ্রুত চলমান গড়টি ধীরের উপরে ভেঙে যায় তখন এটি দীর্ঘ পজিশনে প্রবেশ করে। কৌশলটি বোলিংজার ব্যান্ড চ্যানেলটিও ব্যবহার করে এবং কেবলমাত্র যখন দামটি নীচের ব্যান্ডটি স্পর্শ করে তখনই প্রবেশ করে, এইভাবে বাজারের ওঠানামা মধ্যে ঘন ঘন প্রবেশ এবং প্রস্থান এড়ানো।

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

মূল যুক্তিটি প্রবণতা দিক নির্ধারণের জন্য চলমান গড়ের উপর নির্ভর করে এবং ক্রয় সংকেতের জন্য ওঠানামা পরিসীমা সনাক্ত করতে বোলিংজার ব্যান্ড। বিশেষত, এর নিম্নলিখিত মূল নিয়ম রয়েছেঃ

  1. 50 দিনের EMA এবং 200 দিনের EMA ব্যবহার করে গোল্ডেন ক্রস সিস্টেম তৈরি করুন। যখন দ্রুত EMA ধীর EMA এর উপরে অতিক্রম করে তখন একটি আপ প্রবণতা সনাক্ত করা হয়।

  2. যখন দাম VWAP এর উপরে থাকে, তখন এটি নির্দেশ করে যে দামটি একটি আপফ্রন্ট ফ্যাসে রয়েছে যা লং পজিশনের পক্ষে।

  3. যখন মূল্য বোলিঞ্জারের নিম্ন ব্যাণ্ড স্পর্শ করে বা ভেঙে যায়, তখন এটি বোঝায় যে মূল্যটি একটি রিবাউন্ড পয়েন্টের কাছাকাছি হতে পারে, যা একটি ভাল সুযোগ প্রদান করে।

  4. যখন দাম বোলিংজার ব্যান্ডের উপরে চলে যায় তখন মুনাফা নিয়ে লং পজিশন থেকে বেরিয়ে আসা।

এই নিয়মগুলিকে একত্রিত করে, কৌশলটি ষাঁড়ের বাজারে উপযুক্ত দীর্ঘ প্রবেশগুলি সনাক্ত করতে সক্ষম হয় এবং রিটার্নগুলি সুরক্ষিত করার জন্য স্টপ লস / মুনাফা গ্রহণ সেট করে।

সুবিধা

  • গোল্ডেন ক্রস সিস্টেম মূল প্রবণতা দিক নির্ধারণ করে, সংহতকরণের মধ্যে ছোট জয় এবং ক্ষতি এড়ানো।

  • ভিডাব্লুএপি আরও সুনির্দিষ্ট ক্রয় সংকেতের জন্য মূল্য তরঙ্গের দিকনির্দেশনা পরিমাপ করে।

  • বোলিংজার ব্যান্ডগুলি ক্রয়ের অবস্থান নির্ধারণ করে স্থিতিস্থাপকতা যোগ করে এবং লাভের ক্ষেত্রে স্টপ লস/লাভ গ্রহণ লক স্থাপন করে।

  • একাধিক নিশ্চিতকরণ সূচক নির্ভরযোগ্যতা বৃদ্ধি করে।

ঝুঁকি এবং সমাধান

  • গোল্ডেন ক্রস ভুল সংকেত দিতে পারে।

  • ভুল বোলিংজার পরামিতি কৌশলটিকে অকার্যকর করে তুলতে পারে।

  • একটি স্টপ লস থ্রেশহোল্ড খুব বড় ক্ষতি কার্যকরভাবে সীমাবদ্ধ করতে ব্যর্থ হয়। নিয়ন্ত্রণযোগ্য ঝুঁকি নিশ্চিত করার জন্য স্টপ লস পরিসীমা সংকীর্ণ করুন।

অপ্টিমাইজেশান নির্দেশাবলী

  • সেরাটি খুঁজে পেতে বিভিন্ন পরামিতি পরীক্ষা করে এমএ সমন্বয়গুলি অনুকূল করুন।

  • আরও ভাল ব্যান্ডউইথ এবং অস্থিরতার জন্য বোলিঞ্জার পিরিয়ড এবং প্যারামিটার সেট পরীক্ষা করুন।

  • ঝুঁকি নিয়ন্ত্রণের ভারসাম্য এবং অকাল ট্রিগারিং এড়ানোর জন্য স্টপ লস পরিসীমা পরীক্ষা করুন এবং সামঞ্জস্য করুন।

সিদ্ধান্ত

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


/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
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 [$$]", overlay=true,pyramiding=2, default_qty_value=1, default_qty_type=strategy.fixed,    initial_capital=10000, currency=currency.USD)


fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 6, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2020, title = "From Year", minval = 1970)
 
// To Date Inputs
toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 8, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)
 
// Calculate start/end date and time condition
DST = 1 //day light saving for usa
//--- Europe
London = iff(DST==0,"0000-0900","0100-1000")
//--- America
NewYork = iff(DST==0,"0400-1300","0500-1400")
//--- Pacific
Sydney = iff(DST==0,"1300-2200","1400-2300")
//--- Asia
Tokyo = iff(DST==0,"1500-2400","1600-0100")

//-- Time In Range
timeinrange(res, sess) => time(res, sess) != 0

london = timeinrange(timeframe.period, London)
newyork = timeinrange(timeframe.period, NewYork)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = time >= startDate and time <= finishDate 


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


is_bb_per_dipped(pds,bbrSrc) =>
    t_bbDipped=false
    for i=1 to pds
        t_bbDipped:=  (t_bbDipped   or  bbrSrc[i]<=0) ? 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(7, title="BB SMA Length", minval=1)
bbsrc = input(close, title="BB Source")

strategyCalcOption = input(title="strategy to use", type=input.string, options=["BB", "BB_percentageB"],      defval="BB")



//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=1, minval=1)

//variables  END

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


vwapVal=vwap(close)



// Drawings

//plot emas
plot(shortEMAval, color = color.green, linewidth = 1, transp=0)
plot(longEMAval, color = color.orange, linewidth = 1, transp=0)
plot(ema200val, color = color.purple, linewidth = 2, style=plot.style_line ,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)

bbr = (bbsrc - lowerBand)/(upperBand - lowerBand) 
//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 = 2, 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>open and close>vwapVal and close<upperBand ) //and time_cond //     and  close>=vwapVal 



//Entry
strategy.entry(id="long", comment="VB LE" , long=true,  when= longCondition and ( strategyCalcOption=="BB"? is_price_dipped_bb(10,lowerBand) : is_bb_per_dipped(10,bbr)  )   and strategy.position_size<1 )   //is_price_dipped_bb(10,lowerBand))  //and strategy.position_size<1       is_bb_per_dipped(15,bbr) 


//add to the existing position
strategy.entry(id="long", comment="Add" , long=true,  when=strategy.position_size>=1 and close<strategy.position_avg_price and close>vwapVal) //and time_cond)

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



strategy.close(id="long", comment="TP Exit",   when=crossover(close,upperBand) )

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

//strategy.risk.max_intraday_loss(stopLoss, strategy.percent_of_equity)

আরো