تیز رفتار RSI ریورس ٹریڈنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-03-01 11:55:56
ٹیگز:

img

جائزہ

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

حکمت عملی منطق

حکمت عملی بنیادی طور پر مندرجہ ذیل اشارے پر مبنی ہے:

  1. فاسٹ آر ایس آئی اشارے: RMA فنکشن کا استعمال کرتے ہوئے RSI کا حساب لگاتا ہے تاکہ اس کو زیادہ حساس بنایا جاسکے تاکہ زیادہ تیزی سے خرید / فروخت کے سگنل کو پکڑ سکے۔

  2. شمعدان کا جسم فلٹر: کم اتار چڑھاؤ کی صورتحال کو فلٹر کرنے کے لئے موم بتی کے جسم کے سائز کو ای ایم اے جسم کے اوسط کے 1/5 سے زیادہ کرنے کی ضرورت ہے۔

  3. کم از کم/زیادہ سے زیادہ قیمت فلٹر: اگر قیمت رجحان کی تبدیلی کی تصدیق کرنے کے لئے نئی اعلی یا نئی کم تک پہنچ جاتا ہے تو فیصلہ.

  4. SMA فلٹر: اضافی تصدیق کے لئے ایس ایم اے لائن کو توڑنے کے لئے قیمت کی ضرورت ہے۔

تجارتی سگنل اس وقت پیدا ہوتے ہیں جب مندرجہ بالا متعدد حالات بیک وقت ٹرگر ہوجاتے ہیں۔ مخصوص منطق یہ ہے:

لانگ انٹری: تیز رفتار RSI زیادہ فروخت کی سطح سے نیچے اور موم بتی کا جسم > 1/5 EMA جسم اور کم سے کم قیمت کی خرابی اور قیمت SMA سے اوپر کی حد سے تجاوز کرتی ہے

مختصر اندراج: تیز رفتار RSI زیادہ خریدنے کی سطح سے اوپر اور موم بتی کا جسم > 1/5 EMA جسم اور زیادہ سے زیادہ قیمت کی خرابی اور SMA سے نیچے قیمت کی کراسنگ

آؤٹ: فاسٹ آر ایس آئی نارمل رینج میں واپس

فوائد

اس حکمت عملی کے مندرجہ ذیل فوائد ہیں:

  1. قلیل مدتی ریورسز سے اتار چڑھاؤ کو پکڑتا ہے
  2. تیز رفتار RSI اشارے حساس ہے
  3. متعدد فلٹرز جھوٹے سگنل کو کم کرتے ہیں
  4. قابو پانے والا خطرہ، چھوٹا سا استعمال

خطرات اور اصلاح

اس حکمت عملی میں کچھ خطرات بھی ہیں:

  1. ناکام واپسی کا خطرہ
  2. محدود اصلاح کی جگہ

مزید بہتر بنا سکتے ہیں:

  1. تجارتی حجم فلٹر شامل کریں
  2. سٹاپ نقصان کو نافذ کریں
  3. پیرامیٹر مجموعہ کو بہتر بنائیں

نتیجہ

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


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

//Noro
//2018

//@version=3
strategy(title = "Noro's Fast RSI Strategy v1.4", shorttitle = "Fast RSI str 1.4", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 5)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usersi = input(true, defval = true, title = "Use Fast RSI Strategy")
usemm = input(true, defval = true, title = "Use Min/Max Strategy")
usesma = input(true, defval = true, title = "Use SMA Filter")
smaperiod = input(20, defval = 20, minval = 2, maxval = 1000, title = "SMA Filter Period")
rsiperiod = input(7, defval = 7, minval = 2, maxval = 50, title = "RSI Period")
limit = input(30, defval = 30, minval = 1, maxval = 100, title = "RSI limit")
rsisrc = input(close, defval = close, title = "RSI Price")
rsibars = input(1, defval = 1, minval = 1, maxval = 20, title = "RSI Bars")
mmbars = input(1, defval = 1, minval = 1, maxval = 5, title = "Min/Max Bars")
showsma = input(false, defval = false, title = "Show SMA Filter")
showarr = input(false, defval = false, title = "Show Arrows")
fromyear = input(2018, defval = 2018, 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")

//Fast RSI
fastup = rma(max(change(rsisrc), 0), rsiperiod)
fastdown = rma(-min(change(rsisrc), 0), rsiperiod)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Limits
bar = close > open ? 1 : close < open ? -1 : 0
uplimit = 100 - limit
dnlimit = limit

//RSI Bars
upsignal = fastrsi > uplimit ? 1 : 0
dnsignal = fastrsi < dnlimit ? 1 : 0
uprsi = sma(upsignal, rsibars) == 1
dnrsi = sma(dnsignal, rsibars) == 1

//Body
body = abs(close - open)
emabody = ema(body, 30)

//MinMax Bars
min = min(close, open)
max = max(close, open)
minsignal = min < min[1] and bar == -1 and bar[1] == -1 ? 1 : 0
maxsignal = max > max[1] and bar == 1 and bar[1] == 1 ? 1 : 0
mins = sma(minsignal, mmbars) == 1
maxs = sma(maxsignal, mmbars) == 1

//SMA Filter
sma = sma(close, smaperiod)
colorsma = showsma ? blue : na
plot(sma, color = colorsma, linewidth = 3)

//Signals
up1 = bar == -1 and (strategy.position_size == 0 or close < strategy.position_avg_price) and dnrsi and body > emabody / 5 and usersi
dn1 = bar == 1 and (strategy.position_size == 0 or close > strategy.position_avg_price) and uprsi and body > emabody / 5 and usersi
up2 = mins and (close > sma or usesma == false) and usemm
dn2 = maxs and (close < sma or usesma == false) and usemm 
exit = ((strategy.position_size > 0 and fastrsi > dnlimit and bar == 1) or (strategy.position_size < 0 and fastrsi < uplimit and bar == -1)) and body > emabody / 2

//Arrows
col = exit ? black : up1 or dn1 ? blue : up2 or dn2 ? red : 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
if up1 or up2
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

if dn1 or dn2
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
    
if time > timestamp(toyear, tomonth, today, 00, 00) or exit
    strategy.close_all()

مزید