असामान्य मूल्य उतार-चढ़ाव प्रतिवर्तन रणनीति


निर्माण तिथि: 2023-10-11 16:03:36 अंत में संशोधित करें: 2023-10-11 16:03:36
कॉपी: 1 क्लिक्स: 689
1
ध्यान केंद्रित करना
1617
समर्थक

अवलोकन

यह रणनीति कीमतों के मानक अंतर की गणना करके यह निर्धारित करती है कि क्या कीमतों में असामान्य रूप से भारी उतार-चढ़ाव आया है। जब कीमतों में असामान्य रूप से भारी उतार-चढ़ाव होता है, तो इसे मूल्य में बदलाव की संभावना के रूप में देखा जाता है और रिवर्स ऑपरेशन किया जाता है।

सिद्धांत

इस रणनीति में मुख्य रूप से दो मापदंडों का उपयोग किया गया हैः

  1. VixFix सूचकांकः एक निश्चित अवधि के भीतर कीमतों के मानक अंतर की गणना करें, यह निर्धारित करने के लिए कि क्या कीमतों में असामान्य उतार-चढ़ाव है।
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 क्रमशः निचली सीमा और ऊपरी सीमा है। जब कीमत ऊपरी सीमा से अधिक होती है, तो असामान्य उतार-चढ़ाव माना जाता है।

  1. आरएसआई सूचक: कीमतों के सापेक्षिक ताकत का सूचकांक, कीमतों के पलटने का समय निर्धारित करता है। विशिष्ट गणना विधि हैः
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)) 

जब आरएसआई एक निश्चित मूल्य से कम होता है, तो यह संकेत देता है कि कीमत ओवरसोल्ड है और एक पलटाव हो सकता है। जब आरएसआई एक निश्चित मूल्य से अधिक होता है, तो यह संकेत देता है कि कीमत ओवरबॉट है और एक पलटाव हो सकता है।

प्रवेश और निकास

इस रणनीति के लिए प्रवेश और निकास तर्क इस प्रकार हैः

बहु-स्थिति प्रवेशः जब कीमत ऊपरी सीमा से अधिक हो या उतार-चढ़ाव सीमा से अधिक हो, और आरएसआई एक निश्चित मूल्य से नीचे हो, तो अधिक करें।

रिक्त स्थिति में प्रवेशः जब कीमत ऊपरी सीमा रेखा से अधिक हो या उतार-चढ़ाव सीमा से अधिक हो, और आरएसआई एक निश्चित मूल्य से अधिक हो, तो शून्य करें।

बाहर निकलने की शर्तेंः स्थिति खोलने की दिशा 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()