Stochastic Momentum Index اور RSI پر مبنی مقداری حکمت عملی


تخلیق کی تاریخ: 2023-12-12 15:20:29 آخر میں ترمیم کریں: 2023-12-12 15:20:29
کاپی: 0 کلکس کی تعداد: 1174
1
پر توجہ دیں
1621
پیروکار

Stochastic Momentum Index اور RSI پر مبنی مقداری حکمت عملی

جائزہ

یہ حکمت عملی بنیادی طور پر دو بڑے اشارے اسٹوکاسٹک مومینٹم انڈیکس ((SMI) اور رشتہ دار طاقت اشارے ((RSI) پر مبنی ہے۔ اس کے علاوہ ، رنگین فلٹر اور K لائن ہستی فلٹر کو معاون فیصلے کے طور پر شامل کیا گیا ہے۔ ایس ایم آئی اور آر ایس آئی اشارے کے متعدد سگنل پر مبنی ، فلٹرنگ شرائط کے ساتھ مل کر ٹریڈنگ سگنل جاری کریں۔ یہ حکمت عملی مارکیٹ میں مختصر لائن ٹریڈنگ کے مواقع کو مؤثر طریقے سے تلاش کرسکتی ہے۔

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

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

  1. ایس ایم آئی اوور سیل ((نیچے کی حد سے نیچے) ، خریدنے کا اشارہ سمجھا جاتا ہے
  2. RSI نیچے سے نیچے خریدنے کا اشارہ ہے
  3. جب ایس ایم آئی اوور سیل اور آر ایس آئی ایک ہی وقت میں اس سے کم ہو تو خریدنے کا اشارہ دیا جاتا ہے
  4. خالی سر سگنل فیصلے منطق کی طرح

اس کے علاوہ ، اس حکمت عملی میں ڈبل سگنل موڈ بھی موجود ہے۔ اس موڈ کی ضرورت ہے کہ ایس ایم آئی اور آر ایس آئی دونوں کو ایک ساتھ سگنل دینے کی ضرورت ہے تاکہ تجارت کی جاسکے۔ اس سے جعلی سگنل کو مؤثر طریقے سے کم کیا جاسکتا ہے۔

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

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

  1. ایس ایم آئی کا استعمال کرتے ہوئے فیصلہ کریں کہ آیا اوور بیئر اوور سیل ہے ، آر ایس آئی کا فیصلہ نسبتا strong مضبوط ہے ، ڈبل تصدیق سے جعلی سگنل کم ہوسکتے ہیں
  2. ڈبل سگنل موڈ میں سیٹ کریں ، غیر موثر تجارت کو نمایاں طور پر کم کریں
  3. رنگین فلٹر اور K لائن ہستی فلٹر مؤثر طریقے سے جعلی توڑنے کو فلٹر کرتے ہیں
  4. حکمت عملی کو چلانے کی منطق واضح اور آسان ہے
  5. زیادہ تر پیرامیٹرز اپنی مرضی کے مطابق ہیں

حکمت عملی کے خطرات اور اصلاحات

  1. جب SMI اور RSI کو الگ الگ اشارے کے طور پر استعمال کیا جاتا ہے تو ، اس سے زیادہ غلط سگنل پیدا ہوسکتے ہیں ، احتیاط سے دیکھنا چاہئے
  2. ڈبل سگنل موڈ میں ، اگر پیرامیٹرز کو غلط طریقے سے ترتیب دیا گیا ہے تو ، بہتر تجارت کے مواقع ضائع ہوسکتے ہیں
  3. مختلف دورانیہ پیرامیٹرز کے تحت حکمت عملی کی آمدنی کی صورت حال کی جانچ کر سکتے ہیں، پیرامیٹرز کے بہترین مجموعہ تلاش کریں
  4. مخصوص thresholds کے پیرامیٹرز کی ترتیبات جو کہ سیمولیشن یا ریٹرننگ کے ذریعے جائزہ لی جا سکتی ہیں
  5. فلٹر کو بہتر بنانے کے لیے مزید حکمت عملیوں پر غور کریں

خلاصہ کریں۔

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

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

//Noro
//2018

//@version=2
strategy(title = "Noro's Stochastic Strategy v1.3", shorttitle = "Stochastic str 1.3", overlay = false, 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, %")
usesmi = input(true, defval = true, title = "Use SMI Strategy")
usersi = input(true, defval = true, title = "Use RSI Strategy")
usecol = input(true, defval = true, title = "Use Color-Filter")
usebod = input(true, defval = true, title = "Use Body-Filter")
a = input(2, defval = 2, minval = 2, maxval = 50, title = "SMI Percent K Length")
b = input(2, defval = 2, minval = 2, maxval = 50, title = "SMI Percent D Length")
limitsmi = input(50, defval = 50, minval = 1, maxval = 100, title = "SMI Limit")
periodrsi = input(2, defval = 2, minval = 2, maxval = 50, title = "RSI Period")
limitrsi = input(10, defval = 10, minval = 1, maxval = 50, title = "RSI Limit")
double = input(false, defval = false, title = "SMI+RSI Mode")
showbg = input(false, defval = false, title = "Show background")
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(close), 0), periodrsi)
fastdown = rma(-min(change(close), 0), periodrsi)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Stochastic Momentum Index
ll = lowest (low, a)
hh = highest (high, a)
diff = hh - ll
rdiff = close - (hh+ll)/2
//avgrel = ema(ema(rdiff,b),b)
//avgdiff = ema(ema(diff,b),b)
avgrel = sma(sma(rdiff,b),b)
avgdiff = sma(sma(diff,b),b)
SMI = avgdiff != 0 ? (avgrel/(avgdiff/2)*100) : 0
SMIsignal = ema(SMI,b)

//Lines
plot(SMI, color = blue, linewidth = 3, title = "Stochastic Momentum Index")
plot(SMIsignal, color = red, linewidth = 3, title = "SMI Signal Line")
plot(limitsmi, color = black, title = "Over Bought")
plot(-1 * limitsmi, color = black, title = "Over Sold")
plot(0, color = blue, title = "Zero Line")

//Color-Filter
gb = close > open or usecol == false
rb = close < open or usecol == false

//Body Filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 3 or usebod == false

//Signals
up1 = SMI < -1 * limitsmi and rb and body and usesmi
dn1 = SMI > limitsmi and gb and body and usesmi
up2 = fastrsi < limitrsi and rb and body and usersi
dn2 = fastrsi > 100 - limitrsi and gb and body and usersi
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body

//Background
redb = (SMI > limitsmi and usesmi) or (fastrsi > 100 - limitrsi and usersi)
limeb = (SMI < -1 * limitsmi and usesmi) or (fastrsi < limitrsi and usersi)
col = showbg == false ? na : redb ? red : limeb ? lime : na
bgcolor(col, transp = 50)

//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]

signalup = ((up1 or up2) and double == false) or (up1 and up2 and double)
if signalup
    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)))

signaldn = ((dn1 or dn2) and double == false) or (dn1 and dn2 and double)
if signaldn
    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()