
VRSI اور MARSI حکمت عملی RSI اشارے کو ہموار کرنے کے لئے چلتی اوسط کا استعمال کرتے ہوئے ایک دوہری اشارے کی حکمت عملی کا مظاہرہ کرتی ہے۔ اس حکمت عملی میں قیمتوں کے RSI اشارے اور تجارت کی مقدار کے RSI اشارے کو ایک ساتھ استعمال کیا جاتا ہے ، جو اس کی چلتی اوسط کے ساتھ مل کر ٹریڈنگ سگنل پیدا کرتا ہے۔ جب قیمتوں میں RSI اشارے بڑھتے ہیں تو زیادہ کریں ، اور جب قیمتوں میں RSI اشارے گر جاتے ہیں تو خالی کریں۔ مارکیٹ کی طاقت اور ممکنہ رجحانات کی تبدیلی کا اندازہ لگانے کے لئے تجارت کی مقدار کے RSI اشارے میں تبدیلی کو ایک ساتھ دیکھیں۔
یہ حکمت عملی پہلے قیمتوں کے لئے 9 سیکنڈ کے RSI اشارے ((RSI) ، اور 9 سیکنڈ کے RSI اشارے ((VRSI) کے ساتھ تجارت کی جاتی ہے۔ پھر ان دونوں RSI اشارے ((MARSI اور MAVRSI) کے لئے 5 سیکنڈ کے سادہ منتقل اوسط کا حساب لگائیں۔
ٹریڈنگ سگنل کی پیداوار MARSI اشارے پر مبنی ہے۔ MARSI اوپر جانے پر زیادہ اور MARSI نیچے جانے پر کم۔ اس کے علاوہ ، MAVRSI اشارے کا استعمال مارکیٹ کی طاقت اور ممکنہ رجحان کی تبدیلیوں کا اندازہ لگانے کے لئے کیا جاتا ہے۔
مثال کے طور پر ، اگر قیمتوں میں اضافے کا سلسلہ جاری رہتا ہے لیکن حجم کم ہوتا ہے ، تو یہ ظاہر کرتا ہے کہ کثیر طاقت کمزور ہوسکتی ہے ، لہذا اس کی تیاری کرنی چاہئے۔ اس کے برعکس ، اگر قیمتوں میں کمی کا سلسلہ جاری ہے لیکن حجم میں اضافہ ہوا ہے ، تو یہ ظاہر ہوتا ہے کہ خالی سر طاقت میں اضافہ ہوا ہے۔
اس حکمت عملی میں دوہری آر ایس آئی اشارے کی متحرک اوسط شامل ہے ، جو رجحانات کو مؤثر طریقے سے پکڑنے کے قابل ہے ، جبکہ مارکیٹ کی طاقت کا اندازہ لگانے کے لئے حجم میں تبدیلیوں کا استعمال کیا جاتا ہے ، اور اس سے بچنے سے بچا جاتا ہے۔ یہ حکمت عملی ایک ہی آر ایس آئی اشارے کے مقابلے میں مارکیٹ کی رفتار کو زیادہ درست طریقے سے پکڑ سکتی ہے۔
حرکت پذیر اوسط کے استعمال سے کچھ شور کو بھی فلٹر کیا جاسکتا ہے ، جس سے سگنل زیادہ قابل اعتماد ہوجاتے ہیں۔ اس کے علاوہ ، مختلف پیرامیٹرز کی ترتیب جیسے آر ایس آئی کی مدت اور حرکت پذیر اوسط کی مدت حکمت عملی کو بہتر بنانے کے لئے بھی ممکن ہے۔
اس حکمت عملی کا سب سے اہم خطرہ یہ ہے کہ دوہری اشارے کے مابین انحراف پیدا ہوسکتا ہے۔ جب قیمت اور حجم کے مابین انحراف ہوتا ہے تو ، تجارتی سگنل بھی کم قابل اعتماد ہوجاتے ہیں۔ اس وقت اشارے کے مابین تعلقات کا مصنوعی فیصلہ کرنے کی ضرورت ہوتی ہے۔
ایک اور خطرہ یہ ہے کہ اس کو سیدھا کرنے میں آسانی سے چھیڑا جاسکتا ہے۔ جب قیمت افقی طور پر سیدھی ہوتی ہے تو ، آر ایس آئی اشارے کو ہلچل مچانے کا خطرہ ہوتا ہے اور غیر ضروری تجارتی سگنل کو متحرک کرتا ہے۔ اس وقت پیرامیٹرز کو ایڈجسٹ کرنے یا اشارے کی مطلق پوزیشن کا فیصلہ کرنے کی ضرورت ہوتی ہے۔
اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:
RSI اور منتقل اوسط کے پیرامیٹرز کو ایڈجسٹ کریں تاکہ آپ کو بہترین پیرامیٹرز کا مجموعہ مل سکے
ٹریڈنگ سگنل پیدا کرنے کے دوران اضافی شرائط کا فیصلہ شامل کریں ، جیسے کہ RSI اشارے میں اوورلوڈ اوور سیل علاقوں میں ٹرگر شدہ الٹ سگنل کی زیادہ وشوسنییتا
اسٹاپ نقصان کی حکمت عملی میں اضافہ کریں ، متحرک اسٹاپ یا اشارے کی روک تھام مرتب کریں
دوسرے اشارے کے ساتھ مل کر ، جیسے K لائن کی شکل ، اتار چڑھاؤ کا اشارہ وغیرہ۔
VRSI اور MARSI حکمت عملی نے قیمتوں اور حجم کے آر ایس آئی اشارے کو کامیابی کے ساتھ جوڑ دیا ہے۔ ڈبل اشارے کے مابین موازنہ اور فیصلے سے سگنل کی درستگی اور منافع کی شرح میں اضافہ ہوتا ہے۔ بہتر پیرامیٹرز کی ترتیب اور اسٹاپ نقصان کی حکمت عملی بھی اس کے مستحکم آپریشن کے لئے امکان فراہم کرتی ہے۔ مجموعی طور پر ، اس حکمت عملی نے اشارے کے مابین مجموعہ کا استعمال کیا ہے اور ایک ہی آر ایس آئی اشارے سے بہتر کارکردگی حاصل کی ہے۔
/*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")