ऑसिलेटिंग रिवर्सल मूविंग एवरेज सिस्टम रणनीति


निर्माण तिथि: 2023-10-18 12:23:13 अंत में संशोधित करें: 2023-10-18 12:23:13
कॉपी: 2 क्लिक्स: 620
1
ध्यान केंद्रित करना
1617
समर्थक

ऑसिलेटिंग रिवर्सल मूविंग एवरेज सिस्टम रणनीति

अवलोकन

यह रणनीति प्रवृत्ति की दिशा का पता लगाने के लिए एक समान-रेखा प्रणाली का उपयोग करती है, और कम अस्थिरता वाले बाजारों से बचने के लिए अस्थिरता के संकेतकों के साथ संयोजन करती है, व्यापार प्रबंधन के लिए अस्थिरता को रोकने का उपयोग करती है।

सिद्धांत

यह रणनीति तेजी से औसत और धीमी औसत की तुलना करके प्रवृत्ति की दिशा का न्याय करती है। जब तेजी से औसत पर धीमी औसत के माध्यम से अधिक देखें, तो नीचे देखें। बाजार में उतार-चढ़ाव से बचने के लिए, रणनीति में ब्रिन बैंड इंडिकेटर भी पेश किया गया है। ब्रिन बैंड की चौड़ाई में परिवर्तन की दर की गणना करके, जब परिवर्तन की दर निर्धारित थ्रेशोल्ड से अधिक हो जाती है, तो व्यापार उत्पन्न होता है।

