এই কৌশলটি বাজারে সম্ভাব্য ট্রেডিং সুযোগগুলি সনাক্ত করতে 5-দিনের এক্সপোনেনশিয়াল মুভিং এভারেজ (ইএমএ) এবং বোলিংজার ব্যান্ডস (বিবি) ব্যবহার করে। যখন দাম উপরের বোলিংজার ব্যান্ডের উপরে বা নীচের বোলিংজার ব্যান্ডের নীচে ভেঙে যায় এবং নির্দিষ্ট শর্ত পূরণ হয়, তখন কৌশলটি কিনতে বা বিক্রয় সংকেত তৈরি করে। কৌশলটি ঝুঁকি পরিচালনা এবং রিটার্ন সর্বাধিকীকরণের জন্য স্টপ লস এবং লক্ষ্য মূল্য স্তর ব্যবহার করে বাজারে উল্লেখযোগ্য মূল্য চলাচল ক্যাপচার করার লক্ষ্য রাখে।
এই কৌশলটির মূলটি হ'ল বাজারের প্রবণতা এবং অস্থিরতা নির্ধারণের জন্য 5-দিনের ইএমএ এবং বলিংজার ব্যান্ডগুলি ব্যবহার করা। যখন দামটি উপরের বলিংজার ব্যান্ডের উপরে ভেঙে যায় এবং পূর্ববর্তী মোমবাতি উচ্চতা 5 দিনের ইএমএ এর উপরে থাকে, তখন কৌশলটি একটি বিক্রয় সংকেত উত্পন্ন করে। বিপরীতভাবে, যখন দামটি নীচের বলিংজার ব্যান্ডের নীচে ভেঙে যায় এবং পূর্ববর্তী মোমবাতি নিম্ন 5 দিনের ইএমএর নীচে থাকে, তখন কৌশলটি একটি ক্রয় সংকেত উত্পন্ন করে। এই পদ্ধতিটি প্রবণতার সম্ভাব্য বিপরীত বা ব্রেকআউট পয়েন্টগুলি সনাক্ত করতে সহায়তা করে।
একটি ট্রেড এন্টার করার পরে, কৌশলটি একটি স্টপ লস স্তর এবং একটি লক্ষ্য মূল্যের স্তর সেট করে। সম্ভাব্য ক্ষতি সীমাবদ্ধ করতে স্টপ লস প্রবেশের দামের বিপরীত দিকে স্থাপন করা হয়। প্রত্যাশিত মুনাফা লক করার জন্য একটি নির্দিষ্ট সংখ্যক পয়েন্ট (যেমন, 1000 পয়েন্ট) এর উপর ভিত্তি করে লক্ষ্য মূল্যের স্তর গণনা করা হয়। যদি দাম স্টপ লস স্তর বা লক্ষ্য মূল্যের স্তরে পৌঁছায়, কৌশলটি বাণিজ্য বন্ধ করে এবং অবস্থান থেকে বেরিয়ে আসে।
ইএমএ এবং বলিংজার ব্যান্ডস ব্রেকআউট কৌশলটি বাজারে উল্লেখযোগ্য মূল্য আন্দোলনের জন্য দুটি সাধারণভাবে ব্যবহৃত প্রযুক্তিগত সূচককে কাজে লাগায়। কৌশলটিতে স্পষ্ট প্রবেশের শর্ত, ঝুঁকি ব্যবস্থাপনা ব্যবস্থা এবং মুনাফা লক্ষ্য রয়েছে, যা এটি বোঝা এবং বাস্তবায়ন করা সহজ করে তোলে। তবে, কৌশলটির কার্যকারিতা বাজারের অস্থিরতা এবং প্রবণতাহীন অবস্থার দ্বারা প্রভাবিত হতে পারে। অভিযোজনশীল পরামিতি, সংকেত ফিল্টারিং প্রক্রিয়া এবং পরামিতি অপ্টিমাইজেশান প্রবর্তন করে কৌশলটির দৃust়তা এবং লাভজনকতা আরও বাড়ানো যেতে পারে।
/*backtest start: 2024-05-01 00:00:00 end: 2024-05-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Nifty Bank Strategy", overlay=true) // Parameters lengthEMA = 5 lengthBB = 20 multBB = 1.5 targetPoints = 1000 // Calculate 5-day EMA ema5 = ta.ema(close, lengthEMA) // Calculate Bollinger Bands (length 20, multiplier 1.5) basis = ta.sma(close, lengthBB) dev = multBB * ta.stdev(close, lengthBB) upperBB = basis + dev lowerBB = basis - dev // Define strategy variables var float entryPrice = na var float stopLoss = na var float targetPrice = na var bool inTrade = false var bool isLong = false var float triggerHigh = na var float triggerLow = na var float triggerClose = na if not inTrade // Short Entry Trigger Condition if low > ema5 and low > upperBB and high > upperBB triggerLow := low triggerHigh := high triggerClose := close label.new(bar_index, high, "Waiting for short trigger", color=color.yellow) // Long Entry Trigger Condition else if high < ema5 and high < lowerBB and low < lowerBB triggerHigh := high triggerLow := low triggerClose := close label.new(bar_index, low, "Waiting for long trigger", color=color.yellow) // Check for Short Entry if not inTrade and na(triggerClose) == false and close < triggerClose if low < triggerLow entryPrice := close stopLoss := triggerHigh targetPrice := entryPrice - targetPoints strategy.entry("Short", strategy.short) label.new(bar_index, high, "Short", color=color.red, style=label.style_label_down) inTrade := true isLong := false triggerLow := na triggerHigh := na triggerClose := na // Check for Long Entry if not inTrade and na(triggerClose) == false and close > triggerClose if high > triggerHigh entryPrice := close stopLoss := triggerLow targetPrice := entryPrice + targetPoints strategy.entry("Long", strategy.long) label.new(bar_index, low, "Long", color=color.green, style=label.style_label_up) inTrade := true isLong := true triggerLow := na triggerHigh := na triggerClose := na // Manage Short Trade if inTrade and not isLong if high >= stopLoss strategy.close("Short", comment="SL Hit") label.new(bar_index, high, "SL Hit", color=color.red, style=label.style_label_down) inTrade := false else if low <= targetPrice strategy.close("Short", comment="Target Hit") label.new(bar_index, low, "Target Hit", color=color.green, style=label.style_label_up) inTrade := false // Manage Long Trade if inTrade and isLong if low <= stopLoss strategy.close("Long", comment="SL Hit") label.new(bar_index, low, "SL Hit", color=color.red, style=label.style_label_down) inTrade := false else if high >= targetPrice strategy.close("Long", comment="Target Hit") label.new(bar_index, high, "Target Hit", color=color.green, style=label.style_label_up) inTrade := false // Plotting plot(ema5, color=color.orange, title="5-day EMA") plot(upperBB, color=color.red, title="Upper Bollinger Band") plot(lowerBB, color=color.purple, title="Lower Bollinger Band") // Plot trade entry and exit points plotshape(series=inTrade and isLong ? entryPrice : na, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal") plotshape(series=inTrade and not isLong ? entryPrice : na, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal")