
এই কৌশলটি বোলিংগার ব্যান্ডস এবং 5-দিনের ইন্ডেক্সের মুভিং এভারেজ (৫-দিনের ইএমএ) এর সাথে মিলিত হয়ে একটি ট্রেডিং সিগন্যাল তৈরি করে। যখন দামগুলি বোলিংগার ব্যান্ডের বাইরে চলে যায় এবং 5 দিনের ইএমএর নীচে বন্ধ হয় তখন শূন্য অবস্থানটি খোলা হয়; যখন দামগুলি বোলিংগার ব্যান্ডের নীচে চলে যায় এবং 5 দিনের ইএমএর উপরে বন্ধ হয় তখন একাধিক শূন্য অবস্থান খোলা হয়। একই সাথে, যখন বিপরীত সংকেত আসে তখন কৌশলটি বিদ্যমান অবস্থানগুলিকে সমতল করে এবং নতুন বিপরীত অবস্থানগুলি খোলে। এই কৌশলটি বাজারের অস্থিরতা এবং প্রবণতা পরিবর্তনকে ক্যাপচার করার জন্য, দামের তুলনামূলক উচ্চতা এবং নিম্নতা নির্ধারণের জন্য বোলিংয়ের মাধ্যমে এবং ট্রেন্ডিংয়ের জন্য ইএমএ ব্যবহার করে এই ট্রেডিং সংকেত তৈরি করতে।
এই কৌশলটি ব্রিনব্যান্ড এবং ইএমএর সংমিশ্রণের মাধ্যমে ট্রেন্ডিং সুযোগ এবং অস্থিরতার সুযোগগুলিকে আরও কার্যকরভাবে ক্যাপচার করতে পারে এবং মাঝারি থেকে দীর্ঘমেয়াদী ট্রেডিং কৌশলগুলির জন্য উপযুক্ত। তবে প্যারামিটার অপ্টিমাইজেশন, পজিশন নিয়ন্ত্রণ এবং ঝুঁকি পরিচালনার দিকে মনোযোগ দেওয়া প্রয়োজন এবং অন্যান্য প্রযুক্তিগত সূচক এবং মৌলিক বিশ্লেষণের সাথে মিলিত হওয়া উচিত যাতে কৌশলটির কার্যকারিতা আরও ভালভাবে ব্যবহার করা যায়। কৌশলটির কার্যকারিতা বাজারের অবস্থার দ্বারা প্রভাবিত হতে পারে এবং বাস্তব পরিস্থিতি অনুসারে সামঞ্জস্য এবং অপ্টিমাইজ করার প্রয়োজন।
/*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("Bollinger Bands and EMA Strategy", overlay=true)
// Define the Bollinger Bands
length = input.int(20, title="BB Length")
src = input(close, title="BB Source")
mult = input.float(2.0, title="BB Multiplier")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
// Plot Bollinger Bands
plot(upper, "Upper Band", color=color.red)
plot(lower, "Lower Band", color=color.green)
plot(basis, "Middle Band", color=color.blue) // Use plot instead of hline for basis
// Define the 5-period EMA
ema5 = ta.ema(close, 5)
// Plot the 5 EMA
plot(ema5, "5 EMA", color=color.orange)
// Generate signals
var float entry_price = na
var string trade_direction = "none"
if (na(close[1]))
trade_direction := "none"
// Condition for entering a short trade
if (open > upper and close < ema5)
if (trade_direction != "short")
strategy.entry("Short", strategy.short)
entry_price := close
trade_direction := "short"
// Condition for entering a long trade
if (open < lower and close > ema5)
if (trade_direction != "long")
strategy.entry("Long", strategy.long)
entry_price := close
trade_direction := "long"
// Close short trade on a long signal
if (trade_direction == "short" and open < lower and close > ema5)
strategy.close("Short")
strategy.entry("Long", strategy.long)
entry_price := close
trade_direction := "long"
// Close long trade on a short signal
if (trade_direction == "long" and open > upper and close < ema5)
strategy.close("Long")
strategy.entry("Short", strategy.short)
entry_price := close
trade_direction := "short"
// Close trades when opposite signal is generated
if (trade_direction == "long" and open > upper and close < ema5)
strategy.close("Long")
trade_direction := "none"
if (trade_direction == "short" and open < lower and close > ema5)
strategy.close("Short")
trade_direction := "none"