বোলিংজার ব্যান্ডস স্টপ লস কৌশল

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

img

সারসংক্ষেপ

বোলিংজার ব্যান্ডস কৌশল হল একটি ক্লাসিক কৌশল যা ট্রেন্ড ট্র্যাকিং এবং ওভারকপ/ওভারসোল্ড সিগন্যালের জন্য বোলিংজার ব্যান্ড ব্যবহার করে। এই সংস্করণটি মূল কৌশলটির চেয়ে ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লস প্রক্রিয়া যুক্ত করে।

কৌশলটি অবস্থানগুলি প্রতিষ্ঠার জন্য উপরের / নিম্ন বোলিঞ্জার ব্যান্ডগুলির সোনার / মৃত ক্রসওভারের মাধ্যমে ওভারবয় / ওভারসোল্ড শর্তগুলি বিচার করে। ব্যান্ডগুলির মধ্যে অঞ্চলটি বর্তমান বাজারের অস্থিরতার পরিসীমাকে প্রতিফলিত করে। ব্যান্ডগুলি মাঝারি, উপরের এবং নীচের ব্যান্ডগুলির সমন্বয়ে গঠিত, যেখানে মাঝারি ব্যান্ডটি এন-দিনের সহজ চলমান গড় এবং উপরের / নীচের ব্যান্ডগুলি মাঝারি ব্যান্ড +/- কে স্ট্যান্ডার্ড বিচ্যুতি।

নীতিমালা

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

এই কৌশলটি ট্রেন্ড ট্র্যাকিং এন্ট্রিগুলির জন্য বোলিংজার ব্যান্ড থেকে ওভারকপ/ওভারসোল্ড সংকেতগুলিকে একত্রিত করে। ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লস প্রক্রিয়া অন্তর্ভুক্ত করা হয়।

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

অর্ডারগুলি পূরণ করার পরে, ঝুঁকিগুলি পরিচালনা করার জন্য নির্দিষ্ট শতাংশ স্টপ লস স্তরগুলি সেট করা হয়। যখন ক্ষতি স্টপ লস শতাংশ অতিক্রম করে, তখন পরবর্তী ক্ষতি সীমাবদ্ধ করতে বর্তমান অবস্থানগুলি বন্ধ করা হয়।

সুবিধা

  1. কম ক্রয়-উচ্চ বিক্রয় সেটআপগুলির জন্য বোলিংজার ব্যান্ডগুলি ব্যবহার করে ব্যান্ড ক্রসওভারের ভিত্তিতে অতিরিক্ত ক্রয় / অতিরিক্ত বিক্রয় স্তরগুলি সনাক্ত করুন।

  2. বোলিংজার ব্যান্ডের ভোল্টেবিলিটি সম্পত্তির মাধ্যমে প্রবণতা ক্যাপচার করুন।

  3. স্টপ লস প্রক্রিয়া কার্যকরভাবে ট্রেড প্রতি সর্বোচ্চ ক্ষতি সীমাবদ্ধ করে।

  4. ট্রেন্ড ট্র্যাকিং এবং স্টপ লস এর সমন্বয় স্থিতিশীল লাভের দিকে পরিচালিত করে।

ঝুঁকি এবং অপ্টিমাইজেশন

  1. প্যারামিটার সেটিংগুলি সংকেতের গুণমানকে প্রভাবিত করে। মাঝারি ব্যান্ড দৈর্ঘ্য N এবং স্ট্যান্ডার্ড ডিভিয়েশন গুণক K বিভিন্ন বাজারের জন্য যুক্তিসঙ্গতভাবে সেট করা উচিত, অথবা নির্ভুলতা ক্ষতিগ্রস্থ হবে।

  2. খুব বড় বা কম আকারের স্টপ লস রিটার্ন স্থিতিশীলতার ক্ষতি করে। খুব বড় শতাংশ প্রতি বাণিজ্যে ভারী ক্ষতির ঝুঁকি রাখে, যখন অল্প আকারের শতাংশ ঝুঁকিগুলি অকাল স্টপ লস ট্রিগার করে। বিভিন্ন পণ্যের উপর ভিত্তি করে যুক্তিসঙ্গত শতাংশ নির্ধারণ করা উচিত।

  3. অন্যান্য সূচক সহ অতিরিক্ত ফিল্টারগুলি সংকেতের নির্ভুলতা উন্নত করতে পারে।

  4. বিভিন্ন হোল্ডিং সময়কালের সেটিংস পরীক্ষা করা যেতে পারে, যেমন উচ্চতর ফ্রিকোয়েন্সি ট্রেডিং এবং মূলধন ব্যবহারের দক্ষতার উন্নতির জন্য ঘন্টার বা স্বল্প সময়ের ব্যান্ডগুলি একত্রিত করা।

