এই কৌশলটি মুনাফা অর্জনের জন্য, ওভারকুপড এবং ওভারসোল্ড সংকেতগুলি সনাক্ত করতে আরএসআই সূচক, মূল্যের ব্রেকআউট নির্ধারণের জন্য বোলিংজার ব্যান্ড এবং বিভিন্ন প্রবণতা পর্যায়ে বাজারকে বিচার করার জন্য চলমান গড় ক্রসওভারগুলির ব্যবহারকে একত্রিত করে।
কৌশলটি নিম্নলিখিত প্রধান সূচকগুলির সমন্বয়ে গঠিতঃ
আরএসআই সূচকঃ যখন আরএসআই লাইন ওভারকুপড থ্রেশহোল্ড অতিক্রম করে বা ওভারসোল্ড থ্রেশহোল্ডের নিচে অতিক্রম করে, তখন লং বা শর্ট ট্রেড করা হয়।
বোলিংজার ব্যান্ডঃ যখন দাম বোলিংজার উপরের ব্যান্ডটি ভেঙে যায়, তখন একটি শর্ট ট্রেড স্থাপন করা হয়; যখন দাম বোলিংজার নিম্ন ব্যান্ডটি ভেঙে যায়, তখন একটি দীর্ঘ বাণিজ্য স্থাপন করা হয়।
মুভিং এভারেজ: একটি নির্দিষ্ট সময়ের (যেমন 5 টি সময়কাল) সর্বোচ্চ এবং সর্বনিম্ন মূল্য গণনা করা হয়। যখন মূল্য গত 5 টি সময়ের সর্বোচ্চ পয়েন্টের চেয়ে বেশি হয়, তখন একটি দীর্ঘ বাণিজ্য স্থাপন করা হয়; যখন মূল্য গত 5 টি সময়ের সর্বনিম্ন পয়েন্টের চেয়ে কম হয়, তখন একটি ছোট বাণিজ্য স্থাপন করা হয়।
এমএসিডিঃ দ্রুত লাইন, ধীর লাইন এবং এমএসিডি লাইনের ক্রসওভার এবং ডেথ ক্রস সহায়ক বিচার সূচক হিসাবে ব্যবহৃত হয়।
এই সূচকগুলি প্রবণতা এবং একীকরণের পর্যায়ে বাজারকে বিচার করার জন্য একসাথে কাজ করে। বোলিংজার ব্যান্ডগুলি ব্রেকআউট এবং গড়ের দিকে বিপরীতমুখী চিহ্নিত করে। চলমান গড়গুলি একীকরণের সময় প্রবণতা বিপরীতমুখী পয়েন্টগুলি নির্ধারণ করে। আরএসআই চরমগুলি প্রতি-প্রবণতা ব্যবসায়ের জন্য অতিরিক্ত ক্রয় / অতিরিক্ত বিক্রয় বাজার শর্তগুলি স্পট করে।
এই কৌশলটির সুবিধাগুলো হল:
একাধিক সূচকের সংমিশ্রণ নির্ভুলতা উন্নত করে। RSI, Bollinger Bands, চলমান গড় এবং আরো নির্ভরযোগ্য ট্রেডিং সংকেত উত্পাদন করতে ইন্টারঅ্যাক্ট করে।
বিভিন্ন বাজারের অবস্থার জন্য প্রযোজ্য। প্রবণতার জন্য বোলিংজার ব্যান্ড, একীকরণের জন্য চলমান গড়, চরমের জন্য আরএসআই। নমনীয়তা নিশ্চিত করা হয়।
যুক্তিসঙ্গত ট্রেডিং ফ্রিকোয়েন্সি। অতিরিক্ত ট্রেডিং এড়ানোর জন্য সূচক পরামিতিগুলি সংরক্ষণমূলকভাবে সেট করা হয়।
পরিষ্কার কোড কাঠামো, সহজেই বোঝা যায়, সম্পাদনা করা যায় এবং এর উপর ভিত্তি করে তৈরি করা যায়।
কিছু ঝুঁকিতে মনোযোগ প্রয়োজনঃ
পরামিতি ঝুঁকি। অনুপযুক্ত সূচক পরামিতি ভুল ট্রেডিং সংকেত উৎপন্ন করতে পারে। পরামিতি ক্রমাগত পরীক্ষা এবং অপ্টিমাইজেশান প্রয়োজন।
লং/শর্ট স্যুইচ ঝুঁকি। ট্রেন্ড বিপরীতমুখী হওয়ার সময় ঘন ঘন লং/শর্ট পজিশনের পরিবর্তন ট্রেডিং খরচ বাড়ায়। হোল্ডিং সময়কাল সামঞ্জস্য করা যায়।
কোডিং ঝুঁকি। কোডে লুকানো যৌক্তিক ত্রুটিগুলি অস্বাভাবিক ব্যবসায়ের দিকে পরিচালিত করতে পারে। ব্যতিক্রম পরিচালনা এবং লগিং উন্নত করা উচিত।
কৌশলটি নিম্নলিখিত দিকগুলিতে উন্নত করা যেতে পারেঃ
লাভের জন্য স্টপ লস যোগ করুন এবং ক্ষতি হ্রাস করুন।
ভুল সংকেত এড়াতে ট্রেডিং ভলিউম অন্তর্ভুক্ত করুন। উদাহরণস্বরূপ, বোলিংজার ব্রেকআউটের উপর চেক ভলিউম।
ঐতিহাসিক তথ্যের উপর ভিত্তি করে সর্বোত্তম পরামিতি খুঁজে পেতে মেশিন লার্নিং চালু করুন।
পারফরম্যান্সের স্বজ্ঞাত প্রদর্শনের জন্য গ্রাফিকাল ইন্টারফেস তৈরি করুন।
সেরা প্যারামিটার সমন্বয় খুঁজে বের করার জন্য ব্যাকটেস্টিং পরিচালনা করুন।
এই কৌশলটি ট্রেডিং সিগন্যাল তৈরির জন্য চলমান গড়, বোলিংজার ব্যান্ড, আরএসআই এবং আরও অনেক কিছুকে একত্রিত করে। এর বহুমুখিতা এবং নির্ভুলতা স্পষ্ট শক্তি, যখন প্যারামিটার সেটিং এবং কোডিং ঝুঁকিগুলি পরিচালনা করা দরকার। পরবর্তী পদক্ষেপগুলি হ'ল স্টপ যুক্ত করা, প্যারামিটার অপ্টিমাইজেশনের জন্য মেশিন লার্নিং, পর্যবেক্ষণের জন্য জিইউআই এবং ব্যতিক্রম পরিচালনার উন্নতি করা।
/*backtest start: 2024-01-19 00:00:00 end: 2024-02-15 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("MD strategy", overlay=true) lengthrsi = input( 14 ) overSold = input( 30 ) overBought = input( 70 ) price = close source = close lengthbb = input(20, minval=1) mult = input(2.0, minval=0.001, maxval=50) direction = input(0, title = "Strategy Direction",minval=-1, maxval=1) fastLength = input(12) slowlength = input(26) MACDLength = input(9) consecutiveBarsUp = input(3) consecutiveBarsDown = input(3) lengthch = input( minval=1, maxval=1000, defval=5) upBound = highest(high, lengthch) downBound = lowest(low, lengthch) ups = price > price[1] ? nz(ups[1]) + 1 : 0 dns = price < price[1] ? nz(dns[1]) + 1 : 0 MACD = ema(close, fastLength) - ema(close, slowlength) aMACD = ema(MACD, MACDLength) delta = MACD - aMACD strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long)) basis = sma(source, lengthbb) dev = mult * stdev(source, lengthbb) upper = basis + dev lower = basis - dev vrsi = rsi(price, lengthrsi) if (not na(vrsi)) if (crossover(vrsi, overSold)) strategy.entry("RsiLE", strategy.long, comment="RsiLE") if (crossunder(vrsi, overBought)) strategy.entry("RsiSE", strategy.short, comment="RsiSE") if (crossover(source, lower)) strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", comment="BBandLE") else strategy.cancel(id="BBandLE") if (crossunder(source, upper)) strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", comment="BBandSE") else strategy.cancel(id="BBandSE") if (not na(close[lengthch])) strategy.entry("ChBrkLE", strategy.long, stop=upBound + syminfo.mintick, comment="ChBrkLE") strategy.entry("ChBrkSE", strategy.short, stop=downBound - syminfo.mintick, comment="ChBrkSE") //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)