এই কৌশলটি বোলিংজার ব্যান্ডের উপর ভিত্তি করে একটি দ্বৈত-ট্র্যাক অগ্রগতি ট্রেডিং কৌশল। এটি বোলিংজার ব্যান্ডের উপরের এবং নীচের রেলগুলি কেনা এবং বিক্রয় সংকেত হিসাবে ব্যবহার করে এবং ঝুঁকি নিয়ন্ত্রণের জন্য একটি স্টপ লস পয়েন্ট সেট করে।
কৌশলটি বোলিংজার ব্যান্ডের উপরের এবং নীচের রেলগুলি ব্যবহার করে। বোলিংজার ব্যান্ডগুলি একটি চলমান গড় এবং এর সাথে সম্পর্কিত দুটি স্ট্যান্ডার্ড ডিভিয়েশন চ্যানেল নিয়ে গঠিত। যখন দাম বোলিংজার ব্যান্ডের উপরের রেলকে স্পর্শ করে বা ভেঙে যায় তখন একটি বিক্রয় সংকেত উত্পন্ন হয়; যখন দাম বোলিংজার ব্যান্ডের নীচের রেলকে স্পর্শ করে বা ভেঙে যায় তখন একটি ক্রয় সংকেত উত্পন্ন হয়। এছাড়াও, কৌশলটি একটি স্টপ লস পয়েন্টও সেট করে। যখন দাম চলমান গড়ের একটি নির্দিষ্ট শতাংশের চেয়ে কম হয়, তখন একটি স্টপ লস সনাক্ত করা হবে।
বিশেষত, কৌশলটি বলিংজার ব্যান্ডগুলি প্লট করার জন্য নির্দিষ্ট চক্রের চলমান গড় এবং দ্বিগুণ স্ট্যান্ডার্ড বিচ্যুতি (যেমন 20 দিন) গণনা করে। উপরের রেলটি চলমান গড় প্লাস দ্বিগুণ স্ট্যান্ডার্ড বিচ্যুতি এবং নিম্ন রেলটি চলমান গড় বিয়োগ দ্বিগুণ স্ট্যান্ডার্ড বিচ্যুতি। যখন বন্ধের দাম উপরের রেলের চেয়ে বড় বা সমান হয়, তখন একটি বিক্রয় সংকেত জারি করা হয়; যখন বন্ধের দাম নিম্ন রেলের চেয়ে কম বা সমান হয়, তখন একটি ক্রয় সংকেত জারি করা হয়। এছাড়াও, যদি দাম চলমান গড়ের একটি নির্দিষ্ট শতাংশের চেয়ে কম হয় (যেমন 1%) তবে একটি স্টপ লস সংকেত জারি করা হয়।
এই কৌশলটি বোলিংজার ব্যান্ডের বৈশিষ্ট্যগুলি ব্যবহার করে যখন অস্বাভাবিক দামের ওঠানামা ঘটে তখন ট্রেডিং সিগন্যাল জারি করে, যার ফলে মূল্য বিপরীতমুখী হওয়ার সুযোগগুলি ক্যাপচার করে। সহজ চলমান গড় ট্র্যাকিং কৌশলগুলির তুলনায়, এই কৌশলটি অস্থিরতা বাড়ার সময় ট্রেডিং সিগন্যাল তৈরি করতে পারে, কিছু পরিমাণে মিথ্যা ব্রেকআউটের ঝুঁকি এড়াতে পারে।
সহজ দ্বৈত-ট্র্যাকের অগ্রগতির কৌশলগুলির তুলনায়, এই কৌশলটি একটি স্টপ-লস প্রক্রিয়া যুক্ত করে। এটি পৃথক ভুল সংকেতগুলির কারণে ক্ষতি কার্যকরভাবে নিয়ন্ত্রণ করতে পারে। স্টপ-লস পয়েন্টের সেটিংও তুলনামূলকভাবে যুক্তিসঙ্গত, চলমান গড়ের কাছাকাছি, অত্যধিক স্টপ-লস এড়ানো যা খুব বেশি ক্ষতির কারণ হয়।
এই কৌশলটির সবচেয়ে বড় ঝুঁকি হ'ল বোলিংজার ব্যান্ডগুলি নিজেই ট্রেডিং সিগন্যালগুলির বৈধতা গ্যারান্টি দিতে পারে না। যখন বাজারে বিশেষ পরিস্থিতি ঘটে তখন দামগুলি তীব্র এবং অস্বাভাবিকভাবে ওঠানামা করতে পারে, এই ক্ষেত্রে বোলিংজার ব্যান্ড দ্বারা জারি করা ট্রেডিং সিগন্যালগুলি ভুল হতে পারে। এটি উল্লেখযোগ্য ক্ষতির কারণ হতে পারে।
এছাড়াও, স্টপ লস পয়েন্টগুলির সেটিংটি খুব আক্রমণাত্মক বা সংরক্ষণশীলও হতে পারে, যা চূড়ান্ত আয়কে প্রভাবিত করবে। যদি স্টপ লস ব্যাপ্তি খুব বড় হয় তবে বৈধ সংকেতগুলি প্রায়শই স্টপ লস বন্ধ হতে পারে; যদি স্টপ লস ব্যাপ্তি খুব ছোট হয় তবে এটি কার্যকরভাবে ক্ষতি নিয়ন্ত্রণ করতে পারে না।
কৌশলটি নিম্নলিখিত দিকগুলিতে অপ্টিমাইজ করা যেতে পারেঃ
সর্বোত্তম পরামিতি খুঁজে পেতে বিভিন্ন পরামিতি সমন্বয় পরীক্ষা করুন, যেমন চলমান গড় চক্রের বিভিন্ন মান, স্ট্যান্ডার্ড ডিভিয়েশন মাল্টিপ্লায়ার, স্টপ লস শতাংশ ইত্যাদি;
ভুল সংকেত এড়ানোর জন্য বিচার এবং একাধিক ফিল্টার শর্ত গঠন করার জন্য অন্যান্য সূচক বৃদ্ধি করুন;
স্টপ লস কৌশল অপ্টিমাইজ করুন, যেমন সরানো স্টপ লস, ব্যাচ স্টপ লসের পরিবর্তে সহজ স্টপ লসের ব্যবহার;
ট্রেডিং সিগন্যালগুলিকে নিশ্চিত করুন যাতে ফাঁদে না পড়ার জন্য বিভিন্ন টাইম চক্রের বোলিংজার ব্যান্ড একত্রিত করে।
সামগ্রিকভাবে, এই কৌশলটি প্রবণতা ট্র্যাকিং এবং দ্বৈত-ট্র্যাক অগ্রগতি কৌশলগুলির একটি ব্যবহারিক সমন্বয়। এটি যখন দামের ওঠানামা বৃদ্ধি পায় তখন বিপরীতমুখী হওয়ার সুযোগগুলি দখল করতে পারে এবং ঝুঁকিগুলি নিয়ন্ত্রণের জন্য স্টপ লস সেট করতে পারে। প্যারামিটার অপ্টিমাইজেশান, বর্ধিত সংকেত ফিল্টারিং, অনুকূলিত স্টপ লস কৌশল ইত্যাদির মাধ্যমে কৌশলটির স্থায়িত্ব এবং লাভজনকতা আরও বাড়ানো যেতে পারে।
/*backtest start: 2024-01-28 00:00:00 end: 2024-02-04 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands Strategy by Royce Mars", overlay=true) length = input.int(20, minval=1) maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"]) src = input(close, title="Source") mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev") stopLossPercent = input.float(1.0, title="Stop Loss Percent", minval=0.1, maxval=10, step=0.1) ma(source, length, _type) => switch _type "SMA" => ta.sma(source, length) "EMA" => ta.ema(source, length) "SMMA (RMA)" => ta.rma(source, length) "WMA" => ta.wma(source, length) "VWMA" => ta.vwma(source, length) basis = ma(src, length, maType) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev // Buy and Sell Conditions buyCondition = close <= lower sellCondition = close >= upper // Stop Loss Condition stopLossCondition = close < basis * (1 - stopLossPercent / 100) // Strategy Execution strategy.entry("Buy", strategy.long, when=buyCondition) strategy.close("Buy", when=sellCondition or stopLossCondition) strategy.entry("Sell", strategy.short, when=sellCondition) strategy.close("Sell", when=buyCondition) // Plotting on the Chart plotshape(buyCondition, title="Buy Signal", color=color.green, style=shape.labelup, location=location.belowbar) plotshape(sellCondition or stopLossCondition, title="Sell Signal", color=color.red, style=shape.labeldown, location=location.abovebar) // Plotting the Bollinger Bands plot(basis, "Basis", color=color.orange) p1 = plot(upper, "Upper Band", color=color.blue) p2 = plot(lower, "Lower Band", color=color.blue) fill(p1, p2, title="Background", color=color.rgb(33, 150, 243, 95))