বোলিংজার ব্যান্ড, আরএসআই এবং চলমান গড়ের উপর ভিত্তি করে ট্রেন্ড অনুসরণকারী কৌশল

লেখক:চাওঝাং, তারিখঃ ২০২৪-০২-০২ ১১ঃ৩৫ঃ১৭
ট্যাগঃ

img

সারসংক্ষেপ

এই কৌশলটি বাজারে সম্ভাব্য প্রবেশ এবং প্রস্থান পয়েন্টগুলি সনাক্ত করতে বোলিংজার ব্যান্ড, আপেক্ষিক শক্তি সূচক (আরএসআই) এবং চলমান গড় (এমএ) একীভূত করে। এটি ক্রয় এবং বিক্রয় সংকেত (সতর্কতা) তৈরি করতে পারে যা ম্যানুয়ালি বা স্বয়ংক্রিয় ট্রেডিং সিস্টেমের মাধ্যমে কার্যকর করা যেতে পারে।

কৌশলগত যুক্তি

কৌশলটি মূল্য চ্যানেল তৈরি করতে বিভিন্ন পরামিতি সহ দুটি বোলিংজার ব্যান্ড ব্যবহার করে। ডিফল্ট পরামিতিগুলি 20 সময়ের দৈর্ঘ্য এবং 2 এর স্ট্যান্ডার্ড বিচ্যুতি। উপরের এবং নীচের ব্যান্ডগুলি গতিশীল প্রতিরোধ এবং সমর্থন স্তর হিসাবে কাজ করে।

আরএসআই সূচক মূল্যের গতির শক্তি পরিমাপ করে। এর মানগুলি অতিরিক্ত ক্রয় বা অতিরিক্ত বিক্রয় অবস্থার অস্তিত্ব নির্ধারণ করতে ব্যবহৃত হয়।

সামগ্রিক প্রবণতা দিক চিহ্নিত করতে একটি 50 পেরিওড চলমান গড় অন্তর্ভুক্ত করা হয়। যখন মূল্য এমএ এর উপরে থাকে, তখন এটি একটি আপট্রেন্ডের পরামর্শ দেয়। যখন মূল্য এমএ এর নীচে থাকে, তখন এটি একটি ডাউনট্রেন্ডের পরামর্শ দেয়।

লং ট্রেডের প্রবেশের শর্ত হল যখন আরএসআই ওভারকুপ লেভেলের উপরে যায় এবং বোলিংজার ব্যান্ডস সংকোচন হয় না। শর্ট ট্রেডের জন্য, যখন আরএসআই ওভারসোল্ড লেভেলের নিচে যায় এবং বোলিংজার ব্যান্ডস সংকোচন হয় না।

লং ট্রেডের জন্য প্রস্থান শর্ত হল যখন আরএসআই ওভারকুপ স্তরের নীচে পড়ে বা যখন মূল্য 50 পিরিয়ড এমএ এর নীচে বন্ধ হয়।

সুবিধা

  1. Bollinger Bands, RSI এবং MA এর সংমিশ্রণ ক্রস ভ্যালিডেশন সিগন্যালের মাধ্যমে মিথ্যা সংকেত সৃষ্টি এড়ায়।

  2. বোলিংজার ব্যান্ড স্থানীয় উচ্চতা / নিম্নতা সনাক্ত করে এবং ব্রেকআউট নিশ্চিত করে। আরএসআই মিথ্যা ব্রেকআউট ফিল্টার করে। এমএ সামগ্রিক প্রবণতা নির্ধারণ করে। সংকেতগুলি যাচাই করা হয়।

  3. দুটি স্ট্যান্ডার্ড ডিভিয়েশন ব্যবহার করে বোলিঞ্জার ব্যান্ডের অপ্টিমাইজড প্যারামিটারগুলি মূল্য চ্যানেলগুলিকে আরও সঠিকভাবে চিত্রিত করে।

ঝুঁকি

  1. বোলিংজার ব্যান্ডগুলি চুক্তি করার সময় মিথ্যা সংকেত তৈরি করতে পারে। আরএসআইও নিরপেক্ষ এবং ট্রেডিং এড়ানো উচিত।

  2. RSI এবং MA ব্যাপ্তি বাজারের সময় ভুল সংকেত তৈরি করতে পারে। ব্যাপ্তি শর্তগুলি আগে থেকে চিহ্নিত করা উচিত।

  3. মূল্য ফাঁক কার্যকরভাবে মোকাবেলা করা যায় না। অন্যান্য সূচকগুলি সত্যিকারের ব্রেকআউটগুলি নিশ্চিত করতে হবে।

