ریورس RSI پر مبنی سگنل سے باخبر رہنے والی تجارتی حکمت عملی


تخلیق کی تاریخ: 2023-09-28 10:54:24 آخر میں ترمیم کریں: 2023-09-28 10:54:24
کاپی: 1 کلکس کی تعداد: 413
1
پر توجہ دیں
1166
پیروکار

جائزہ

یہ حکمت عملی RSI اشارے کی طرف سے چھوٹ گئے اوورلوڈ اوورلوڈ سگنل کا سراغ لگانے کے ذریعے واپسی کی تجارت کو انجام دیتی ہے۔ جب RSI اشارے اوورلوڈ علاقے سے پیچھے ہٹ جاتا ہے تو ٹریکنگ کثیر سگنل پیدا ہوتا ہے ، اور جب اوورلوڈ علاقے سے واپسی ہوتی ہے تو ٹریکنگ خالی سگنل پیدا ہوتا ہے ، تاکہ واپسی کے مواقع کو پکڑ سکے۔

حکمت عملی کا اصول

سگنل کا تعین

آر ایس آئی اشارے کا استعمال اوور بیو اور اوور سیل کا تعین کرنے کے لئے کیا جاتا ہے۔ آر ایس آئی اوور بیو لائن کو عبور کرنے پر اوور خرید سگنل ہے ، اور اوور سیل لائن کو عبور کرنے پر اوور سیل سگنل ہے۔

overbought = rsi > uplimit 
oversold = rsi < dnlimit

اگر پچھلا K لائن RSI اشارے اوور بُو میں ہے تو ، موجودہ K لائن RSI اشارے اوور بُو سے باہر نکل جاتا ہے ، جس سے ٹریکنگ کثیر سگنل پیدا ہوتا ہے۔up1اگر پچھلا K لائن RSI اشارے oversold ہے تو ، موجودہ K لائن RSI اشارے oversold سے باہر نکل جاتا ہے ، جس سے ٹریکنگ کا نشانہ بنایا جاتا ہےdn1

up1 = bar == -1 and strategy.position_size == 0 and overbought[1] and overbought == false
dn1 = bar == 1 and strategy.position_size == 0 and oversold[1] and oversold == false 

فیصلے سے دستبرداری

جب پوزیشن کی سمت K لائن کی سمت کے ساتھ ملتی ہے اور جب ادارہ اس کی 10 سائیکل کی اوسط سے نصف سے تجاوز کرتا ہے تو ، ایکٹ آؤٹ سگنل پیدا ہوتا ہے۔

exit = (((strategy.position_size > 0 and bar == 1) or 
         (strategy.position_size < 0 and bar == -1)) and 
        body > abody / 2)

اسٹریٹجک فوائد

  1. RSI اشارے میں نظرانداز ہونے والے الٹ کے اشارے کو ٹریک کریں تاکہ وقت پر اوور بیئر اوور سیل پوائنٹس کو پکڑنے کی ضرورت سے بچنے کے لئے۔

  2. RSI اشارے کی واپسی کی خصوصیات کا استعمال کرتے ہوئے ، واپسی کے مواقع پر قبضہ کریں۔

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

خطرات اور حل

  1. RSI اشارے کے غلط سگنل کا خطرہ

    • حل: دوسرے اشارے کے ساتھ تصدیق کریں اور غلط فہمیوں سے بچیں۔
  2. سگنل پر نظر رکھنے کے بعد ، قیمتوں میں پہلے ہی کچھ تبدیلیاں ہوسکتی ہیں ، جس سے نقصان کا خطرہ زیادہ ہوتا ہے۔

    • حل: داخلے کی پوزیشن کو کم کریں یا داخلے کے وقت کو بہتر بنائیں۔
  3. کچھ واپسیوں میں واپسی کا خطرہ ہوتا ہے کیونکہ وہ منافع بخش نہیں ہوتے ہیں

    • حل: باہر نکلنے کے فیصلے کی منطق کو بہتر بنانا اور پوزیشنوں کو منافع بخش بنانے کے مواقع کو بہتر بنانا۔

