এই কৌশলটি একটি মাল্টি-টেকনিক্যাল সূচক ট্রেডিং সিস্টেম যা বোলিংজার ব্যান্ড, ট্রেন্ড সূচক, গতি সূচক এবং অস্থিরতা সূচককে একত্রিত করে, মূল্য-ভলিউম বিশ্লেষণের মাধ্যমে ট্রেডিং সিদ্ধান্ত গ্রহণ করে। কৌশলটি ADX ট্রেন্ড শক্তি নিশ্চিতকরণ এবং ভলিউম অগ্রগতি যাচাইকরণের সাথে মিলিত, মূল প্রবেশ সংকেত হিসাবে বোলিংজার ব্যান্ড ব্রেকআউট ব্যবহার করে, যা MACD এবং ATR ট্রেইলিং স্টপকে প্রস্থান প্রক্রিয়া হিসাবে ব্যবহার করে।
কৌশলটির মূল যুক্তি নিম্নলিখিত দিকগুলির উপর ভিত্তি করেঃ 1. দামের অস্থিরতা পরিসীমা জন্য একটি রেফারেন্স হিসাবে বোলিংজার ব্যান্ড ব্যবহার করে, যখন দাম উপরের ব্যান্ড উপরে বিরতি এবং স্বল্প সুযোগ যখন এটি নিম্ন ব্যান্ড নিচে বিরতি দীর্ঘ সুযোগ খুঁজছেন ২. ট্রেন্ডের শক্তি বিচার করতে ADX সূচক ব্যবহার করে, ট্রেন্ড যথেষ্ট শক্তিশালী হলেই পজিশন খুলুন (ADX>২৫) ৩. দামের ব্রেকআউটের বৈধতা নিশ্চিত করার জন্য ভলিউম বৃদ্ধি প্রয়োজন (২০ দিনের গড় ভলিউমের তুলনায় ১.৫ গুণ) 4. প্রবণতা দিক ফিল্টার হিসাবে সুপারট্রেন্ড সূচক ব্যবহার করে, শুধুমাত্র অবস্থান প্রবেশ যখন মূল্য প্রবণতা লাইন সঠিক পাশে হয় ৫. ম্যাকডি ডেথ ক্রস, এটিআর ট্রেইলিং স্টপ, বা এডিএক্স দুর্বলকরণকে প্রস্থান শর্ত হিসাবে ব্যবহার করে
এটি একটি সু-ডিজাইন করা মাল্টি-ইন্ডিক্টর ট্রেন্ড অনুসরণকারী কৌশল যা বোলিংজার ব্যান্ড, এডিএক্স, সুপারট্রেন্ড, এমএসিডি এবং অন্যান্য সূচকগুলির জৈবিক সংহতকরণের মাধ্যমে ট্রেন্ড অনুসরণ এবং ঝুঁকি নিয়ন্ত্রণের সংমিশ্রণ করে একটি ট্রেডিং সিস্টেম তৈরি করে। কৌশলটির সুবিধাগুলি একাধিক সংকেত নিশ্চিতকরণ এবং বিস্তৃত ঝুঁকি নিয়ন্ত্রণ প্রক্রিয়াতে রয়েছে, তবে এটি অতিরিক্ত অপ্টিমাইজেশন এবং পরামিতি সংবেদনশীলতার চ্যালেঞ্জের মুখোমুখি হয়। ক্রমাগত অপ্টিমাইজেশন এবং বাজারের পরিবেশে গতিশীল অভিযোজন দ্বারা, এই কৌশলটির বিভিন্ন বাজারের অবস্থার মধ্যে স্থিতিশীল কর্মক্ষমতা বজায় রাখার সম্ভাবনা রয়েছে।
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-10 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Nifty Options Trendy Markets with TSL", overlay=true) // Input Parameters lengthBB = input(20, title="Bollinger Bands Length") multBB = input(2.0, title="Bollinger Bands Multiplier") adxLength = input(14, title="ADX Length") adxThreshold = input(25, title="ADX Entry Threshold") adxExitThreshold = input(20, title="ADX Exit Threshold") superTrendLength = input(10, title="Supertrend Length") superTrendMultiplier = input(3.0, title="Supertrend Multiplier") macdFast = input(12, title="MACD Fast Length") macdSlow = input(26, title="MACD Slow Length") macdSignal = input(9, title="MACD Signal Length") atrLength = input(14, title="ATR Length") atrMultiplier = input(1.5, title="Trailing Stop ATR Multiplier") volumeSpikeMultiplier = input(1.5, title="Volume Spike Multiplier") // Calculations [macdLine, signalLine,_ ] = ta.macd(close, macdFast, macdSlow, macdSignal) macdCrossover = ta.crossover(macdLine, signalLine) macdCrossunder = ta.crossunder(macdLine, signalLine) [middleBB,upperBB,lowerBB] = ta.bb(close, lengthBB, multBB) [supertrend, direction] = ta.supertrend(superTrendMultiplier,superTrendLength) len = input.int(17, minval=1, title="DI Length") lensig = input.int(14, title="ADX Smoothing", minval=1, maxval=50) [diplus, diminus, adx] = ta.dmi(len, lensig) atr = ta.atr(atrLength) trailingStopLong = close - atr * atrMultiplier // For long trades trailingStopShort = close + atr * atrMultiplier // For short trades volumeSpike = volume > ta.sma(volume, 20) * volumeSpikeMultiplier // Entry Conditions longEntry = ta.crossover(close, upperBB) and adx > adxThreshold and volumeSpike and close > supertrend shortEntry = ta.crossunder(close, lowerBB) and adx > adxThreshold and volumeSpike and close < supertrend // Exit Conditions longExit = ta.crossunder(macdLine, signalLine) or close < trailingStopLong or adx < adxExitThreshold shortExit = ta.crossover(macdLine, signalLine) or close > trailingStopShort or adx < adxExitThreshold // Strategy Entries and Exits if (longEntry) strategy.entry("Long", strategy.long) if (shortEntry) strategy.entry("Short", strategy.short) if (longExit) strategy.close("Long") if (shortExit) strategy.close("Short") // Plotting plot(supertrend, color=color.blue, style=plot.style_line, linewidth=2, title="Supertrend Line") plot(trailingStopLong, title="Trailing Stop for Long", color=color.green, style=plot.style_line) plot(trailingStopShort, title="Trailing Stop for Short", color=color.red, style=plot.style_line) bgcolor(longEntry ? color.new(color.green, 90) : shortEntry ? color.new(color.red, 90) : na, title="Background for Entry") // Alerts alertcondition(longEntry, title="Long Entry", message="Buy Call: Long entry conditions met") alertcondition(shortEntry, title="Short Entry", message="Buy Put: Short entry conditions met") alertcondition(longExit, title="Long Exit", message="Exit Call: Long exit conditions met") alertcondition(shortExit, title="Short Exit", message="Exit Put: Short exit conditions met")