এই কৌশলটি একটি প্রবণতা অনুসরণকারী সিস্টেম যা বোলিংজার ব্যান্ড, অস্থিরতা পরিমাপ এবং ঝুঁকি ব্যবস্থাপনাকে একত্রিত করে। এটি সঠিক ঝুঁকি নিয়ন্ত্রণের জন্য এটিআর ব্যবহার করে গতিশীলভাবে অবস্থান আকারগুলি সামঞ্জস্য করার সময় বোলিংজার ব্যান্ডের বাইরে দামের ব্রেকআউট পর্যবেক্ষণ করে প্রবণতা সুযোগগুলি ক্যাপচার করে। কৌশলটিতে একটি একীকরণ সময় সনাক্তকরণ প্রক্রিয়া অন্তর্ভুক্ত রয়েছে যা কার্যকরভাবে ব্যাপ্তি বাজারে মিথ্যা সংকেত ফিল্টার করতে পারে।
কৌশলটি নিম্নলিখিত মূল যুক্তির উপর ভিত্তি করে কাজ করেঃ ১. বোলিঞ্জার ব্যান্ডের মাঝারি ব্যান্ড হিসাবে ২০ পেরিওডের চলমান গড় ব্যবহার করে, যার উপরের এবং নীচের ব্যান্ডগুলি ২টি স্ট্যান্ডার্ড ডিভিয়েশন। ২. বর্তমান বোলিংজার ব্যান্ডের প্রস্থকে তার চলমান গড়ের সাথে তুলনা করে বাজার একীভূতকরণের সময়গুলি চিহ্নিত করে। ৩. অ-সংহতকরণ সময়কালে, উপরের ব্যাণ্ড ব্রেকআউটে লম্বা পজিশন এবং নিম্ন ব্যান্ড ব্রেকআউটে শর্ট পজিশন প্রবেশ করে। ৪. স্টপ-লস স্তরগুলি গতিশীলভাবে গণনা করার জন্য ১৪ পেরিওড এটিআর ব্যবহার করে এবং ২ঃ১ ঝুঁকি-প্রতিফল অনুপাতের ভিত্তিতে লাভের স্তরগুলি সেট করে। ৫. ১% অ্যাকাউন্ট ঝুঁকি সীমা এবং ATR মানের উপর ভিত্তি করে প্রতিটি ট্রেডের জন্য স্বয়ংক্রিয়ভাবে পজিশনের আকার গণনা করে।
এই কৌশলটি একটি বিস্তৃত ঝুঁকি নিয়ন্ত্রণ ব্যবস্থা অন্তর্ভুক্ত করার সময় বোলিংজার ব্যান্ডের ব্রেকআউটগুলির মাধ্যমে প্রবণতা ক্যাপচার করে। এর শক্তিগুলি উচ্চ অভিযোজনযোগ্যতা এবং নিয়ন্ত্রিত ঝুঁকিতে রয়েছে, যদিও মিথ্যা ব্রেকআউট এবং প্রবণতা বিপরীত ঝুঁকিগুলিতে মনোযোগ দিতে হবে। প্রবণতা নিশ্চিতকরণ সূচক যুক্ত করে এবং পরামিতি সামঞ্জস্যের প্রক্রিয়াগুলি অনুকূলিতকরণের মাধ্যমে কৌশলটির আরও উন্নতির সুযোগ রয়েছে। সামগ্রিকভাবে, এটি একটি যৌক্তিকভাবে সুস্থ এবং ব্যবহারিক প্রবণতা অনুসরণকারী কৌশলকে উপস্থাপন করে।
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-08 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands Breakout Strategy", overlay=true) // Input parameters length = input(20, title="Bollinger Bands Length") stdDev = input(2.0, title="Standard Deviation") riskRewardRatio = input(2.0, title="Risk/Reward Ratio") atrLength = input(14, title="ATR Length") riskPercentage = input(1.0, title="Risk Percentage per Trade") // Calculate Bollinger Bands basis = ta.sma(close, length) dev = stdDev * ta.stdev(close, length) upperBand = basis + dev lowerBand = basis - dev // Calculate ATR for position sizing atr = ta.atr(atrLength) // Plot Bollinger Bands plot(basis, color=color.blue, title="Basis") plot(upperBand, color=color.red, title="Upper Band") plot(lowerBand, color=color.green, title="Lower Band") // Market Consolidation Detection isConsolidating = (upperBand - lowerBand) < ta.sma(upperBand - lowerBand, length) * 0.5 // Breakout Conditions longCondition = ta.crossover(close, upperBand) and not isConsolidating shortCondition = ta.crossunder(close, lowerBand) and not isConsolidating // Risk Management: Calculate position size equity = strategy.equity riskAmount = equity * (riskPercentage / 100) positionSize = riskAmount / (atr * riskRewardRatio) // Execute trades with risk management if (longCondition) strategy.entry("Long", strategy.long, qty=positionSize) strategy.exit("Take Profit", from_entry="Long", limit=close + atr * riskRewardRatio, stop=close - atr) if (shortCondition) strategy.entry("Short", strategy.short, qty=positionSize) strategy.exit("Take Profit", from_entry="Short", limit=close - atr * riskRewardRatio, stop=close + atr) // Alert conditions for breakouts alertcondition(longCondition, title="Long Breakout", message="Long breakout detected!") alertcondition(shortCondition, title="Short Breakout", message="Short breakout detected!")