
এই কৌশলটি একটি ব্রিন-ব্যান্ড এবং র্যান্ডম ওসিলার-ভিত্তিক ট্রেডিং কৌশল। এটি বাজারের ওঠানামা নির্ধারণের জন্য ব্রিন ব্যবহার করে এবং বাজারের ওভার-বয় এবং ওভার-সেলিংয়ের বিচার করার জন্য র্যান্ডম ওসিলার ব্যবহার করে। যখন দাম ব্রিন-ব্যান্ডের ট্র্যাকটি ভেঙে যায়, তখন কৌশলটি অতিরিক্ত হয়; যখন দাম ব্রিন-ব্যান্ডের ট্র্যাকটি ভেঙে যায়, তখন কৌশলটি খালি হয়। একই সাথে, কৌশলটি সঠিকতা এবং নির্ভরযোগ্যতার জন্য ট্রেডিং সংকেতগুলিকে ফিল্টার করার জন্য র্যান্ডম ওসিলার ব্যবহার করে।
এই কৌশলটির কেন্দ্রবিন্দু হল বুলিন বন্ড এবং র্যান্ডম ওসিলার দুটি প্রযুক্তিগত সূচক। বুলিন বন্ডটি তিনটি লাইন নিয়ে গঠিতঃ মধ্যম, উপরের এবং নীচের রেল। মধ্যম রেলটি দামের একটি সরল চলমান গড়, উপরের এবং নীচের রেলগুলি যথাক্রমে মধ্যম রেলের প্লাস এবং বিয়োগ মূল্যের মানদণ্ডের পার্থক্যের একটি গুণিতক। যখন দামটি রেলের উপরে উঠে যায়, তখন বাজারটি সম্ভবত ওভারবয়েড অবস্থায় রয়েছে; যখন দামটি রেলের নিচে পড়ে, তখন বাজারটি সম্ভবত ওভারসেল অবস্থায় রয়েছে।
এলোমেলো দোলক দুটি লাইন নিয়ে গঠিতঃ% কে লাইন এবং% ডি লাইন।% কে লাইনটি সাম্প্রতিক সময়ের মধ্যে সর্বোচ্চ এবং সর্বনিম্ন দামের মধ্যে বন্ধের দামের অবস্থান পরিমাপ করে,% ডি লাইনটি% কে লাইনের চলমান গড়।% কে লাইনের উপরে% ডি লাইনটি অতিক্রম করলে বাজারটি সম্ভবত ওভারবয়েড অবস্থায় রয়েছে;% কে লাইনের নীচে% ডি লাইনটি অতিক্রম করলে বাজারটি সম্ভবত ওভারসোল অবস্থায় রয়েছে।
এই কৌশলটি এই দুটি সূচককে একত্রিত করে, যখন দামগুলি বুলিন বন্ডকে অতিক্রম করে এবং এলোমেলোভাবে ওসিলার% কে লাইনটি% ডি লাইনটি অতিক্রম করে তখন কৌশলটি বেশি হয়; যখন দামগুলি বুলিন বন্ডকে অতিক্রম করে এবং এলোমেলোভাবে ওসিলার% কে লাইনটি% ডি লাইনটি অতিক্রম করে তখন কৌশলটি খালি হয়। এই সংমিশ্রণটি কার্যকরভাবে বাজারের প্রবণতা ক্যাপচার করতে পারে এবং একই সাথে বাজারে ঘন ঘন লেনদেন এড়াতে পারে।
এই কৌশলটি একটি সহজ এবং কার্যকর ট্রেডিং কৌশল, যা ব্রিন ব্যান্ড এবং এলোমেলো ওসিলেটর দুটি ক্লাসিক প্রযুক্তিগত সূচককে একত্রিত করে, যা প্রবণতা এবং ঝড় উভয় বাজারের অবস্থার মধ্যে স্থিতিশীল লাভ অর্জন করতে সক্ষম। যদিও এই কৌশলটির কিছু ঝুঁকি এবং সীমাবদ্ধতা রয়েছে, তবে যথাযথ অপ্টিমাইজেশন এবং উন্নতির মাধ্যমে কৌশলটির কার্যকারিতা এবং অভিযোজনযোগ্যতা আরও বাড়ানো যেতে পারে, এটি একটি ট্রেডিং কৌশল যা উল্লেখ এবং শেখার জন্য উপযুক্ত।
/*backtest
start: 2023-05-03 00:00:00
end: 2024-05-08 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Unique Bollinger Bands Strategy", overlay=true)
src = input(close)
length = input.int(34, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)
basis = ta.sma(src, length)
dev = ta.stdev(src, length)
dev2 = mult * dev
upper1 = basis + dev
lower1 = basis - dev
upper2 = basis + dev2
lower2 = basis - dev2
colorBasis = src >= basis ? color.blue : color.orange
pBasis = plot(basis, linewidth=2, color=colorBasis)
pUpper1 = plot(upper1, color=color.new(color.blue, 0), style=plot.style_circles)
pUpper2 = plot(upper2, color=color.new(color.blue, 0))
pLower1 = plot(lower1, color=color.new(color.orange, 0), style=plot.style_circles)
pLower2 = plot(lower2, color=color.new(color.orange, 0))
fill(pBasis, pUpper2, color=color.new(color.blue, 80))
fill(pUpper1, pUpper2, color=color.new(color.blue, 80))
fill(pBasis, pLower2, color=color.new(color.orange, 80))
fill(pLower1, pLower2, color=color.new(color.orange, 80))
// Parameters
bbLength = input.int(34, title="Length", minval=1)
bbMultiplier = input.float(2.0, title="Multiplier", minval=0.001, maxval=50)
// Source
priceData = close // Unique name for price data source
// Bollinger Bands Calculation
bbBasis = ta.sma(priceData, bbLength)
bbDeviation = ta.stdev(priceData, bbLength)
bbDeviationMultiplied = bbMultiplier * bbDeviation
bbUpperBand = bbBasis + bbDeviationMultiplied
bbLowerBand = bbBasis - bbDeviationMultiplied
// Plot Bollinger Bands
plot(bbBasis, color=color.blue, linewidth=2)
plot(bbUpperBand, color=color.blue)
plot(bbLowerBand, color=color.orange)
// Strategy Logic for Entry and Exit
enterLong = ta.crossover(priceData, bbUpperBand)
enterShort = ta.crossunder(priceData, bbLowerBand)
// Enter Long when price crosses over upper band
if (enterLong)
strategy.entry("Long", strategy.long)
// Enter Short when price crosses under lower band
if (enterShort)
strategy.entry("Short", strategy.short)
// Close Long when Short condition is met (i.e., price under lower band)
if (enterShort)
strategy.close("Long")
// Close Short when Long condition is met (i.e., price over upper band)
if (enterLong)
strategy.close("Short")