এই কৌশলটি দুটি ধরণের ট্রেইলিং স্টপ কৌশল ডিজাইন করতে এবং সময়সীমার মধ্যে তাদের পদ্ধতিগতভাবে ব্যাকটেস্ট করতে অভিযোজিত বোলিংজার ব্যান্ড ব্যবহার করে। এটি প্রবণতা অনুসরণকারী কৌশলগুলির অন্তর্গত।
অ্যাডাপ্টিভ বোলিংজার ব্যান্ডের উপরের এবং নীচের ব্যান্ডগুলি গণনা করুন, নিয়মিত চ্যানেল প্রস্থ সহ।
ব্রেকআউট ট্র্যাকিং কৌশল ব্যান্ড ব্রেকআউটে পজিশন খুলতে এবং ব্যান্ডের ভিতরে দাম ফিরে আসার সময় বন্ধ করতে।
বিপরীতমুখী বিপরীতমুখী কৌশল যখন দাম ব্যান্ডে পৌঁছে যায় তখন পজিশন খুলতে এবং যখন দাম ব্যান্ডের ভিতরে ফিরে আসে তখন বন্ধ করতে।
লং/শর্ট সাইড নির্ধারণে সহায়তার জন্য সিসিআই সূচক ব্যবহার করুন।
উভয় কৌশল কার্যকর কিনা তা যাচাই করার জন্য একাধিক সময়সীমার মধ্যে ব্যাকটেস্ট।
বোলিংজার ব্যান্ডগুলি মূল্যের প্রবণতা ক্যাপচার করতে স্বজ্ঞাত।
এই দুটি কৌশল নির্ভরযোগ্যতার জন্য বিভিন্ন বাজারের অবস্থার সাথে সামঞ্জস্যপূর্ণ।
সিসিআই দীর্ঘ/সংক্ষিপ্ত দিকনির্দেশনা নির্ধারণে সাহায্য করে।
মাল্টি-টাইমফ্রেম ব্যাকটেস্টিং ফলাফলগুলিকে আরও বিশ্বাসযোগ্য করে তোলে।
সহজ এবং স্পষ্ট কৌশল নিয়ম বাস্তবায়ন করা সহজ।
কিছু পরিস্থিতিতে বোলিংজার ব্যান্ড ব্যর্থ হতে পারে।
উভয় কৌশলতেই অকাল বা বিলম্বিত বন্ধের ঝুঁকি।
সিসিআই ভুল সংকেত দিতে পারে।
ব্যাকটেস্টের পক্ষপাতিত্ব সাবধানে মোকাবেলা করুন।
অপ্টিমাইজেশনের ঝুঁকি বেশি।
সর্বোত্তম সমন্বয় খুঁজতে পরামিতি পরীক্ষা করুন।
অন্যান্য সূচকগুলির সাথে ফিল্টার যুক্ত করার মূল্যায়ন করুন।
ঝুঁকি কমাতে স্টপগুলি অপ্টিমাইজ করুন।
চ্যানেলের প্রস্থের জন্য অভিযোজিত পদ্ধতি গবেষণা করুন।
আরো চিহ্ন এবং সময়সীমা দিয়ে যাচাই করুন।
মেশিন লার্নিং ব্যবহার করে গতিশীলভাবে পরামিতি অপ্টিমাইজ করুন।
এই কৌশলটি বোলিংজার ব্যান্ডের উপর ভিত্তি করে দুটি ট্রেলিং স্টপ কৌশল ডিজাইন করে এবং একাধিক সময়সীমার মধ্যে তাদের ব্যাকটেস্ট করে। প্যারামিটার অপ্টিমাইজেশান, স্টপ উন্নতি ইত্যাদির মাধ্যমে পরিমার্জন একটি পরিপক্ক প্রবণতা অনুসরণকারী সিস্টেমে স্থিতিশীলতা বাড়িয়ে তুলতে পারে।
/*backtest start: 2022-09-13 00:00:00 end: 2023-09-19 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title = "Underworld Hunter", overlay=true) len = input(75, minval=1, title="Length") src = input(close, title="Source") basis = 0.0 basis := na(basis[1]) ? sma(src, len) : ema(ema(ema(src,len),len),len) mult = input(1.9, minval=0.001, maxval=50, title="Deviation") dev = mult * stdev(src, len) upper = basis + dev lower = basis - dev //CCI calculation and inputs lengthcci = input(20, minval=1, title="Period for CCI") ma = sma(close, lengthcci) ccivalue = (src - ma) / (0.015 * dev(src, lengthcci)) //CCI plotting cciover0 = ccivalue >= 100 and ccivalue <= 120 cciover1 = ccivalue > 120 and ccivalue <= 140 cciover2 = ccivalue > 140 and ccivalue <= 160 cciover3 = ccivalue > 160 and ccivalue <= 180 cciover4 = ccivalue > 180 cciunder0 = ccivalue <= -100 and ccivalue >= -120 cciunder1 = ccivalue <= -120 and ccivalue > -140 cciunder2 = ccivalue <= -140 and ccivalue > -160 cciunder3 = ccivalue <= -160 and ccivalue > -180 cciunder4 = ccivalue <= -180 plotshape(cciover0, title="CCIO0", location=location.abovebar, color=#c6ff1a, transp=0, style=shape.circle, size=size.tiny) plotshape(cciunder0, title="CCIU0", location=location.belowbar, color=#c6ff1a, transp=0, style=shape.circle, size=size.tiny) plotshape(cciover1, title="CCIO1", location=location.abovebar, color=#ffff00, transp=0,style=shape.circle, size=size.tiny) plotshape(cciunder1, title="CCIU1", location=location.belowbar, color=#ffff00, transp=0, style=shape.circle, size=size.tiny) plotshape(cciover2, title="CCIO2", location=location.abovebar, color=#ff9900, transp=0, style=shape.circle, size=size.tiny) plotshape(cciunder2, title="CCIU2", location=location.belowbar, color=#ff9900, transp=0, style=shape.circle, size=size.tiny) plotshape(cciover3, title="CCIO3", location=location.abovebar, color=#ff0000, transp=0, style=shape.circle, size=size.tiny) plotshape(cciunder3, title="CCIU3", location=location.belowbar, color=#ff0000, transp=0, style=shape.circle, size=size.tiny) plotshape(cciover4, title="CCIO4", location=location.abovebar, color=#cc00cc, transp=0,style=shape.circle, size=size.tiny) plotshape(cciunder4, title="CCIU4", location=location.belowbar, color=#cc00cc, transp=0,style=shape.circle, size=size.tiny) //plotting plot(upper, title="Upper shadow", color=color.black, transp = 30, linewidth = 4) plot(upper, title="Upper line", color=#FF2E00, transp = 0, linewidth = 2) plot(lower, title="Lower shadow", color=color.black, transp = 30, linewidth = 4) plot(lower, title="Lower line", color=#FF2E00, transp = 0, linewidth = 2) plot(basis, title="Basic line", color=color.red, transp = 50, linewidth = 2) mean = input(title="Test Reverse to the Mean instead", type=input.bool, defval=false) test = input(title="Enable testing", type=input.bool, defval=true) ordersize=floor(50000/close) if(close>upper and strategy.opentrades==0 and not mean and test) strategy.entry("Hunt Up", strategy.long, ordersize) if (close<upper and close[1]<upper and close[2]<upper) strategy.close("Hunt Up", qty_percent = 100, comment = "Hunt End") if(close<lower and strategy.opentrades==0 and not mean and test) strategy.entry("Hunt Down", strategy.short, ordersize) if (close>lower and close[1]>lower and close[2]>lower) strategy.close("Hunt Down", qty_percent = 100, comment = "Hunt End") //bounce of bands if(close>upper and strategy.opentrades==0 and mean and test) strategy.entry("Sneak Down", strategy.short, ordersize) if (close<upper and close[1]<upper and close[2]<upper and close>high[1]) strategy.close("Sneak Down", qty_percent = 100, comment = "SneakEnd") if(close<lower and strategy.opentrades==0 and mean and test) strategy.entry("Sneak Up", strategy.long, ordersize) if (close>lower and close[1]>lower and close[2]>lower and close<low[1]) strategy.close("Sneak Up", qty_percent = 100, comment = "Sneak End")