RMI ট্রেন্ড সিঙ্ক কৌশল

লেখক:চাওঝাং, তারিখঃ ২০২৪-০১-১৬ ১৪ঃ১০ঃ২৫
ট্যাগঃ

img

সারসংক্ষেপ

আরএমআই ট্রেন্ড সিঙ্ক কৌশল কার্যকরভাবে আপেক্ষিক গতি সূচক (আরএমআই) এবং সুপার ট্রেন্ড সূচকের শক্তিগুলিকে সংযুক্ত করে গতি বিশ্লেষণ এবং প্রবণতা বিচারের সংহতকরণ উপলব্ধি করতে। দামের পরিবর্তনের প্রবণতা এবং বাজারের গতি স্তরগুলি একযোগে পর্যবেক্ষণ করে, কৌশলটি আরও বিস্তৃত দৃষ্টিকোণ থেকে বাজারের প্রবণতা নির্ধারণ করে।

কৌশলগত নীতি

আপেক্ষিক গতির সূচক (RMI)

আরএমআই হল রিলেটিভ স্ট্রেনথ ইনডেক্স (আরএসআই) এর একটি উন্নত সংস্করণ। এটি বাজারের গতি আরও সঠিকভাবে পরিমাপ করার জন্য দিকনির্দেশ এবং মাত্রা যেমন মূল্য পরিবর্তনের আরও বৈশিষ্ট্য অন্তর্ভুক্ত করে।

আরএমআই গণনার পদ্ধতি

আরএমআই গণনার পদ্ধতিটি হ'লঃ প্রথমে একটি নির্দিষ্ট সময়ের মধ্যে গড় লাভ এবং গড় ক্ষতি গণনা করুন। আরএসআই এর বিপরীতে, আরএমআই সহজ ধনাত্মক এবং নেতিবাচক বৃদ্ধির পরিবর্তে বর্তমান বন্ধ মূল্য এবং পূর্ববর্তী বন্ধ মূল্যের মধ্যে পরিবর্তন ব্যবহার করে। তারপরে গড় লাভকে গড় ক্ষতিতে বিভক্ত করুন এবং মানটি 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)

আরো