এটি একটি ট্রেডিং কৌশল যা বোলিংজার ব্যান্ড ব্যবহার করে। এই কৌশলটির লক্ষ্য হল যখন দামগুলি বোলিংজার ব্যান্ড ব্যবহার করে হিংস্রভাবে ওঠানামা করে তখন সুযোগগুলি সনাক্ত করা এবং সংশ্লিষ্ট ক্রয় বা বিক্রয় সিদ্ধান্ত নেওয়া।
কৌশলটি বোলিংজার ব্যান্ডের উপরের ব্যান্ড, মাঝারি ব্যান্ড এবং নীচের ব্যান্ড গণনা করে তা নির্ধারণ করতে যে বর্তমান মূল্যটি অস্থিরতার পরিসরের মধ্যে রয়েছে কিনা এবং তাই পজিশন খোলার বা বন্ধ করার বিষয়ে সিদ্ধান্ত নেয়। যখন দাম উপরের ব্যান্ডের কাছে আসে, তখন এটি লংয়ের জন্য চরম পয়েন্ট হিসাবে বিবেচিত হয় এবং কৌশলটি দীর্ঘ অবস্থান বন্ধ করতে পছন্দ করে। যখন দাম নিম্ন ব্যান্ডের কাছে পড়ে, তখন এটি শর্টসের চরম পয়েন্ট হিসাবে বিবেচিত হয় এবং কৌশলটি দীর্ঘ অবস্থান খোলার পছন্দ করে।
এছাড়াও, কৌশলটি প্রবণতা বিপরীত কারণগুলিও প্রবর্তন করে। যদি বিপরীত সংকেত থাকে তবে এটি সংশ্লিষ্ট ক্রয় বা বিক্রয় সিদ্ধান্তগুলিও ট্রিগার করবে। বিশেষত, কৌশলটির যুক্তি নিম্নরূপঃ
উপরের কৌশলটি হল এই কৌশলটির মূল ট্রেডিং লজিক। বোলিংজার ব্যান্ডের বৈশিষ্ট্যগুলি ব্যবহার করে এবং প্রবণতা এবং বিপরীতমুখী কারণগুলি একত্রিত করে, কৌশলটি উদ্বায়ীতা বাড়ার সময় বিপরীতমুখী পয়েন্টগুলি ধরার চেষ্টা করে।
সাধারণ চলমান গড় কৌশলগুলির তুলনায়, এই কৌশলটির নিম্নলিখিত সুবিধা রয়েছেঃ
সাধারণভাবে, এই কৌশলটি বোলিংজার ব্যান্ড এবং মূল্যের বারগুলিকে তুলনামূলকভাবে ভালভাবে একত্রিত করে। এটি ঝুঁকি নিয়ন্ত্রণের সময় একটি নির্দিষ্ট স্তরের মুনাফা নিশ্চিত করার জন্য যুক্তিসঙ্গত বিপরীত পয়েন্টে ট্রেড করে।
যাইহোক, এই কৌশলটির সাথে এখনও কিছু ঝুঁকি রয়েছেঃ
সেই অনুযায়ী, ভবিষ্যতে অপ্টিমাইজেশানগুলি নিম্নলিখিত বিষয়গুলিতে ফোকাস করতে পারেঃ
উপসংহারে, এটি একটি সাধারণ বোলিংজার ব্যান্ড ট্রেডিং কৌশল টেমপ্লেট। এটি কেবলমাত্র বোলিংজার ব্যান্ডগুলি ব্যবহারের জন্য প্রচলিত অত্যধিক অকার্যকর ব্যবসায়গুলিকে ফিল্টার সংকেতগুলিতে প্রবণতা বিপরীত বিচার প্রবর্তন করে এড়ায়, যা তাত্ত্বিকভাবে একটি ভাল কৌশল পারফরম্যান্সের দিকে পরিচালিত করতে পারে। তবে প্যারামিটার এবং সংকেত ফিল্টারিং এখনও দৃust়তার জন্য আরও অপ্টিমাইজেশন এবং উন্নতির প্রয়োজন এবং ভুল বিচার হ্রাস করতে।
/*backtest start: 2023-12-18 00:00:00 end: 2024-01-17 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=3 strategy("Noro's Bollinger Strategy v1.2", shorttitle = "Bollinger str 1.2", overlay = true ) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") length = input(20, defval = 20, minval = 1, maxval = 1000, title = "Bollinger Length") mult = input(2.0, defval = 2.0, minval = 0.001, maxval = 50, title = "Bollinger Mult") source = input(ohlc4, defval = ohlc4, title = "Bollinger Source") uset = input(true, defval = true, title = "Use trend entry") usect = input(true, defval = true, title = "Use counter-trend entry") fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") showbands = input(true, defval = true, title = "Show Bollinger Bands") //Bollinger Bands basis = sma(source, length) dev = mult * stdev(source, length) upper = basis + dev lower = basis - dev //Lines col = showbands ? black : na plot(upper, linewidth = 1, color = col) plot(basis, linewidth = 1, color = col) plot(lower, linewidth = 1, color = col) //Body body = abs(close - open) abody = ema(body, 30) //Signals bar = close > open ? 1 : close < open ? -1 : 0 up1 = bar == -1 and close >= basis and close < upper and (close < strategy.position_avg_price or strategy.position_size == 0) and uset dn1 = bar == 1 and close <= basis and close > lower and (close > strategy.position_avg_price or strategy.position_size == 0) and uset up2 = close <= lower and usect dn2 = close >= upper and usect exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open) and body > abody / 2 //Trading if up1 or up2 strategy.entry("Long", strategy.long, needlong == false ? 0 : na) if dn1 or dn2 strategy.entry("Short", strategy.short, needshort == false ? 0 : na) if exit strategy.close_all()