विशेष रूप से, रणनीति का लेन-देन तर्क इस प्रकार हैः

  1. त्वरित औसत रेखा (डिफ़ॉल्ट 20 दिन) और धीमी औसत रेखा (डिफ़ॉल्ट 50 दिन) की गणना करें।

  2. ब्रिन बैंड की चौड़ाई में परिवर्तन की दर की गणना करें (डिफ़ॉल्ट 40 दिन, दो बार मानक अंतर) ।

  3. जब तेज औसत रेखा पर धीमी औसत रेखा से गुजरती है और ब्रिन बैंडविड्थ परिवर्तन दर सेट थ्रेशोल्ड ((डिफ़ॉल्ट 9%) से अधिक होती है, तो एक मल्टीहेड सिग्नल उत्पन्न होता है।

  4. जब तेज़ औसत रेखा के नीचे धीमी औसत रेखा से गुजरती है, और ब्रिन बैंडविड्थ परिवर्तन दर सेट थ्रेशोल्ड ((डिफ़ॉल्ट 9%) से अधिक है, तो एक खाली सिर संकेत उत्पन्न होता है।

  5. चंदेली रिक्त मार्ग को स्टॉप लॉस के रूप में गणना करें।

  6. मल्टी हेड स्टॉप के लिए अधिकतम मूल्य-एटीआर*गुणांक, शून्य रुकावट न्यूनतम मूल्य + एटीआर*गुणांक

लाभ

  1. प्रवृत्ति की दिशा का आकलन करने के लिए औसत रेखा प्रणाली का उपयोग करें, जिससे प्रवृत्ति को प्रभावी ढंग से ट्रैक किया जा सके।

  2. ब्रिन बैंडविड्थ परिवर्तन दर को लागू करने से बाजार में उतार-चढ़ाव से बचा जा सकता है और अनावश्यक लेनदेन को कम किया जा सकता है।

  3. आघात-रोक का उपयोग करें, समय पर आघात को रोकें और आघात में फंसने से बचें

  4. विभिन्न बाजारों के लिए अनुकूलित करने के लिए कई मापदंडों को समायोजित किया जा सकता है

  5. रणनीति तर्क स्पष्ट और समझने में आसान है, और इसका उपयोग करना सीखना आसान है।

जोखिम

  1. समानांतर प्रणाली में विलंबता है, जो एक त्वरित पलटाव के अवसर को याद कर सकती है।

  2. ब्रिन बैंड पैरामीटर्स की गलत सेटिंग्स एक वैध ट्रेडिंग सिग्नल को फ़िल्टर कर सकती हैं।

  3. इस प्रकार, यह भी संभव है कि एक व्यक्ति के पास बहुत अधिक समय हो।

  4. पैरामीटर अनुकूलन की कमी से जोखिम हो सकता है।

  5. बाजारों में अचानक होने वाली बड़ी घटनाओं के कारण होने वाले भारी बदलावों के लिए अनुकूलन करने में असमर्थ।

अनुकूलन दिशा

  1. आप विभिन्न मापदंडों के समरेखा संयोजनों का परीक्षण कर सकते हैं, सबसे अच्छे मापदंडों की तलाश कर सकते हैं।

  2. सबसे अच्छा फ़िल्टर प्रभाव खोजने के लिए विभिन्न आवृत्तियों के लिए ब्रिन बैंड मापदंडों का परीक्षण करें।

  3. सिग्नल की गुणवत्ता को बढ़ाने के लिए अन्य संकेतकों के साथ प्रवेश की पुष्टि की जा सकती है।

  4. एक गतिशील स्टॉप लॉस रणनीति को लागू किया जा सकता है ताकि स्टॉप लॉस बेहतर तरीके से बाजार का अनुसरण कर सके।

  5. बाजार में बदलाव के लिए स्वचालित अनुकूलन मापदंडों के साथ मशीन लर्निंग तकनीक का संयोजन किया जा सकता है।

संक्षेप

इस रणनीति में समानांतर रेखा प्रणाली, ब्रिन बैंड संकेतक और झटके के नुकसान की तकनीक को एकीकृत किया गया है, जिससे एक अपेक्षाकृत स्थिर प्रवृत्ति ट्रैकिंग प्रणाली बनाई गई है। पैरामीटर अनुकूलन के माध्यम से अच्छी रणनीति प्रभाव प्राप्त किया जा सकता है। लेकिन प्रवृत्ति में बदलाव और बाजार में उतार-चढ़ाव के जोखिम के लिए सतर्क रहना आवश्यक है, इसके अलावा मशीन सीखने जैसी प्रौद्योगिकियां रणनीति की स्थिरता को और बढ़ा सकती हैं। कुल मिलाकर, यह रणनीति सीखने के लिए एक रणनीति के रूप में बहुत उपयुक्त है।

रणनीति स्रोत कोड
/*backtest
start: 2022-10-11 00:00:00
end: 2023-10-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © juanchez

//@version=4
strategy("CHI", overlay = true, close_entries_rule = "ANY")

n = input(title= "highest high o lowest low period", defval= 22)
f= input(title= "multiplicador", defval= 4)
long = highest(high, n) - atr(n)*f
short= lowest(low, n) + atr(n)*f
plot(long, color= color.red)
plot(short, color= color.green)

//moving averages
period= input(title= "moving averages period", defval= 50)
period2= input(title= "moving averages period2", defval= 20)
type= input(title= "moving averages type", options= ["sma", "ema"], defval= "ema")

//moving average function
mo(p, t) =>
    if t == "sma"
        sma(close[barstate.islast ? 1: 0], p)
    else  if t== "ema"
        ema(close[barstate.islast ? 1: 0], p)

m= mo(period, type)
m2= mo(period2, type)

trend= m2 > m 

plot(m, color = color.maroon, linewidth = 3)
plot(m2, linewidth= 3)


//BOLLINGER BANDS ENTRIES
bb1_period= input(title= "Bollinger bands 1 period", defval=40, minval=1)
bb1_source=input(title="Bollinger band 1 source", defval=close)
bb1_multi=input(title="Bollinger Bands 1 factor", defval=2, minval=1, step=0.1)
show_bb1= input(title="Show Bollinger bands 1", defval=false)
//BOLLINGER BANDS
_bb(src, lenght, multi)=>
    float moving_avg= sma(src[barstate.islast? 1: 0], lenght)
    float deviation= stdev(src[barstate.islast? 1: 0], lenght)
    float lowerband = moving_avg - deviation*multi
    float upperband = moving_avg + deviation*multi
    
    [moving_avg, lowerband, upperband]
    
[bb1, lowerband1, upperband1]= _bb(bb1_source,  bb1_period, bb1_multi)

//FIRST BAND    
plot(show_bb1? bb1 : na, title="BB1 Moving average", linewidth= 3, color= color.fuchsia)
plot(show_bb1? upperband1 : na, title="BB1 Upper Band", linewidth= 3, color= color.green)
plot(show_bb1? lowerband1 : na, title="BB1 Lower Band", linewidth= 3, color= color.red)

//BB's Width threshold 
thresh= input(title= "widen %", defval= 9, minval = 0, step = 1, maxval= 100)

widht= (upperband1 - lowerband1)/bb1
roc= change(widht)/widht[1]*100
cross=crossover(roc, thresh)

// entry
//long
elong= input(true, title= "enable long")
longcondition= m2 > m and cross and elong

//short
eshort= input(true, title= "enable short")
shortcondition= m2 < m and cross and eshort


plotshape(longcondition? true: false , location= location.belowbar, style= shape.labelup, size= size.small, color= color.green, text= "Buy", textcolor= color.white)
plotshape(shortcondition? true: false , location= location.abovebar, style= shape.labeldown, size= size.small, color= color.red, text= "Sell", textcolor= color.white)

out= crossunder(close, long)
outt= crossover(close, short)

strategy.entry("long", strategy.long, when = longcondition)
strategy.close("long", when = out)

strategy.entry("short", strategy.short, when = shortcondition)
strategy.close("short", when = outt)