উন্নতির সুযোগ

  1. বিভিন্ন পণ্য এবং সময়সীমার জন্য বোলিংজার ব্যান্ড এবং আরএসআই এর পরামিতিগুলি অনুকূল করুন।

  2. স্টপ লস অর্ডার যোগ করুন যা স্বয়ংক্রিয়ভাবে ট্রিগার হয় যখন দাম স্তরের স্টপ লস লঙ্ঘন করে।

  3. এডিএক্সের মতো ট্রেন্ড ফিল্টার যুক্ত করুন, যা বাজারের সময় অকার্যকর লেনদেন এড়াতে পারে।

  4. ম্যানুয়াল হস্তক্ষেপ ছাড়া স্বয়ংক্রিয়ভাবে সংকেত কার্যকর করতে স্বয়ংক্রিয় ট্রেডিং সিস্টেমের সাথে সংহত করুন।

সিদ্ধান্ত

এই কৌশলটি বোলিংজার ব্যান্ড, আরএসআই এবং এমএ এর শক্তিগুলিকে সংকেত নির্ভুলতা উন্নত করতে অনুকূলিত পরামিতিগুলির সাথে একত্রিত করে। এটি স্বয়ংক্রিয়ভাবে কার্যকর করার জন্য বাণিজ্য সতর্কতা তৈরি করতে পারে। মূল ঝুঁকিগুলি ব্যাপ্তি বাজারের সময় মিথ্যা সংকেত থেকে আসে। একটি প্রবণতা ফিল্টার যুক্ত করা অকার্যকর বাণিজ্য হ্রাস করতে পারে। সামগ্রিকভাবে, প্যারামিটার অপ্টিমাইজেশন ব্যবহার করে এবং একাধিক সূচক একীভূত করে, এই কৌশলটি সংকেতের গুণমান উন্নত করে এবং ব্যবহারের জন্য লাইভ মার্কেটে বৈধ করার যোগ্য।


/*backtest
start: 2023-01-26 00:00:00
end: 2024-02-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands, RSI, and MA Strategy", overlay=true)

// Define input variables
b_len = input(20, title="BB Length")
bb_mult = input(2.0, title="BB Standard Deviation")
bb_deviation1 = input(1.0, title="BB Deviation 1")
rsi_len = input(14, title="RSI Length")
overbought = input(70, title="Overbought RSI Level")
oversold = input(30, title="Oversold RSI Level")
ma_len = input(50, title="MA Length")
stop_loss_percent = input(1.0, title="Stop Loss Percentage")
source = input(close, title="Source")

// Calculate Bollinger Bands
bb_upper = ta.sma(source, b_len) + bb_mult * ta.stdev(source, b_len)
bb_lower = ta.sma(source, b_len) - bb_mult * ta.stdev(source, b_len)
bb_upper1 = ta.sma(source, b_len) + bb_deviation1 * ta.stdev(source, b_len)
bb_lower1 = ta.sma(source, b_len) - bb_deviation1 * ta.stdev(source, b_len)

// Calculate RSI
rsi = ta.rsi(source, rsi_len)

// Calculate Moving Average
ma = ta.sma(source, ma_len)

// Determine if Bollinger Bands are contracting
bb_contracting = ta.stdev(source, b_len) < ta.stdev(source, b_len)[1]

// Entry conditions
enterLong = rsi > overbought and not bb_contracting
enterShort = rsi < oversold and not bb_contracting

// Exit conditions
exitLong = close < ma
exitShort = close > ma

// Exit trades and generate alerts
if strategy.position_size > 0 and exitLong
    strategy.close("Long") // Exit the long trade
    alert("Long Exit", alert.freq_once_per_bar_close)
if strategy.position_size < 0 and exitShort
    strategy.close("Short") // Exit the short trade
    alert("Short Exit", alert.freq_once_per_bar_close)

// Strategy orders
if enterLong
    strategy.entry("Long", strategy.long)
if enterShort
    strategy.entry("Short", strategy.short)
if exitLong
    strategy.close("Long")
if exitShort
    strategy.close("Short")

// Plotting Bollinger Bands
plot(bb_upper, color=color.blue, title="BB Upper 2")
plot(bb_lower, color=color.blue, title="BB Lower 2")
plot(bb_upper1, color=color.red, title="BB Upper 1")
plot(bb_lower1, color=color.red, title="BB Lower 1")

// Plotting RSI
plot(rsi, color=color.orange, title="RSI")

// Plotting Moving Average
plot(ma, color=color.green, title="Moving Average")


আরো