ভিআরএসআই এবং মার্সি কৌশল

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

img

সারসংক্ষেপ

ভিআরএসআই এবং মার্সি কৌশলটি আরএসআই সূচকগুলি মসৃণ করতে চলমান গড় ব্যবহার করে এবং একটি দ্বৈত সূচক কৌশল বাস্তবায়ন করে। এটি মূল্য এবং ভলিউমের আরএসআই সূচক উভয়ই তাদের চলমান গড়ের সাথে একত্রিত করে ট্রেডিং সংকেত তৈরি করে। যখন দাম আরএসআই বৃদ্ধি পায় তখন এটি দীর্ঘ হয় এবং যখন দাম আরএসআই কমে যায় তখন এটি সংক্ষিপ্ত হয়। এদিকে, এটি বাজারের শক্তি এবং সম্ভাব্য প্রবণতা পরিবর্তনগুলি বিচার করতে ভলিউম আরএসআইয়ের পরিবর্তনগুলি পর্যবেক্ষণ করে।

কৌশলগত যুক্তি

কৌশলটি প্রথমে মূল্যের 9 পেরিড আরএসআই সূচক (আরএসআই) এবং ভলিউমের 9 পেরিড আরএসআই সূচক (ভিআরএসআই) গণনা করে। তারপরে এটি এই দুটি আরএসআই সূচকের 5 পেরিড সহজ চলমান গড় (এমএআরএসআই এবং এমএভিআরএসআই) গণনা করে।

ট্রেডিং সিগন্যালগুলি মার্সি সূচকের উপর ভিত্তি করে উত্পন্ন হয়। মার্সি বেড়ে গেলে এটি দীর্ঘ হয় এবং মার্সি কমে গেলে এটি সংক্ষিপ্ত হয়। উপরন্তু, মার্কেট শক্তি এবং সম্ভাব্য প্রবণতা পরিবর্তনগুলি বিচার করার জন্য এমএভিআরএসআই সূচক ব্যবহার করা হয়।

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

সুবিধা বিশ্লেষণ

দ্বৈত আরএসআই সূচকগুলির চলমান গড়ের সংমিশ্রণে, এই কৌশলটি কার্যকরভাবে প্রবণতা ধরতে পারে, বাজারের শক্তি বিচার করতে এবং ফাঁদে পড়া এড়াতে ভলিউম পরিবর্তনগুলি ব্যবহার করে। একক আরএসআই সূচকের তুলনায়, এই কৌশলটি বাজারের ছন্দকে আরও নির্ভুলভাবে ধরতে পারে।

চলমান গড়ের ব্যবহার সংকেতগুলিকে আরও নির্ভরযোগ্য করার জন্য কিছু শব্দ ফিল্টার করে। এছাড়াও, আরএসআই সময়কাল এবং চলমান গড় সময়ের মতো বিভিন্ন পরামিতি সেটিং কৌশল অপ্টিমাইজেশনের সম্ভাবনা সরবরাহ করে।

ঝুঁকি বিশ্লেষণ

এই কৌশলটির প্রধান ঝুঁকি দ্বৈত সূচকগুলির মধ্যে যে পার্থক্যগুলি ঘটতে পারে তাতে রয়েছে। যখন মূল্য এবং ভলিউমের মধ্যে একটি পার্থক্য থাকে, তখন ট্রেডিং সংকেতগুলি কম নির্ভরযোগ্য হয়ে উঠতে পারে। সূচকগুলির মধ্যে সম্পর্কের ম্যানুয়াল বিচার তখন প্রয়োজন হয়।

আরেকটি ঝুঁকি হ'ল ব্যাপ্তি-বান্ধব বাজারে ফাঁদে পড়া। যখন দাম একটি ব্যাপ্তিতে চলে যায়, তখন আরএসআই সূচকটি উপরে এবং নীচে দোলতে থাকে, অপ্রয়োজনীয় বাণিজ্যকে ট্রিগার করে। পরামিতি সমন্বয় বা সূচকগুলির পরম স্তর বিচার করা তখন প্রয়োজনীয়।

অপ্টিমাইজেশান নির্দেশাবলী

কৌশলটি নিম্নলিখিত দিকগুলিতে অপ্টিমাইজ করা যেতে পারেঃ

  1. সর্বোত্তম সমন্বয় খুঁজে পেতে RSI এবং চলমান গড়ের পরামিতিগুলি সামঞ্জস্য করুন

  2. সিগন্যাল তৈরি করার সময় অন্যান্য শর্ত যুক্ত করুন, উদাহরণস্বরূপ, ওভারকোপড/ওভারসোল্ড অঞ্চলে ট্রিগার করা বিপরীত সিগন্যালগুলি আরও নির্ভরযোগ্য

  3. স্টপ লস কৌশল যোগ করুন যেমন স্টপ লস সরানো বা সূচক স্টপ লস

  4. ফাঁদ এড়ানোর জন্য অন্যান্য সূচক অন্তর্ভুক্ত করুন যেমন ক্যান্ডেলস্টিক প্যাটার্ন, অস্থিরতা সূচক ইত্যাদি

