ملٹی ٹائم فریم RSI حرکت پذیر اوسط کراس اوور حکمت عملی


تخلیق کی تاریخ: 2023-11-16 16:28:22 آخر میں ترمیم کریں: 2023-11-16 16:28:22
کاپی: 1 کلکس کی تعداد: 783
1
پر توجہ دیں
1617
پیروکار

ملٹی ٹائم فریم RSI حرکت پذیر اوسط کراس اوور حکمت عملی

جائزہ

ملٹی ٹائم فریم آر ایس آئی مساوی لائن کراسنگ حکمت عملی ایک سے زیادہ ٹائم فریموں کی رجحان سے باخبر رہنے کی حکمت عملی ہے۔ اس حکمت عملی میں ایک ہی وقت میں متعدد ٹائم فریموں کے آر ایس آئی اشارے استعمال کیے جاتے ہیں ، اور ہر ٹائم فریم کے آر ایس آئی کے لئے ایک وزنی حرکت پذیر اوسط کا علاج کیا جاتا ہے ، اور آخر کار دو جامع سگنل اشارے میں ضم ہوجاتا ہے۔ جب دو سگنل اشارے گولڈ فورک ہوتے ہیں تو زیادہ کرتے ہیں ، اور جب ڈیڈ فورک ہوتے ہیں تو خالی ہوجاتے ہیں۔ یہ ایک عام ڈبل مساوی لائن کراسنگ حکمت عملی ہے۔

اصول

یہ حکمت عملی سب سے پہلے RSI اشارے کو متعدد ٹائم فریموں (مثال کے طور پر 1 منٹ ، 5 منٹ ، 15 منٹ وغیرہ) پر الگ الگ حساب کرتی ہے ، اور پھر ہر ٹائم فریم کے RSI کو 15 لمبائی کی ایک وزن والی حرکت پذیر اوسط (VMA) کے ساتھ سنبھالتی ہے ، جس سے ہر ٹائم فریم کے لئے RSI کی اوسط ہوتی ہے۔

اس کے بعد ، تمام ٹائم فریموں کے RSI اوسط کو مساوی وزن کے ساتھ جوڑا جاتا ہے ، جس سے فوری لائن اور سست لائن دونوں سگنل مل جاتے ہیں۔ تیز لائن کی لمبائی 100 سیکنڈ کی ای ایم اے ہے ، اور سست لائن کی لمبائی 150 سیکنڈ کی ای ایم اے ہے۔

جب تیز لائن نیچے سے اوپر کی طرف سے سست لائن کو توڑتی ہے تو خریدنے کا اشارہ پیدا ہوتا ہے۔ جب تیز لائن اوپر سے نیچے کی طرف سے سست لائن کو توڑتی ہے تو بیچنے کا اشارہ پیدا ہوتا ہے۔ اس طرح ، کثیر ٹائم فریم آر ایس آئی کا جامع کراس سگنل ، مختصر مدت کی مارکیٹ کے شور کو فلٹر کرتے ہوئے رجحانات کو مؤثر طریقے سے ٹریک کرسکتا ہے۔

فوائد

  1. ملٹی ٹائم فریم جامع ، قیمتوں کے منحنی خطوط کو ہموار کرتا ہے ، جعلی توڑ کو مؤثر طریقے سے فلٹر کرتا ہے۔

  2. آر ایس آئی اشارے اوورلوڈ اور اوورلوڈ کی عکاسی کرسکتے ہیں ، اس سے بچنے سے بچنے سے بچنے سے بچنے کے لئے۔

  3. ڈبل مساوی لائن ایک واحد مساوی لائن نظام کے مقابلے میں بہتر پوزیشن ہولڈنگ اثر ہے.

  4. ایس ایم اے کے بجائے وی ایم اے کا استعمال میڈین لائن پر قلیل مدتی اتار چڑھاؤ کے اثرات کو کم کرنے میں مدد کرتا ہے۔

