اس حکمت عملی میں قیمتوں کی اتار چڑھاؤ کے معیاری انحراف کا حساب لگاتے ہوئے قیمتوں میں الٹ پھیر کے مواقع کا پتہ چلتا ہے۔ جب قیمتوں میں غیر معمولی طور پر بڑی اتار چڑھاؤ ہوتی ہے تو ، اسے قیمتوں میں الٹ پھیر کا موقع سمجھا جاتا ہے ، اور الٹ ٹریڈنگ پوزیشنیں لی جاتی ہیں۔
حکمت عملی میں دو اہم اشارے استعمال کیے گئے ہیں:
wvf = ((highest(close, pd)-low)/(highest(close, pd)))*100
sDev = mult * stdev(wvf, bbl)
midLine = sma(wvf, bbl)
lowerBand = midLine - sDev
upperBand = midLine + sDev
جہاں wvf قیمت کی اتار چڑھاؤ ہے ، sDev معیاری انحراف ہے ، midLine اوسط لائن ہے ، lowerBand اور upperBand نیچے اور اوپری حد کی لائن ہیں۔ جب قیمت اوپری حد کی لائن سے تجاوز کرتی ہے تو ، اسے غیر معمولی اتار چڑھاؤ سمجھا جاتا ہے۔
fastup = rma(max(change(close), 0), 7)
fastdown = rma(-min(change(close), 0), 7)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))
جب آر ایس آئی کسی حد سے نیچے ہوتا ہے تو ، یہ oversold کی حیثیت اور ممکنہ چھلانگ کی نشاندہی کرتا ہے۔ جب آر ایس آئی حد سے تجاوز کرتا ہے تو ، یہ overbought کی حیثیت اور ممکنہ پل بیک کی نشاندہی کرتا ہے۔
انٹری اور آؤٹ پٹ منطق یہ ہے:
لانگ انٹری: جب قیمت اوپری حد سے تجاوز کرتی ہے یا اتار چڑھاؤ حد سے تجاوز کرتا ہے ، اور آر ایس آئی ایک قدر سے نیچے ہے ، تو طویل ہوجائیں۔
مختصر اندراج: جب قیمت اوپری حد سے تجاوز کرتی ہے یا اتار چڑھاؤ حد سے تجاوز کرتا ہے ، اور آر ایس آئی ایک قدر سے تجاوز کرتا ہے تو ، مختصر ہوجائیں۔
باہر نکلنا: جب شمعدان کے جسم کی سمت پوزیشن کی سمت کے برعکس ہے تو ، قریب کی پوزیشن۔
یہ حکمت عملی قیمت کی اتار چڑھاؤ کے معیاری انحراف کا حساب کتاب کرکے قیمت کی اتار چڑھاؤ کا پتہ لگاتی ہے ، تاکہ الٹ جانے کے مواقع کو حاصل کیا جاسکے۔ RSI کو انٹری کی درستگی کو بہتر بنانے کے لئے اوور بُک / اوور سیلڈ کی حیثیت کا فیصلہ کرنے کے لئے جوڑا جاتا ہے۔ شمعدان کے جسم کی سمت اسٹاپ نقصان کا استعمال کیا جاتا ہے۔ مجموعی طور پر ، یہ حکمت عملی غیر معمولی اتار چڑھاؤ کا پتہ لگانے کے لئے شماریاتی اعداد و شمار کا استعمال کرنے میں موثر ہے ، لیکن استحکام کو بہتر بنانے کے لئے پیرامیٹر کی مزید اصلاح کی ضرورت ہے۔ اگر نقصانات کو کم کرنے کے لئے اسٹاپ نقصان کے طریقہ کار کو معقول حد تک بہتر بنایا جاسکتا ہے تو ، حکمت عملی اور بھی بہتر کارکردگی کا مظاہرہ کرے گی۔
/*backtest start: 2022-10-04 00:00:00 end: 2023-10-10 00:00:00 period: 2d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy(title = "Noro's VixFix + RSI Strategy v1.0", shorttitle = "VixFix + RSI str 1.0", 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") leverage = input(1, defval = 1, minval = 1, maxval = 100, title = "leverage") limit = input(40, defval = 40, minval = 2, maxval = 50, title = "RSI Limit") pd = input(22, title="LookBack Period Standard Deviation High") bbl = input(20, title="Bolinger Band Length") mult = input(2.0, minval = 1, maxval = 5, title = "Bollinger Band Standard Devaition Up") lb = input(50, title="Look Back Period Percentile High") ph = input(.85, title="Highest Percentile - 0.90=90%, 0.95=95%, 0.99=99%") pl = input(1.01, title="Lowest Percentile - 1.10=90%, 1.05=95%, 1.01=99%") hp = input(false, title="Show High Range - Based on Percentile and LookBack Period?") sd = input(false, title="Show Standard Deviation Line?") 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") //Vix Fix wvf = ((highest(close, pd)-low)/(highest(close, pd)))*100 sDev = mult * stdev(wvf, bbl) midLine = sma(wvf, bbl) lowerBand = midLine - sDev upperBand = midLine + sDev rangeHigh = (highest(wvf, lb)) * ph rangeLow = (lowest(wvf, lb)) * pl col = wvf >= upperBand or wvf >= rangeHigh ? lime : gray //RSI fastup = rma(max(change(close), 0), 7) fastdown = rma(-min(change(close), 0), 7) fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown)) //Body body = abs(close - open) abody = sma(body, 10) //Signals up = (wvf >= upperBand or wvf >= rangeHigh) and fastrsi < limit and close < open dn = (wvf >= upperBand or wvf >= rangeHigh) and fastrsi > (100 - limit) and close > open exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 3 //Trading lot = strategy.position_size == 0 ? strategy.equity / close * leverage : lot[1] if up if strategy.position_size < 0 strategy.close_all() strategy.entry("Bottom", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if dn if strategy.position_size > 0 strategy.close_all() strategy.entry("Top", 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()