সিদ্ধান্ত

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


/*backtest
start: 2023-11-15 00:00:00
end: 2023-11-22 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Bollinger Bands Strategy", overlay=false, shorttitle="BBS", pyramiding=0, currency=currency.USD, commission_type=strategy.commission.percent, commission_value=0.03, initial_capital=1000)
source = input(close, "Source")
length = input.int(20, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50, step=0.001)
stopLossFactor = input.float(1, "Stop Loss Percent", maxval = 100, minval = 0, step=0.1)

basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
upper = basis + dev
lower = basis - dev

var float lastTradePrice = na
var float stopLossLow = na
var float stopLossHigh = na
var bool currentIsLong = na

var bool nextExpectedIsLong = true

var bool existedLong = false
var bool existedShort = false

buyEntry = ta.crossover(source, lower)
sellEntry = ta.crossunder(source, upper)

if (buyEntry and nextExpectedIsLong == true)
	strategy.entry("BBandLE", strategy.long, comment="BBandLE")
	nextExpectedIsLong := false
	if(nz(strategy.position_size[1], 0) < 0) // new position detected
	    lastTradePrice := close
	    stopLossLow := lastTradePrice * (1 - (stopLossFactor / 100))
	    stopLossHigh := lastTradePrice * (1 + (stopLossFactor / 100))
else
    strategy.cancel("BBandLE")

if (sellEntry and nextExpectedIsLong == false)
	strategy.entry("BBandSE", strategy.short, comment="BBandSE")
	nextExpectedIsLong := true
	if(nz(strategy.position_size[1], 0) > 0) // new position detected
        lastTradePrice := close
        stopLossLow := lastTradePrice * (1 - (stopLossFactor / 100))
        stopLossHigh := lastTradePrice * (1 + (stopLossFactor / 100))
else
    strategy.cancel("BBandSE")

strategy.close("BBandLE", close < stopLossLow)
strategy.close("BBandSE", close > stopLossHigh)

// if(nz(strategy.position_size[1], 0) < 0 and close > stopLossHigh)
//     strategy.entry("BBandLE", strategy.long, comment="BBandLE")
// 	lastTradePrice := close
// 	stopLossLow := lastTradePrice * (1 - (stopLossFactor / 100))
// 	stopLossHigh := lastTradePrice * (1 + (stopLossFactor / 100))
// if(nz(strategy.position_size[1], 0) > 0 and close < stopLossLow)
//     strategy.exit("BBandSE", strategy.short, comment="BBandSE")
//     lastTradePrice := close
//     stopLossLow := lastTradePrice * (1 - (stopLossFactor / 100))
//     stopLossHigh := lastTradePrice * (1 + (stopLossFactor / 100))

plot(source, "close", color.blue)
plot(lower, "lower", color.red)
plot(upper, "upper", color.red)
plot(stopLossLow, "StopLossLow", color.black)
plot(stopLossHigh, "StopLossHigh", color.black)
plot(lastTradePrice, "lastTradePrice", color.green)
plotchar(strategy.position_size > 0, char="-", size=size.tiny, location=location.bottom, color=color.green)
plotchar(strategy.position_size < 0, char="-", size=size.tiny, location=location.bottom, color=color.red)




আরো