وسائل لوڈ ہو رہے ہیں... لوڈنگ...

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

مصنف:چاؤ ژانگ، تاریخ: 2023-11-16 16:28:22
ٹیگز:

img

جائزہ

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

اصول

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

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

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

فوائد

  1. متعدد ٹائم فریم کو یکجا کرنے سے قیمتوں کے منحنی خطوط کو ہموار کیا جاسکتا ہے اور جھوٹے بریک آؤٹ کو مؤثر طریقے سے روکا جاسکتا ہے۔

  2. آر ایس آئی زیادہ خریدنے / زیادہ فروخت کی سطح کی نشاندہی کرتا ہے، نئی اونچائیوں / نچلی سطحوں کا پیچھا کرنے سے بچنے کے لئے.

  3. دوہری چلتی اوسط ایک واحد چلتی اوسط نظام کے مقابلے میں بہتر ہولڈنگ اثر ہے.

  4. ایس ایم اے کے بجائے وی ایم اے کا استعمال مختصر مدت کے اتار چڑھاؤ کے اثرات کو کم کرتا ہے۔

خطرات

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

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

  3. آر ایس آئی کی انحراف اکثر ہوتی ہے، الٹ سگنل پر نظر رکھی جانی چاہئے.

حل: ٹائم فریم پیرامیٹرز کو بہتر بنائیں۔ رجحانات کا تعین کرنے کے لئے ایم اے سی ڈی جیسے دوسرے اشارے کے ساتھ مل کر؛ آر ایس آئی کے اختلاف کے اشاروں پر دھیان دیں۔

اصلاح کی ہدایات

  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 )



مزید