সংক্ষিপ্তসার

ভিআরএসআই এবং মারসি কৌশলটি দাম এবং ভলিউমের আরএসআই সূচকগুলিকে সফলভাবে একত্রিত করে। দ্বৈত সূচকগুলির মধ্যে তুলনা এবং বিচার সংকেত নির্ভুলতা এবং লাভজনকতা উন্নত করতে পারে। প্যারামিটার অপ্টিমাইজেশন এবং স্টপ লস কৌশলগুলিও স্থিতিশীল চলমান সম্ভব করে তোলে। সংক্ষেপে, সূচকগুলি একত্রিত করে, এই কৌশলটি একক আরএসআই সূচকের তুলনায় উচ্চতর পারফরম্যান্স অর্জন করে।


/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("VRSI-MARSI Strategy", shorttitle="(V/MA)RSI Str.", overlay=false, default_qty_type=strategy.percent_of_equity, calc_on_order_fills=true, calc_on_every_tick=true, pyramiding=0, default_qty_value=5, initial_capital=100)

// RSI(close, ="RSI") and RSI(Volume, ="VRSI")
src = close, len = input(9, minval=1, title="Length RSI")
src2 = volume, len2 = input(9, minval=1, title="Length VRSI)")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
up2 = rma(max(change(src2), 0), len2)
down2 = rma(-min(change(src2), 0), len2)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsi2 = down2 == 0 ? 100 : up2 == 0 ? 0 : 100 - (100 / (1 + up2 / down2))

// MA(=Moving Average) of RSI(close, ="MARSI") and RSI(Volume, ="MAVRSI")
len3 = input(5, minval=1, title="Length MARSI")
marsi = sma(rsi, len3)
len4 = input(5, minval=1, title="Length MAVRSI")
marsi2 = sma(rsi2, len4)

// Plot: 
// Default plot of RSI and VRSI: not visible but can be made visible
// Default plot MARSI and MAVRSI: visible
p1 = plot(rsi, linewidth=2, transp=100, color=color.yellow, title="RSI")
p2 = plot(rsi2, linewidth=2, transp=100, color=color.orange, title="VRSI")
m1 = plot(marsi, color=(marsi>=0 ? (marsi[1] < marsi ? color.yellow : color.blue) : (marsi[1] < marsi ? color.yellow : color.blue) ), linewidth = 2, transp = 0, title="MARSI")
m2 = plot(marsi2, color=color.orange, linewidth = 2, transp = 0, title="MAVRSI")

// Color fill:
// Default color fill "RSI - VRSI": not visible but can be made visible
// Default color fill "MARSI - MAVRSI": visible
fill(p1,p2, color = rsi>rsi2 ? color.green : color.red, transp=100, title="BG RSI-VRSI")
fill(m1,m2, color = marsi>marsi2 ? color.green : color.red, transp=75, title="BG MARSI-MAVRSI")

// Lines:
h2=hline(20, color=color.green, linestyle=hline.style_dotted, title="Extreme Oversold Rsi")
h3=hline(30, color=color.black, linestyle=hline.style_dotted, title="Oversold Rsi")
h5=hline(50, color=color.yellow, linestyle=hline.style_dashed, title="Middle line")
h7=hline(70, color=color.black, linestyle=hline.style_dotted, title="Overbought Rsi")
h8=hline(80, color=color.red, linestyle=hline.style_dotted, title="Extreme Overbought Rsi")

// Color fill between Lines "20-30" and "70-80" represents the crossing of "MARSI" and "MAVRSI":
fill(h2, h3, color=(marsi2 > marsi ? color.red : color.green), transp=80, title="20-30 BG color X MARSI/MAVRSI")
fill(h7, h8, color=(marsi2 > marsi ? color.red : color.green), transp=80, title="70-80 BG color X MARSI/MAVRSI")

///Long Entry///
longCondition = marsi > marsi[1] 
if (longCondition)
    strategy.entry("Long", strategy.long)

///Long exit///
Xlong =input(true)
closeConditionLong = marsi < marsi[1] and Xlong
if (closeConditionLong)
    strategy.close("Long")

///Short Entry///
shortCondition = marsi < marsi[1] 
if (shortCondition)
    strategy.entry("Short", strategy.short)
    
///Short exit///
Xshort =input(true)
closeConditionShort = marsi > marsi[1] and Xshort
if (closeConditionShort)
    strategy.close("Short")
    

আরো