এটি একটি সংমিশ্রণ কৌশল যা আরএসআই, এমএসিডি এবং চলমান গড় ব্যবহার করে। এটি প্রবেশের পয়েন্টগুলি নির্ধারণের সময় আরএসআই থেকে ওভারকুপড / ওভারসোল্ড সংকেত, এমএসিডির সংবেদনশীলতা এবং চলমান গড়ের সূচক প্রভাবকে অন্তর্ভুক্ত করে।
কৌশলটি মূলত নিম্নলিখিত চারটি শর্ত বিবেচনা করে দীর্ঘ প্রবেশের সিদ্ধান্ত নেয়ঃ
যখন নিম্নলিখিত দুটি প্রস্থান শর্ত পূরণ করা হয়, তখন কৌশলটি স্টপ লস পজিশন বন্ধ করবেঃ
সুতরাং, কৌশলটি সময়মতো ক্ষতি বন্ধ করে দেয় এবং মুনাফা গ্রহণ বা পুনরুদ্ধারের সময় বিশাল ক্ষতি এড়ায়।
এই কৌশলটির সবচেয়ে বড় সুবিধা হল যে, প্রতিটি সূচকের সুবিধাগুলোকে পুরোপুরি কাজে লাগানো হচ্ছে।
আরএসআই প্রয়োগের ফলে রেঞ্জ-বান্ধব বাজারে বারবার পজিশন খোলার কারণে লেনদেনের ফি হ্রাস এড়ানো যায়।
ম্যাকডি হিস্টোগ্রাম সূচকের সংবেদনশীলতা সময়মত ফ্লেক্স পয়েন্ট ধরা নিশ্চিত করে।
মুভিং মিডিয়ায় স্বল্পমেয়াদী বাজারের গোলমালকে ফিল্টার করা হয় এবং ইন্ডিকেটর প্রভাবকে পূর্ণতা প্রদান করা হয়।
এই কৌশলটির প্রধান ঝুঁকিগুলির মধ্যে রয়েছেঃ
উচ্চ প্রত্যাহারের ঝুঁকি। প্রবণতা অনুসরণকারী কৌশলগুলির মতো চলমান গড়ের সবচেয়ে বড় ঝুঁকি হ'ল প্রবণতা বিপরীতকরণের কারণে বড় pullback। এটি পজিশনের আকার, স্টপ লস ইত্যাদির মাধ্যমে সক্রিয়ভাবে নিয়ন্ত্রিত হতে পারে।
প্যারামিটার অপ্টিমাইজেশনে অসুবিধা। মাল্টি-ইন্ডিক্টর সমন্বিত কৌশলগুলির প্যারামিটার সেটিং এবং অপ্টিমাইজেশনে উচ্চতর অসুবিধা রয়েছে। ওয়াক ফরওয়ার্ড, জেনেটিক অ্যালগরিদমের মতো পদ্ধতিগুলি অপ্টিমাইজড প্যারামিটারগুলির জন্য গৃহীত হতে পারে।
কৌশলটি নিম্নলিখিত দিকগুলিতে আরও অনুকূলিত করা যেতে পারেঃ
মিথ্যা সংকেত এড়ানোর জন্য অতিরিক্ত ফিল্টার বাড়ান, উদাহরণস্বরূপ ভলিউম, অস্থিরতা সূচক ইত্যাদির সাথে একত্রিত করুন।
পরীক্ষার পরামিতি পার্থক্য আরো পণ্য ফিট। আরো জাতের অভিযোজিত করার জন্য পরামিতি সামঞ্জস্য।
চলন্ত গড় পরামিতি সেটিংস অপ্টিমাইজ করুন। বিভিন্ন দৈর্ঘ্য পরামিতি পার্থক্য পরীক্ষা করুন।
মার্কেট সিস্টেমের উপর ভিত্তি করে বিভিন্ন প্যারামিটার সেট পরিবর্তন করুন।
উপসংহারে, এই কৌশলটি চলমান গড় এবং প্রবণতা অনুসরণকারী কৌশলটির একটি সাধারণ অনুকূলিত সংস্করণ। এটি টাইমিং এন্ট্রি এবং স্টপ লসের দিকগুলিতে এমএসিডি এবং আরএসআইয়ের মতো মূলধারার সূচকগুলির শক্তি শোষণ করে। পরবর্তী পদক্ষেপগুলি প্যারামিটার অপ্টিমাইজেশন এবং ঝুঁকি নিয়ন্ত্রণের মতো দৃষ্টিকোণ থেকে উন্নত হতে পারে যাতে কৌশলটি আরও শক্তিশালী এবং আরও পণ্যগুলিতে অভিযোজিত হয়, যার ফলে উচ্চতর স্থিতিশীলতা ঘটে।
/*backtest start: 2022-12-29 00:00:00 end: 2024-01-04 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Improved RSI MACD Strategy with Moving Averages", overlay=true) // Inputs src = input(close, title="RSI Source") // RSI Settings lengthRSI = input.int(14, minval=1) // Stop Loss Settings stopLossPct = input.float(0.09, title="Stop Loss Percentage") takeProfitPct = input.float(0.15, title="Take Profit Percentage") // MACD Settings fastlen = input(12) slowlen = input(26) siglen = input(9) // Strategy Settings longEntry = input(0, title="Long Entry Level") exitLevel = input(0, title="Exit Level") // EMA Settings emaShortLength = input(8, title="Short EMA Length") emaLongLength = input(21, title="Long EMA Length") atrMultiplier = input.float(2, title="atrMultiplier") atrLength = input.int(20, title="atrLength") // Indicators rsi1 = ta.rsi(src, lengthRSI) [macd, signal, hist] = ta.macd(src, fastlen, slowlen, siglen) // Calculate EMAs emaShort = ta.ema(src, emaShortLength) emaLong = ta.ema(src, emaLongLength) // Calculate ATR atr = ta.atr(atrLength) // Variables var bool canEnterLong = na // Strategy conditions longCondition = hist > longEntry and rsi1 > 50 and emaShort > emaLong and close > emaLong + atrMultiplier * atr // Entries and Exits if hist < exitLevel and emaShort < emaLong canEnterLong := true strategy.close("Long") // Store last entry price var lastEntryPrice = float(na) var lastEntryPrice2 = float(na) if longCondition strategy.entry("Long", strategy.long) canEnterLong := false lastEntryPrice := close if lastEntryPrice < close lastEntryPrice := close // Calculate Stop Loss and Take Profit Levels based on last entry price stopLossLevel = lastEntryPrice * (1 - stopLossPct) // Check for stop loss and take profit levels and close position if triggered if (strategy.position_size > 0) last_buy = strategy.opentrades[0] if (close < stopLossLevel) strategy.close("Long", comment="Stop Loss Triggered") if (close * (1 - takeProfitPct) > strategy.opentrades.entry_price(strategy.opentrades - 1) ) strategy.close("Long", comment="Take Profit Triggered")