یہ حکمت عملی قیمتوں کے معیاری فرق کا حساب لگاتی ہے تاکہ یہ معلوم کیا جاسکے کہ آیا قیمتوں میں غیر معمولی طور پر بڑے پیمانے پر اتار چڑھاؤ آیا ہے۔ جب قیمتوں میں غیر معمولی طور پر بڑے پیمانے پر اتار چڑھاؤ ہوتا ہے تو ، اس کو قیمتوں میں الٹ جانے کا موقع سمجھا جاتا ہے ، اور اس کے خلاف کارروائی کی جاتی ہے۔
اس حکمت عملی میں دو اہم اشارے استعمال کیے گئے ہیں:
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))
جب آر ایس آئی کسی قدر سے کم ہوتا ہے تو ، اس کا مطلب یہ ہے کہ قیمت اوور سیل کی حالت میں ہے اور اس میں تیزی آسکتی ہے۔ جب آر ایس آئی کسی قدر سے زیادہ ہوتا ہے تو ، اس کا مطلب یہ ہے کہ قیمت اوور خرید کی حالت میں ہے اور اس میں کمی آسکتی ہے۔
اس حکمت عملی کے لئے داخلے اور باہر نکلنے کا منطق مندرجہ ذیل ہے:
کثیر پوزیشن میں داخلہ: جب قیمت اوپر کی حد سے تجاوز کر جائے یا اتار چڑھاؤ کی شرح کم سے زیادہ ہو اور RSI کسی خاص قدر سے کم ہو تو زیادہ کریں۔
خالی پوزیشن میں داخلہ: جب قیمت اوپری لائن سے زیادہ ہو یا اتار چڑھاؤ کی شرح کم قیمت سے زیادہ ہو ، اور RSI کسی قدر سے زیادہ ہو تو ، خالی پوزیشن کریں۔
باہر نکلنے کی شرائط: پوزیشن کھولنے کی سمت K لائن ادارے کی سمت کے برعکس جب پوزیشن صاف ہو۔
یہ حکمت عملی قیمت میں اتار چڑھاو کی شرح کے معیاری فرق کا حساب کتاب کرکے ، قیمت میں غیر معمولی اتار چڑھاو کا تعین کرتی ہے ، تاکہ واپسی کے مواقع کو پکڑ سکے۔ داخلے کے وقت کے انتخاب پر ، قیمت کا اندازہ لگانے کے لئے آر ایس آئی کے اشارے کے ساتھ مل کر اوور بیئر اوور سیل کی حالت ، درستگی کو بہتر بناتا ہے۔ اسٹاپ نقصان کے طریقہ کار پر ، ایک سادہ جسمانی سمت کا استعمال کرتے ہوئے اسٹاپ نقصان۔ مجموعی طور پر ، یہ حکمت عملی غیر معمولی اتار چڑھاو کا اندازہ لگانے کے لئے اعدادوشمار کے اعدادوشمار کا استعمال کرتی ہے ، لیکن اس کی استحکام کو بڑھانے کے لئے مزید پیرامیٹرز کو بہتر بنانے کی ضرورت ہے۔ اگر اسٹاپ نقصان کو کم کرنے کے لئے معقول حد تک بہتر بنانے کے قابل ہو تو ، اس حکمت عملی کی کارکردگی بہتر ہوگی۔
/*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()