এই কৌশলটি বোলিংজার ব্যান্ড এবং স্টোকাস্টিক দোলকের উপর ভিত্তি করে একটি ট্রেডিং কৌশল। এটি বাজারের অস্থিরতার পরিসীমা নির্ধারণ করতে বোলিংজার ব্যান্ড ব্যবহার করে এবং বাজারের ওভারবয়ড এবং ওভারসোল্ডের অবস্থা বিচার করতে স্টোকাস্টিক দোলক ব্যবহার করে। যখন দাম উপরের বোলিংজার ব্যান্ডের উপরে ভেঙে যায়, তখন কৌশলটি দীর্ঘ হয়; যখন দাম নীচের বোলিংজার ব্যান্ডের নীচে পড়ে, তখন কৌশলটি শর্ট হয়। একই সাথে, কৌশলটির নির্ভুলতা এবং নির্ভরযোগ্যতা উন্নত করতে কৌশলটি ট্রেডিং সংকেতগুলি ফিল্টার করতে স্টোকাস্টিক দোলকও ব্যবহার করে।
এই কৌশলটির মূল দুটি প্রযুক্তিগত সূচকঃ বোলিংজার ব্যান্ড এবং স্টোকাস্টিক দোলক। বোলিংজার ব্যান্ড তিনটি লাইন নিয়ে গঠিতঃ মাঝারি ব্যান্ড, উপরের ব্যান্ড এবং নীচের ব্যান্ড। মাঝের ব্যান্ডটি দামের একটি সহজ চলমান গড়, যখন উপরের এবং নীচের ব্যান্ডগুলি হল মধ্যবর্তী ব্যান্ড প্লাস এবং বিয়োগ মূল্যের মান বিচ্যুতির একটি নির্দিষ্ট গুণক। যখন দাম উপরের ব্যান্ডের উপরে ভেঙে যায়, তখন এটি নির্দেশ করে যে বাজারটি ওভারকোপ হতে পারে; যখন দাম নীচের ব্যান্ডের নীচে পড়ে, তখন এটি নির্দেশ করে যে বাজারটি ওভারসোল্ড হতে পারে।
স্টোকাস্টিক দোলক দুটি রেখার সমন্বয়ে গঠিতঃ %K লাইন এবং %D লাইন। %K লাইনটি সাম্প্রতিক সময়ের সর্বোচ্চ এবং সর্বনিম্ন মূল্যের মধ্যে বন্ধের মূল্যের অবস্থান পরিমাপ করে এবং %D লাইনটি %K লাইনের একটি চলমান গড়। যখন %K লাইন %D লাইনের উপরে অতিক্রম করে, তখন এটি নির্দেশ করে যে বাজারটি অতিরিক্ত ক্রয় হতে পারে; যখন %K লাইন %D লাইনের নীচে অতিক্রম করে, তখন এটি নির্দেশ করে যে বাজারটি অতিরিক্ত বিক্রি হতে পারে।
এই কৌশলটি এই দুটি সূচককে একত্রিত করে। যখন মূল্য উপরের বোলিংজার ব্যান্ডের উপরে ভাঙ্গবে এবং স্টোকাস্টিক দোলনকারী %K লাইন %D লাইনের উপরে অতিক্রম করবে, তখন কৌশলটি দীর্ঘ হবে; যখন মূল্য নিম্ন বোলিংজার ব্যান্ডের নীচে পড়ে এবং স্টোকাস্টিক দোলনকারী %K লাইন %D লাইনের নীচে অতিক্রম করে, তখন কৌশলটি শর্ট হবে। এই সংমিশ্রণটি অস্থির বাজারে ঘন ঘন ট্রেডিং এড়ানোর সময় বাজারের প্রবণতা কার্যকরভাবে ক্যাপচার করতে পারে।
এই কৌশলটি একটি সহজ কিন্তু কার্যকর ট্রেডিং কৌশল যা দুইটি ক্লাসিকাল প্রযুক্তিগত সূচক, বোলিংজার ব্যান্ড এবং স্টোকাস্টিক দোলককে একত্রিত করে, ট্রেন্ডিং এবং দোলনকারী উভয় বাজারের অবস্থায় স্থিতিশীল রিটার্ন অর্জন করে। যদিও কৌশলটির কিছু ঝুঁকি এবং সীমাবদ্ধতা রয়েছে, সঠিক অপ্টিমাইজেশন এবং উন্নতির মাধ্যমে এটি কৌশলটির কর্মক্ষমতা এবং অভিযোজনযোগ্যতা আরও বাড়িয়ে তুলতে পারে, একটি ট্রেডিং কৌশল হয়ে উঠতে পারে যা রেফারেন্স এবং শেখার যোগ্য।
/*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")