خطرات

  1. ایک سے زیادہ ٹائم فریم کی حکمت عملی ، پیرامیٹرز کو ایڈجسٹ کرنے کے لئے اعلی تقاضے ، غلط ترتیب سے کھیل میں جلدی یا دیر سے داخل ہوسکتا ہے۔

  2. اوسط لکیری نظام منحنی فٹ ہونے کے لئے ناقص ہے ، اور رجحان کے موڑ کے نقطہ پر خراب کارکردگی کا مظاہرہ کرتا ہے۔

  3. RSI اشارے آسانی سے انحراف کی شکل اختیار کر سکتے ہیں، اور اس کے برعکس سگنل پر توجہ دینا چاہئے۔

حل: ٹائم فریم پیرامیٹرز کی ترتیبات کو ایڈجسٹ کریں؛ رجحانات کا فیصلہ کرنے کے لئے دوسرے اشارے جیسے MACD وغیرہ کے ساتھ مل کر؛ RSI سگنل سے ہٹ جانے کے لئے الرٹ کریں۔

اصلاح کی سمت

  1. ٹائم فریموں کی تعداد اور پیرامیٹرز کی ترتیبات کو بہتر بنائیں تاکہ رجحانات کو بہتر طور پر پکڑ سکے۔

  2. خطرے پر قابو پانے کے لئے روک تھام کے نظام کو شامل کرنے پر غور کریں۔

  3. دوسرے اشارے کے ساتھ مل کر ، فیصلہ سازی کے معیار کو بہتر بنانے کے لئے رجحانات اور انحراف کا اندازہ لگائیں۔

  4. مختلف پوزیشنوں کی مدت کے پیرامیٹرز کی جانچ پڑتال کریں اور بہترین پوزیشنوں کو تلاش کریں.

خلاصہ کریں۔

ملٹی ٹائم فریم آر ایس آئی مساوی لائن کراسنگ حکمت عملی ، متعدد ٹائم فریموں میں آر ایس آئی اشارے کے جامع فیصلے کے ذریعے ، مساوی نظام کو قیمتوں کے منحنی خطوط کو ہموار کرنے اور تجارتی سگنل پیدا کرنے کے لئے استعمال کرتی ہے ، یہ ایک عام ملٹی ٹائم فریم رجحان سے باخبر رہنے کی حکمت عملی ہے۔ اس حکمت عملی کا فائدہ یہ ہے کہ یہ رجحان کو مؤثر طریقے سے ٹریک کرسکتا ہے اور شور کو فلٹر کرسکتا ہے ، لیکن پیرامیٹرز کو بہتر بنانے اور خطرے پر قابو پانے پر توجہ دینے کی ضرورت ہے۔ مزید اصلاح کے ساتھ ، یہ حکمت عملی ایک مضبوط رجحان سے باخبر رہنے والا نظام بن سکتی ہے۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-10-16 00:00:00
end: 2023-11-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="RSI multitimeframe SMA crossover", shorttitle="RSI multitimeframe strategy", default_qty_type= strategy.percent_of_equity, margin_long=50, default_qty_value=150)

res1 = input(title="Res 01", type=input.resolution, defval="1")
res2 = input(title="Res 0", type=input.resolution, defval="5")
res3 = input(title="Res 1", type=input.resolution, defval="15")
res4 = input(title="Res 2", type=input.resolution, defval="15")
res5 = input(title="Res 3", type=input.resolution, defval="15")
res6 = input(title="Res 4", type=input.resolution, defval="30")
res7 = input(title="Res 5", type=input.resolution, defval="45")
res8 = input(title="Res 6", type=input.resolution, defval="60")



lengthRSI = input(15, minval=1)
lengthMA = input(15, minval=1)
lengthFMA = input(100, minval=1)
lengthFMA2 = input(150, minval=1)
Long_yes = input(defval=1, title="Long trades 0 or 1", minval=0, maxval=1)
Short_yes = input(defval=0, title="Short trades 0 or 1", minval=0, maxval=1)
src = close

