এই কৌশলটি একটি গতিশীল ব্রেকআউট ট্রেডিং কৌশল তৈরির জন্য বোলিংজার ব্যান্ড সূচকের উপর ভিত্তি করে ডিজাইন করা হয়েছে। এটি বোলিংজার নিম্ন ব্যান্ডের চারপাশে ব্রেকআউট এন্ট্রি সুযোগগুলি সন্ধান করতে মোমবাতি দেহ ফিল্টার এবং রঙ ফিল্টারের শর্তগুলি একত্রিত করে। প্রস্থানগুলি দেহ ফিল্টারের উপর ভিত্তি করে। কৌশলটি স্বয়ংক্রিয়ভাবে অবস্থান আকার এবং ঝুঁকি পরিচালনা করে।
প্রথমত, কম দামের উপর ভিত্তি করে বোলিংজার ব্যান্ডের বেস লাইন এবং নীচের ব্যান্ড গণনা করুনঃ
src = low
basis = sma(src, length)
dev = mult * stdev(src, length)
lower = basis - dev
যেখানে src হল নিম্ন মূল্য, দৈর্ঘ্য হল গণনার সময়কাল, বেস হল চলমান গড়, dev হল স্ট্যান্ডার্ড ডিভিয়েশন, এবং নীচে হল নিম্ন ব্যান্ড।
মাল্ট সাধারণত ২ তে সেট করা হয়, যার অর্থ হল নীচের ব্যান্ডটি এক স্ট্যান্ডার্ড ডিভিয়েশন দূরে।
কৌশলটি দুটি ফিল্টার শর্ত অন্তর্ভুক্ত করেঃ
মোমবাতি শরীরের ফিল্টারশরীরের আকার nbody এবং এর গড় অবয়ব নির্ধারণ করতে ব্যবহার করুন, শুধুমাত্র যখন nbody অবয়বের অর্ধেকের চেয়ে বড় হয় তখন ট্রেডিং সংকেত তৈরি করুন।
রঙ ফিল্টার
মোমবাতিটি ধনাত্মকভাবে বন্ধ হয়ে গেলে (বন্ধ > খোলা) দীর্ঘ সময় ধরে চলবেন না। এই hbox মাথা মিথ্যা ব্রেকআউট এড়াতে।
নিম্নলিখিত শর্ত পূরণ হলে দীর্ঘ সংকেত উৎপন্ন করুনঃ
low < lower // price breaks lower band
close < open or usecol == false // color filter
nbody > abody / 2 or usebod == false // body filter
যখন শরীরের আকার আবার অর্ধেকেরও বেশি হয়, তখন ঘনিষ্ঠ অবস্থানঃ
close > open and nbody > abody / 2
কৌশলটি ট্রেডের আকারকে স্বয়ংক্রিয়ভাবে পজিশনের এক্সপোনেন্সিয়াল বৃদ্ধির জন্য গণনা করেঃ
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]
শুধুমাত্র নির্দিষ্ট তারিখের পরিসরে ট্রেডিং সীমাবদ্ধ করার জন্য বছর, মাস এবং তারিখের উপর সীমাবদ্ধতা যোগ করুনঃ
when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))
ট্রেন্ডের পর রিট্র্যাক্সিং ধরার জন্য বোলিংগারের নিচের ব্যান্ড একটি গতিশীল সমর্থন এলাকা প্রদান করে।
মোমবাতি শরীর এবং রঙ ফিল্টার সমন্বয় কার্যকরভাবে মিথ্যা breakouts এড়াতে।
পজিশনের আকার ১০০% পর্যন্ত বৃদ্ধি পায়, ঝুঁকি স্বয়ংক্রিয়ভাবে পরিচালনা করে।
নির্দিষ্ট সময়ের মধ্যে একটি তারিখের পরিসীমা নির্ধারণ করে বাজারের অস্থিরতার সাথে যুক্ত ঝুঁকি হ্রাস পায়।
যখন একটি শক্তিশালী আপট্রেন্ড থাকে, বিবি মাঝারি এবং উপরের ব্যান্ডগুলি দ্রুত উপরে সরে যেতে পারে, যা দীর্ঘস্থায়ী ড্রাউনডাউন সৃষ্টি করে।
প্রবণতা সূচকগুলির সাথে মিশ্রিত করুন, দীর্ঘস্থায়ী ড্রাউনডাউন এড়ানোর জন্য যদি এটি ষাঁড়ের বাজার হিসাবে বিবেচিত হয় তবে কৌশলটি বন্ধ করুন।
ব্রেকআউট ব্যর্থ হতে পারে যদি নিচের ব্যান্ডটি পুনরায় পরীক্ষা করা হয়।
সমর্থন স্তরের নিচে স্টপ লস যোগ করুন অথবা দ্রুত স্টপ লসের জন্য ব্যর্থ পুনরায় পরীক্ষা সনাক্ত করতে লজিক যোগ করুন।
ব্যাকটেস্টের ফলাফলের ভিত্তিতে স্টপ লসকে সমর্থন থেকে নিচে অপ্টিমাইজ করুন।
সূক্ষ্ম সুর শরীর ফিল্টার থাকার সময়কাল, রঙ ফিল্টার ইত্যাদি সর্বোত্তম খুঁজে পেতে।
যদি এটাকে ষাঁড়ের বাজার হিসেবে বিবেচনা করা হয়, তাহলে কৌশল বন্ধ করুন।
এই কৌশলটি BB সমর্থন, বডি ফিল্টার, রঙ ফিল্টার এবং ব্রেকআউট লজিককে উচ্চ সম্ভাব্যতা পুনরুদ্ধারের জন্য একত্রিত করে। অনুশীলনে, প্যারামিটারগুলি ব্যাকটেস্টের ভিত্তিতে অনুকূলিত করা যেতে পারে, উন্নত পারফরম্যান্সের জন্য ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লস এবং ট্রেন্ড ফিল্টার যুক্ত করা হয়।
/*backtest start: 2022-11-14 00:00:00 end: 2023-11-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy(title = "Noro's Wizard Strategy v1.0", shorttitle = "Wizard str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 10) //Settings capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %") length = input(25, defval = 25, minval = 1, maxval = 200, title = "BB Period") usebod = input(false, defval = false, title = "Use Body-Filter") usecol = input(false, defval = false, title = "Use Color-Filter") showar = input(false, defval = false, title = "Show Arrows") fromyear = input(1900, defval = 1900, 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") //Bollinger src = low mult = 2 basis = sma(src, length) dev = mult * stdev(src, length) lower = basis - dev plot(lower, color = lime, linewidth = 3, title="Bottom Line") //Body Filter nbody = abs(close - open) abody = sma(nbody, 10) body = nbody > abody / 2 or usebod == false //Signals up1 = low < lower and (close < open or usecol == false) and body exit = close > open and nbody > abody / 2 //Arrows needar = up1 and showar plotarrow(needar ? 1 : na) //Trading lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1] if up1 if strategy.position_size < 0 strategy.close_all() strategy.entry("Long", strategy.long, lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) or exit strategy.close_all()