آپٹمائزیشن

  1. آپٹمائزنگ پیرامیٹرز کو مختلف مارکیٹوں کے لئے ایڈجسٹ کرنے کے لئے مقرر کیا گیا ہے ، جیسے اوورلوڈ اوور سیل لائن ، ریویو سائیکل وغیرہ۔

  2. پوزیشن مینجمنٹ کے طریقوں کو ایڈجسٹ کریں ، جیسے سگنل کا سراغ لگانے پر پوزیشن کم کریں۔

  3. داخلہ کے وقت کو بہتر بنانے کے لئے ، ٹریکنگ سگنل کی بنیاد پر ، اضافی شرائط کی پابندیاں شامل کریں۔

  4. آپٹ آؤٹ کے طریقوں کو بہتر بنانا ، منافع کے امکانات کو بہتر بنانا ، جیسے موبائل اسٹاپ متعارف کروانا۔

  5. نقصان کو روکنے کے طریقوں کو بہتر بنانا ، نقصان کے خطرے کو کم کرنا ، جیسے کہ متحرک نقصانات ، فانوس نقصانات وغیرہ کا تعارف۔

خلاصہ کریں۔

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

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

//Noro
//2018

//@version=2
strategy(title = "Noro's Anti RSI Strategy v1.0", shorttitle = "Anti RSI str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usemar = input(false, defval = false, title = "Use Martingale")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
rsiperiod1 = input(14, defval = 14, minval = 2, maxval = 50, title = "RSI Period")
rsilimit1 = input(25, defval = 25, minval = 1, maxval = 100, title = "RSI limit")
showarr = input(false, defval = false, title = "Show Arrows")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//RSI
uprsi1 = rma(max(change(close), 0), rsiperiod1)
dnrsi1 = rma(-min(change(close), 0), rsiperiod1)
rsi = dnrsi1 == 0 ? 100 : uprsi1 == 0 ? 0 : 100 - (100 / (1 + uprsi1 / dnrsi1))
uplimit = 100 - rsilimit1
dnlimit = rsilimit1

//Body
body = abs(close - open)
abody = sma(body, 10)

//Signals
bar = close > open ? 1 : close < open ? -1 : 0
overbought = rsi > uplimit
oversold = rsi < dnlimit

up1 = bar == -1 and strategy.position_size == 0 and overbought[1] and overbought == false
dn1 = bar == 1 and strategy.position_size == 0 and oversold[1] and oversold == false
up2 = bar == -1 and strategy.position_size > 0 and overbought == false
dn2 = bar == 1 and strategy.position_size < 0 and oversold == false

norma = overbought == false and oversold == false
exit = (((strategy.position_size > 0 and bar == 1) or (strategy.position_size < 0 and bar == -1)) and body > abody / 2)

//Arrows
col = exit ? black : up1 or dn1 or up2 or dn2 ? blue : na
needup = up1 or up2
needdn = dn1 or dn2
needexitup = exit and strategy.position_size < 0
needexitdn = exit and strategy.position_size > 0
plotarrow(showarr and needup ? 1 : na, colorup = blue, colordown = blue, transp = 0)
plotarrow(showarr and needdn ? -1 : na, colorup = blue, colordown = blue, transp = 0)
plotarrow(showarr and needexitup ? 1 : na, colorup = black, colordown = black, transp = 0)
plotarrow(showarr and needexitdn ? -1 : na, colorup = black, colordown = black, transp = 0)

//Trading
profit = exit ? ((strategy.position_size > 0 and close > strategy.position_avg_price) or (strategy.position_size < 0 and close < strategy.position_avg_price)) ? 1 : -1 : profit[1]
mult = usemar ? exit ? profit == -1 ? mult[1] * 2 : 1 : mult[1] : 1
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 * mult : lot[1]

if up1 or up2
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1 or dn2
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()