// === INPUT BACKTEST RANGE ===
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

// === INPUT SHOW PLOT ===
showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

// === FUNCTION EXAMPLE ===
start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"



// stop loss 
longLossPerc = input(title="Long Stop Loss (%)", type=input.float, minval=0.0, step=0.5, defval=10) * 
   0.01
longStopPrice = strategy.position_avg_price * (1 - longLossPerc)

shortLossPerc = input(title="Short Stop Loss (%)", type=input.float, minval=0.0, step=0.5, defval=10) * 
   0.01
shortStopPrice = strategy.position_avg_price * (1 + shortLossPerc)


rsi1 = rsi(src, lengthRSI)
MA1 = vwma(rsi1, lengthMA)






outD1 = security(syminfo.tickerid, res1, MA1)
outD2 = security(syminfo.tickerid, res2, MA1)
outD3 = security(syminfo.tickerid, res3, MA1)
outD4 = security(syminfo.tickerid, res4, MA1)
outD5 = security(syminfo.tickerid, res5, MA1)
outD6 = security(syminfo.tickerid, res6, MA1)
outD7 = security(syminfo.tickerid, res7, MA1)
outD8 = security(syminfo.tickerid, res8, MA1)




//plot_d0 = outD0
//plot_d1 = outD1
//plot_d2 = outD2
//plot_d3 = outD3
//plot_d4 = outD4
//plot_d5 = outD5
//plot_d6 = outD6

out_multi = ema(outD1+outD2+outD3+outD4+outD5+outD6+outD7+outD8, lengthFMA)
out_multi2 = ema(outD1+outD2+outD3+outD4+outD5+outD6+outD7+outD8, lengthFMA2)
//out_multi1 = outD2+outD3+outD4
//out_multi2 = outD4+outD5+outD6

//col0 = outD0 < 20 ? color.lime : outD0 > 80 ? color.red : color.blue
//col1 = outD1 < 20 ? color.lime : outD1 > 80 ? color.red : color.blue
//col2 = outD2 < 20 ? color.lime : outD2 > 80 ? color.red : color.blue
//col3 = outD3 < 20 ? color.lime : outD3 > 80 ? color.red : color.blue
//col4 = outD4 < 20 ? color.lime : outD4 > 80 ? color.red : color.blue
//col5 = outD5 < 20 ? color.lime : outD5 > 80 ? color.red : color.blue
//col6 = outD6 < 20 ? color.lime : outD6 > 80 ? color.red : color.blue


// plot(plot_d0,linewidth=2, color=col0)
// plot(plot_d1, linewidth=2, color=col1)
// plot(plot_d2,linewidth=2, color=col2)
// plot(plot_d3,linewidth=2, color=col3)
// plot(plot_d4,linewidth=2, color=col4)
// plot(plot_d5,linewidth=2, color=col5)
// plot(plot_d6,linewidth=2, color=col6)

long=(out_multi/8)
short=(out_multi2/8)

plot(long, linewidth=1, color=color.green)
plot(short, linewidth=1, color=color.red)

long1=crossover(long,short)
short1=crossunder(long,short)

h0 = hline(65, "Upper Band", color=color.red, linestyle=hline.style_solid, linewidth=2 )
h1 = hline(35, "Lower Band", color=color.green, linestyle=hline.style_solid, linewidth=2)


strategy.entry("buy", strategy.long, when=long1 and window() and Long_yes > 0) 
if strategy.position_size > 0
    strategy.exit(id="XL STP", stop=longStopPrice)
strategy.close("buy",when=short1 )

strategy.entry("sell", strategy.short, when=short1 and window() and Short_yes > 0) 
if strategy.position_size < 0
    strategy.exit(id="XS STP", stop=shortStopPrice)
strategy.close("buy",when=long1 )