আরএমআই ট্রেন্ড সিঙ্ক কৌশল কার্যকরভাবে আপেক্ষিক গতি সূচক (আরএমআই) এবং সুপার ট্রেন্ড সূচকের শক্তিগুলিকে সংযুক্ত করে গতি বিশ্লেষণ এবং প্রবণতা বিচারের সংহতকরণ উপলব্ধি করতে। দামের পরিবর্তনের প্রবণতা এবং বাজারের গতি স্তরগুলি একযোগে পর্যবেক্ষণ করে, কৌশলটি আরও বিস্তৃত দৃষ্টিকোণ থেকে বাজারের প্রবণতা নির্ধারণ করে।
আরএমআই হল রিলেটিভ স্ট্রেনথ ইনডেক্স (আরএসআই) এর একটি উন্নত সংস্করণ। এটি বাজারের গতি আরও সঠিকভাবে পরিমাপ করার জন্য দিকনির্দেশ এবং মাত্রা যেমন মূল্য পরিবর্তনের আরও বৈশিষ্ট্য অন্তর্ভুক্ত করে।
আরএমআই গণনার পদ্ধতিটি হ'লঃ প্রথমে একটি নির্দিষ্ট সময়ের মধ্যে গড় লাভ এবং গড় ক্ষতি গণনা করুন। আরএসআই এর বিপরীতে, আরএমআই সহজ ধনাত্মক এবং নেতিবাচক বৃদ্ধির পরিবর্তে বর্তমান বন্ধ মূল্য এবং পূর্ববর্তী বন্ধ মূল্যের মধ্যে পরিবর্তন ব্যবহার করে। তারপরে গড় লাভকে গড় ক্ষতিতে বিভক্ত করুন এবং মানটি 0-100 স্কেলে ফিট করার জন্য স্বাভাবিক করুন।
এই কৌশলটি প্রবেশ এবং প্রস্থান সিদ্ধান্তের জন্য বর্তমান বাজারের গতি স্তর নির্ধারণের জন্য পূর্বনির্ধারিত ইতিবাচক গতি এবং নেতিবাচক গতির প্রান্তিকের সাথে তুলনা করার জন্য RMI এবং MFI এর গড় মান ব্যবহার করে।
সুপার ট্রেন্ড সূচকটি একটি উচ্চতর সময়সীমার ভিত্তিতে গণনা করা হয়, যা প্রধান প্রবণতাগুলির উপর বিচার প্রদান করতে পারে। এটি প্রবণতা বিপরীতগুলি কার্যকরভাবে সনাক্ত করতে সত্যিকারের অস্থিরতা ATR এর উপর ভিত্তি করে পরামিতিগুলিকে গতিশীলভাবে সামঞ্জস্য করে।
এই কৌশলটি গুরুত্বপূর্ণ প্রবণতা পরিবর্তনের সনাক্তকরণের ক্ষমতা আরও বাড়ানোর জন্য ভলিউম ওয়েটেড মুভিং এভারেজ (ভিডব্লিউএমএ) অন্তর্ভুক্ত করে।
এই কৌশলটি লং, শর্ট বা দ্বি-মুখী ট্রেডিং বেছে নিতে সক্ষম করে। এই নমনীয়তা ব্যবসায়ীদের তাদের বাজার দৃষ্টিভঙ্গি এবং ঝুঁকি আবেগের সাথে মানিয়ে নিতে সক্ষম করে।
শুধুমাত্র গতি বা প্রবণতা সূচকগুলির উপর নির্ভরশীল কৌশলগুলির তুলনায়, এই কৌশলটি RMI এবং সুপার ট্রেন্ডের শক্তিগুলিকে একীভূত করে আরও সঠিক বাজার প্রবণতা সনাক্তকরণ উপলব্ধি করে।
বিভিন্ন সময়সীমার মধ্যে RMI এবং Super Trend এর প্রয়োগ স্বল্পমেয়াদী এবং দীর্ঘমেয়াদী উভয় প্রবণতার আরও উপযুক্ত বোঝার দিকে পরিচালিত করে।
সুপার ট্রেন্ডের উপর ভিত্তি করে রিয়েল-টাইম স্টপ লস প্রক্রিয়া কার্যকরভাবে প্রতি ট্রেড ক্ষতি সীমাবদ্ধ করতে পারে।
লং, শর্ট বা দ্বি-মুখী ট্রেডিংয়ের মধ্যে পছন্দ এই কৌশলকে বিভিন্ন বাজারের পরিবেশে অভিযোজিত করতে দেয়।
আরএমআই এবং সুপার ট্রেন্ডের মতো পরামিতিগুলির জন্য অপ্টিমাইজেশন বেশ জটিল। অনুপযুক্ত সেটিংস কৌশল কর্মক্ষমতাকে হ্রাস করতে পারে।
ক্ষুদ্রতর ওঠানামা প্রতি অত্যধিক সংবেদনশীল হওয়ার ফলে অত্যধিক স্টপ লস ট্রিগার হতে পারে।
সমাধানঃ স্টপ লস পরিসীমা যথাযথভাবে শিথিল করুন অথবা অন্যান্য অস্থিরতার ভিত্তিতে স্টপ লস পদ্ধতি গ্রহণ করুন।
প্রযোজ্য সম্পদ সম্প্রসারণ এবং বিভিন্ন সম্পদের জন্য প্যারামিটার অপ্টিমাইজেশান দিকনির্দেশনা চিহ্নিত করা, যাতে আরও বেশি বাজারে বিস্তৃত প্রতিলিপি সম্ভব হয়।
বর্তমান সুইং তরঙ্গগুলি আরও ভালভাবে ট্র্যাক করতে এবং ছোট ছোট পুনরুদ্ধারের কারণে অত্যধিক স্টপ লস হ্রাস করার জন্য গতিশীল স্টপ লস প্রক্রিয়া অন্তর্ভুক্ত করুন।
স্পষ্ট সংকেত ছাড়া অবস্থান প্রবেশ এড়াতে ফিল্টার শর্ত হিসাবে আরো নির্দেশক থেকে রায় যোগ করুন।
RMI এবং সুপার ট্রেন্ডের উদ্ভাবনী সংমিশ্রণের মাধ্যমে, এই কৌশলটি সঠিক বাজার অবস্থার বিচার উপলব্ধি করে। এটি ঝুঁকি নিয়ন্ত্রণেও শ্রেষ্ঠত্ব অর্জন করে। গভীরতর অপ্টিমাইজেশনের সাথে, এটি বিশ্বাস করা হয় যে আরও বেশি সম্পদ এবং সময়সীমার মধ্যে এর পারফরম্যান্স ক্রমবর্ধমানভাবে উল্লেখযোগ্য হয়ে উঠবে।
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // @ presentTrading //@version=5 strategy("RMI Trend Sync - Strategy [presentTrading]", shorttitle = "RMI Sync [presentTrading]", overlay=true ) // ---> Inputs -------------- // Add Button for Trading Direction tradeDirection = input.string("Both", "Select Trading Direction", options=["Long", "Short", "Both"]) // Relative Momentum Index (RMI) Settings Length = input.int(21, "RMI Length", group = "RMI Settings") pmom = input.int(70, "Positive Momentum Threshold", group = "RMI Settings") nmom = input.int(30, "Negative Momentum Threshold", group = "RMI Settings") bandLength = input.int(30, "Band Length", group = "Momentum Settings") rwmaLength = input.int(20, "RWMA Length", group = "Momentum Settings") // Super Trend Settings len = input.int(10, "Super Trend Length", minval=1, group="Super Trend Settings") higherTf1 = input.timeframe('480', "Higher Time Frame", group="Super Trend Settings") factor = input.float(3.5, "Super Trend Factor", step=.1, group="Super Trend Settings") maSrc = input.string("WMA", "MA Source", options=["SMA", "EMA", "WMA", "RMA", "VWMA"], group="Super Trend Settings") atr = request.security(syminfo.tickerid, higherTf1, ta.atr(len)) TfClose1 = request.security(syminfo.tickerid, higherTf1, close) // Visual Settings filleshow = input.bool(true, "Display Range MA", group = "Visual Settings") bull = input.color(#00bcd4, "Bullish Color", group = "Visual Settings") bear = input.color(#ff5252, "Bearish Color", group = "Visual Settings") // Calculation of Bar Range barRange = high - low // RMI and MFI Calculations upChange = ta.rma(math.max(ta.change(close), 0), Length) downChange = ta.rma(-math.min(ta.change(close), 0), Length) rsi = downChange == 0 ? 100 : upChange == 0 ? 0 : 100 - (100 / (1 + upChange / downChange)) mf = ta.mfi(hlc3, Length) rsiMfi = math.avg(rsi, mf) // Momentum Conditions positiveMomentum = rsiMfi[1] < pmom and rsiMfi > pmom and rsiMfi > nmom and ta.change(ta.ema(close,5)) > 0 negativeMomentum = rsiMfi < nmom and ta.change(ta.ema(close,5)) < 0 // Momentum Status bool positive = positiveMomentum ? true : negativeMomentum ? false : na bool negative = negativeMomentum ? true : positiveMomentum ? false : na // Band Calculation calculateBand(len) => math.min(ta.atr(len) * 0.3, close * (0.3/100)) * 4 band = calculateBand(bandLength) // Range Weighted Moving Average (RWMA) Calculation calculateRwma(range_, period) => weight = range_ / math.sum(range_, period) sumWeightedClose = math.sum(close * weight, period) totalWeight = math.sum(weight, period) sumWeightedClose / totalWeight rwma = calculateRwma(barRange, rwmaLength) colour = positive ? bull : negative ? bear : na rwmaAdjusted = positive ? rwma - band : negative ? rwma + band : na max = rwma + band min = rwma - band longCondition = positive and not positive[1] shortCondition = negative and not negative[1] longExitCondition = shortCondition shortExitCondition = longCondition // Dynamic Trailing Stop Loss vwma1 = switch maSrc "SMA" => ta.sma(TfClose1*volume, len) / ta.sma(volume, len) "EMA" => ta.ema(TfClose1*volume, len) / ta.ema(volume, len) "WMA" => ta.wma(TfClose1*volume, len) / ta.wma(volume, len) upperBand = vwma1 + factor * atr lowerBand = vwma1 - factor * atr prevLowerBand = nz(lowerBand[1]) prevUpperBand = nz(upperBand[1]) float superTrend = na int direction = na superTrend := direction == -1 ? lowerBand : upperBand longTrailingStop = superTrend - atr * factor shortTrailingStop = superTrend + atr * factor // Strategy Order Execution if (tradeDirection == "Long" or tradeDirection == "Both") strategy.entry("Long", strategy.long, when = longCondition) strategy.exit("Exit Long", "Long", when=longExitCondition, stop = longTrailingStop) if (tradeDirection == "Short" or tradeDirection == "Both") strategy.entry("Short", strategy.short, when =shortCondition) strategy.exit("Exit Short", "Short", when=shortExitCondition, stop = shortTrailingStop)