এই কৌশলটি সিসিআই সূচক এবং গতির সূচককে আরএসআই সূচকের সাথে একত্রিত করে বাজারের প্রবণতা সনাক্ত করতে এবং যখন ওভারবয় / ওভারসোল্ড জোনে ফাঁক উপস্থিত হয় তখন প্রবেশ করে। এটি প্রবণতা এবং গড় বিপরীত পরিসীমা সনাক্ত করতে বোলিংজার ব্যান্ডগুলিও ব্যবহার করে। কৌশলটি কার্যকরভাবে ব্রেকআউট এবং পলব্যাকগুলি সনাক্ত করতে পারে, প্রবণতা শুরুতে তাড়াতাড়ি প্রবেশ করতে পারে এবং পরামিতিগুলি সামঞ্জস্য করে বিভিন্ন পণ্যের সাথে খাপ খাইয়ে নিতে পারে।
প্রথমত, কৌশলটি সিসিআই সূচক বা গতি সূচক দ্বারা দীর্ঘ এবং সংক্ষিপ্ত সংকেত নির্ধারণ করে যা 0 রেখার উপরে / নীচে অতিক্রম করে। এছাড়াও এটি মিথ্যা সংকেত এড়াতে RSI কে অতিরিক্ত ক্রয় / oversold অঞ্চলে, অর্থাৎ 65 এর উপরে ওভারক্রয় এবং 35 এর নীচে oversold এর জন্য প্রয়োজন।
এছাড়াও, কৌশলটি আরও নির্ভরযোগ্য সংকেত নিশ্চিত করার জন্য RSI উত্থান / হ্রাসের বিচ্যুতি নির্ধারণ করতে পারে।
যখন সিসিআই বা গতি দীর্ঘ সংকেত ট্রিগার করে এবং আরএসআই ওভারসোল্ড জোনে থাকে, তখন কৌশলটি পরীক্ষা করবে যে পূর্ববর্তী উচ্চ এবং নিম্ন উভয়ই বলিংজার ব্যান্ডের গড় রেখার উপরে রয়েছে কিনা। যদি তাই হয় তবে একটি দীর্ঘ সংকেত উত্পন্ন হয়। বিপরীতভাবে, যখন সংক্ষিপ্ত সংকেত ট্রিগার করে এবং পূর্ববর্তী উচ্চ নিম্ন গড় রেখার নীচে থাকে, তখন একটি সংক্ষিপ্ত সংকেত উত্পন্ন হয়।
সুতরাং কৌশলটি প্রবণতা এবং দোলন সূচক উভয়ই ব্যবহার করে, একটি প্রবণতা তাড়াতাড়ি পেতে এবং গড় বিপরীত পরিসরের সাথে মিথ্যা ব্রেকআউট এড়াতে। যখন মূল্য বোলিংজার ব্যান্ড থেকে বেরিয়ে আসে, কৌশলটি মুনাফা লক করতে এবং আরও ড্রডাউন প্রতিরোধের জন্য সমস্ত অবস্থান বন্ধ করবে।
ট্রেন্ড এবং ওসিলেশন সূচক একত্রিত করে ট্রেন্ডে দ্রুত প্রবেশ করা যায় এবং ব্যাপ্তির বাজারে অপ্রয়োজনীয় অবস্থান এড়ানো যায়।
দামের ফাঁক সহ বোলিংজার ব্যান্ডের গড় ব্যবহার করে মিথ্যা ব্রেকআউট কার্যকরভাবে ফিল্টার করা হয়।
ঐতিহাসিক আরএসআই চেক করা ভুল ট্রেডিং সংকেত তৈরি করা এড়ায়।
ম্যানুয়াল হস্তক্ষেপ ছাড়া সম্পূর্ণ স্বয়ংক্রিয় ট্রেডিং, অ্যালগরিদম ট্রেডিং জন্য উপযুক্ত।
নমনীয় পরামিতি সমন্বয় বিভিন্ন ট্রেডিং পণ্যের সাথে মানিয়ে নেয়।
স্টপ লস এবং লাভ নিয়ন্ত্রণের ঝুঁকি কার্যকরভাবে গ্রহণ করুন।
ভুল বোলিংজার ব্যান্ড প্যারামিটারগুলি অকার্যকর গড় বিপরীত সনাক্তকরণের কারণ হতে পারে।
ভুল সূচক পরামিতি অনেক মিথ্যা সংকেত উৎপন্ন করতে পারে।
ব্যর্থ ব্রেকআউটের সময়মত স্টপ লস প্রয়োজন যখন দাম গড়ের দিকে ফিরে আসে।
দুর্বল তরলতা অকার্যকর ব্রেকআউট ট্রেডিংয়ের কারণ হতে পারে।
দুর্বল বাঁক ফিটিং এড়ানোর জন্য পর্যাপ্ত historicalতিহাসিক তথ্য নিশ্চিত করুন।
মিথ্যা ব্রেকআউট এড়াতে ট্রেডিং সেশনে মনোযোগ দিন।
আরও স্থিতিশীল গড় বিপরীত পরিসরের জন্য বোলিংজার ব্যান্ডের পরামিতিগুলি অপ্টিমাইজ করুন।
আরও ভাল অপ্টিমাইজেশনের জন্য বিভিন্ন পণ্যের উপর পরীক্ষার পরামিতি।
অতিরিক্ত আকারের একক অবস্থান এড়ানোর জন্য অবস্থান আকার যোগ করুন।
প্রধানত সক্রিয় ঘন্টায় ট্রেড করার জন্য ট্রেডিং সেশন ফিল্টার যুক্ত করুন।
আরও বুদ্ধিমান সংকেত তৈরির জন্য মেশিন লার্নিং মডেল অন্তর্ভুক্ত করুন।
সামগ্রিক বাজার প্রবণতা নির্ধারণের জন্য আরও তথ্য উত্স একীভূত করুন।
একটি শক্তিশালী সূচক সমষ্টি গঠনের জন্য আরও সূচক যুক্ত করুন।
এই কৌশলটি প্রবণতা এবং দোলন সূচকগুলিকে একীভূত করে প্রবণতাগুলিকে দ্রুত ধরতে। বোলিংজার ব্যান্ড গড় এবং মূল্য ফাঁকগুলির সাথে এটি কার্যকরভাবে মিথ্যা ব্রেকআউটগুলি এড়ায়। নমনীয় পরামিতিগুলি দুর্দান্ত ব্যাকটেস্ট ফলাফল সহ বিভিন্ন পণ্যের সাথে খাপ খায়। পরবর্তী পদক্ষেপগুলি আরও দৃust়তার জন্য পরামিতি এবং মডেল সমষ্টিকে অনুকূলিতকরণ করা এবং দীর্ঘমেয়াদে ধারাবাহিক অতিরিক্ত রিটার্ন অর্জন করা।
/*backtest start: 2022-10-18 00:00:00 end: 2023-10-24 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title='BroTheJo Strategy', shorttitle='BTJ', overlay=true) // Input settings ccimomCross = input.string('CCI', 'Entry Signal Source', options=['CCI', 'Momentum']) ccimomLength = input.int(10, minval=1, title='CCI/Momentum Length') useDivergence = input.bool(false, title='Find Regular Bullish/Bearish Divergence') rsiOverbought = input.int(65, minval=1, title='RSI Overbought Level') rsiOversold = input.int(35, minval=1, title='RSI Oversold Level') rsiLength = input.int(14, minval=1, title='RSI Length') plotMeanReversion = input.bool(true, 'Plot Mean Reversion Bands on the chart') emaPeriod = input(200, title='Lookback Period (EMA)') bandMultiplier = input.float(1.6, title='Outer Bands Multiplier') // CCI and Momentum calculation momLength = ccimomCross == 'Momentum' ? ccimomLength : 10 mom = close - close[momLength] cci = ta.cci(close, ccimomLength) ccimomCrossUp = ccimomCross == 'Momentum' ? ta.cross(mom, 0) : ta.cross(cci, 0) ccimomCrossDown = ccimomCross == 'Momentum' ? ta.cross(0, mom) : ta.cross(0, cci) // RSI calculation src = close up = ta.rma(math.max(ta.change(src), 0), rsiLength) down = ta.rma(-math.min(ta.change(src), 0), rsiLength) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down) oversoldAgo = rsi[0] <= rsiOversold or rsi[1] <= rsiOversold or rsi[2] <= rsiOversold or rsi[3] <= rsiOversold overboughtAgo = rsi[0] >= rsiOverbought or rsi[1] >= rsiOverbought or rsi[2] >= rsiOverbought or rsi[3] >= rsiOverbought // Regular Divergence Conditions bullishDivergenceCondition = rsi[0] > rsi[1] and rsi[1] < rsi[2] bearishDivergenceCondition = rsi[0] < rsi[1] and rsi[1] > rsi[2] // Mean Reversion Indicator meanReversion = plotMeanReversion ? ta.ema(close, emaPeriod) : na stdDev = plotMeanReversion ? ta.stdev(close, emaPeriod) : na upperBand = plotMeanReversion ? meanReversion + stdDev * bandMultiplier : na lowerBand = plotMeanReversion ? meanReversion - stdDev * bandMultiplier : na // Entry Conditions prevHigh = ta.highest(high, 1) prevLow = ta.lowest(low, 1) longEntryCondition = ccimomCrossUp and oversoldAgo and (not useDivergence or bullishDivergenceCondition) and (prevHigh >= meanReversion) and (prevLow >= meanReversion) shortEntryCondition = ccimomCrossDown and overboughtAgo and (not useDivergence or bearishDivergenceCondition) and (prevHigh <= meanReversion) and (prevLow <= meanReversion) // Plotting oldLongEntryCondition = ccimomCrossUp and oversoldAgo and (not useDivergence or bullishDivergenceCondition) oldShortEntryCondition = ccimomCrossDown and overboughtAgo and (not useDivergence or bearishDivergenceCondition) plotshape(oldLongEntryCondition, title='BUY', style=shape.triangleup, location=location.belowbar, color=color.new(color.lime, 0), textcolor=color.new(color.white, 0), size=size.tiny) plotshape(oldShortEntryCondition, title='SELL', style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), size=size.tiny) // Strategy logic if (longEntryCondition) strategy.entry("Buy", strategy.long) if (shortEntryCondition) strategy.entry("Sell", strategy.short) // Close all open positions when outside of bands closeAll = (high >= upperBand) or (low <= lowerBand) if (closeAll) strategy.close_all("Take Profit/Cut Loss") // Plotting plot(upperBand, title='Upper Band', color=color.fuchsia, linewidth=1) plot(meanReversion, title='Mean', color=color.gray, linewidth=1) plot(lowerBand, title='Lower Band', color=color.blue, linewidth=1)