यह रणनीति मूल्य अस्थिरता के मानक विचलन की गणना करके मूल्य उलटविक्रय के अवसरों का पता लगाती है। जब असामान्य रूप से बड़ा मूल्य उतार-चढ़ाव होता है, तो इसे मूल्य उलटविक्रय के अवसर के रूप में माना जाता है, और रिवर्स ट्रेडिंग स्थिति ली जाती है।
इस रणनीति में दो मुख्य संकेतकों का उपयोग किया गया हैः
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))
जब आरएसआई एक सीमा से नीचे होता है, तो यह ओवरसोल्ड स्थिति और संभावित उछाल को दर्शाता है। जब आरएसआई एक सीमा से अधिक होता है, तो यह ओवरबोल्ड स्थिति और संभावित पुलबैक को दर्शाता है।
प्रवेश और निकास तर्क हैः
लॉन्ग एंट्रीः जब कीमत ऊपरी सीमा से अधिक हो या अस्थिरता सीमा से अधिक हो, और आरएसआई एक मूल्य से नीचे हो, तो लॉन्ग जाएं।
शॉर्ट एंट्रीः जब कीमत ऊपरी सीमा से अधिक हो या अस्थिरता सीमा से अधिक हो, और आरएसआई एक मूल्य से अधिक हो, तो शॉर्ट जाएं।
बाहर निकलना: जब कैंडलस्टिक शरीर की दिशा स्थिति दिशा के विपरीत होती है, तो स्थिति बंद हो जाती है।
रणनीति मूल्य अस्थिरता के मानक विचलन की गणना के माध्यम से असामान्य मूल्य अस्थिरता का पता लगाता है, उलट अवसरों को पकड़ने के लिए। आरएसआई को प्रवेश सटीकता में सुधार के लिए ओवरबॉट / ओवरसोल्ड स्थिति का न्याय करने के लिए जोड़ा जाता है। सरल कैंडलस्टिक बॉडी दिशा स्टॉप लॉस का उपयोग किया जाता है। कुल मिलाकर, रणनीति असामान्य अस्थिरता का पता लगाने के लिए सांख्यिकीय डेटा का उपयोग करने में प्रभावी है, लेकिन स्थिरता में सुधार के लिए आगे पैरामीटर अनुकूलन की आवश्यकता होती है। यदि नुकसान को कम करने के लिए स्टॉप लॉस तंत्र को उचित रूप से अनुकूलित किया जा सकता है, तो रणनीति और भी बेहतर प्रदर्शन करेगी।
/*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()