रेनबो ऑसिलेटर बैकटेस्टिंग रणनीति

लेखक:चाओझांग, दिनांकः 2023-12-26 15:08:17
टैगः

img

अवलोकन

रेनबो ऑसिलेटर बैकटेस्टिंग रणनीति रेनबो ऑसिलेटर संकेतक पर आधारित एक मात्रात्मक ट्रेडिंग रणनीति है। यह रणनीति लंबी और छोटी स्थिति निर्धारित करने के लिए मूल्य और चलती औसत के बीच विचलन की गणना करके बाजार की प्रवृत्ति दिशा और ताकत का न्याय करती है।

रणनीति तर्क

इस रणनीति का मुख्य सूचक रेनबो ऑसिलेटर (आरओ) है, जिसकी गणना इस प्रकार की जाती हैः

RO = 100 * ((Close - 10-day Moving Average) / (HHV(High, N) - LLV(Low, N))) 

जहां 10-दिवसीय चलती औसत पिछले 10 अवधियों में समापन की कीमतों का सरल चलती औसत है। यह संकेतक अपने स्वयं के चलती औसत के सापेक्ष मूल्य के विचलन को दर्शाता है। जब आरओ > 0, इसका मतलब है कि कीमत चलती औसत से ऊपर है, एक तेजी का संकेत; जब आरओ < 0, इसका मतलब है कि कीमत चलती औसत से नीचे है, एक मंदी का संकेत।

इस रणनीति में एक सहायक सूचक - बैंडविड्थ (आरबी) की गणना भी की गई है, जिसकी गणना इस प्रकार की जाती हैः

RB = 100 * ((Highest value of moving averages - Lowest value of moving averages) / (HHV(High, N) - LLV(Low, N)))

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

आरओ और आरबी संकेतकों के मानों के अनुसार, रणनीति मूल्य विचलन और बाजार स्थिरता की डिग्री का आकलन करती है, और लंबी और छोटी स्थिति के लिए ट्रेडिंग संकेत उत्पन्न करती है।

लाभ

इस रणनीति के लाभ इस प्रकार हैंः

  1. दोहरे संकेतकों के आधार पर निर्णय लेने से एकल संकेतकों के आधार पर निर्णय लेने की सीमाओं से बचा जा सकता है।
  2. कीमतों के रुझान और बाजार की स्थिरता का एक साथ आकलन कर सकता है।
  3. गणना करने में सरल, समझने और लागू करने में आसान।
  4. विज़ुअलाइज़ किए गए संकेतक एक rainbow प्रभाव बनाते हैं जो सहज और पढ़ने में आसान है।

जोखिम

इस रणनीति के साथ कुछ जोखिम भी हैंः

  1. आरओ और आरबी संकेतकों की अनुचित पैरामीटर सेटिंग्स गलत ट्रेडिंग संकेतों का कारण बन सकती हैं।
  2. दोहरी चलती औसत रणनीतियाँ झूठे संकेत और लगातार व्यापार उत्पन्न करती हैं।
  3. अनुचित बैकटेस्टिंग अवधि और उत्पाद चयन रणनीति की प्रभावशीलता को प्रभावित करेगा।
  4. व्यापारिक लागतों पर विचार नहीं किया जाता है, वास्तविक परिणाम खराब हो सकते हैं।

विरोधी उपाय:

  1. आरओ और आरबी संकेतकों के लिए मापदंडों का अनुकूलन करें।
  2. बार-बार व्यापार करने से बचने के लिए फ़िल्टर स्थितियां जोड़ें।
  3. उपयुक्त बैकटेस्टिंग चक्र और विविधता का चयन करें।
  4. लेन-देन की लागत की गणना और विचार करें।

अनुकूलन

इस रणनीति को निम्नलिखित तरीकों से भी अनुकूलित किया जा सकता हैः

  1. नाटकीय उतार-चढ़ाव से बचने के लिए आरओ संकेतक में चिकनी सुविधा जोड़ें।
  2. एकल हानि को नियंत्रित करने के लिए स्टॉप लॉस रणनीति जोड़ें।
  3. लाभप्रदता बढ़ाने के लिए पोर्टफोलियो ट्रेडिंग के अन्य संकेतकों के साथ संयोजन करें।
  4. पूर्वानुमान के लिए मशीन लर्निंग मॉडल जोड़ें और संकेतक की प्रभावशीलता का मूल्यांकन करें।
  5. अनुकूलन क्षमता में सुधार के लिए विभिन्न किस्मों के लिए मापदंडों का अनुकूलन करें।

निष्कर्ष

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


/*backtest
start: 2023-11-25 00:00:00
end: 2023-12-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 18/03/2018
// Ever since the people concluded that stock market price movements are not 
// random or chaotic, but follow specific trends that can be forecasted, they 
// tried to develop different tools or procedures that could help them identify 
// those trends. And one of those financial indicators is the Rainbow Oscillator 
// Indicator. The Rainbow Oscillator Indicator is relatively new, originally 
// introduced in 1997, and it is used to forecast the changes of trend direction.
//
// As market prices go up and down, the oscillator appears as a direction of the 
// trend, but also as the safety of the market and the depth of that trend. As 
// the rainbow grows in width, the current trend gives signs of continuity, and 
// if the value of the oscillator goes beyond 80, the market becomes more and more 
// unstable, being prone to a sudden reversal. When prices move towards the rainbow 
// and the oscillator becomes more and more flat, the market tends to remain more 
// stable and the bandwidth decreases. Still, if the oscillator value goes below 20, 
// the market is again, prone to sudden reversals. The safest bandwidth value where 
// the market is stable is between 20 and 80, in the Rainbow Oscillator indicator value. 
// The depth a certain price has on a chart and into the rainbow can be used to judge 
// the strength of the move.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Rainbow Oscillator Backtest")
Length = input(2, minval=1)
LengthHHLL = input(10, minval=2, title="HHV/LLV Lookback")
reverse = input(false, title="Trade reverse")
xMA1 = sma(close, Length)
xMA2 = sma(xMA1, Length)
xMA3 = sma(xMA2, Length)
xMA4 = sma(xMA3, Length)
xMA5 = sma(xMA4, Length)
xMA6 = sma(xMA5, Length)
xMA7 = sma(xMA6, Length)
xMA8 = sma(xMA7, Length)
xMA9 = sma(xMA8, Length)
xMA10 = sma(xMA9, Length)
xHH = highest(close, LengthHHLL)
xLL = lowest(close, LengthHHLL)
xHHMAs = max(xMA1,max(xMA2,max(xMA3,max(xMA4,max(xMA5,max(xMA6,max(xMA7,max(xMA8,max(xMA9,xMA10)))))))))
xLLMAs = min(xMA1,min(xMA2,min(xMA3,min(xMA4,min(xMA5,min(xMA6,min(xMA7,min(xMA8,min(xMA9,xMA10)))))))))
xRBO = 100 * ((close - ((xMA1+xMA2+xMA3+xMA4+xMA5+xMA6+xMA7+xMA8+xMA9+xMA10) / 10)) / (xHH - xLL))
xRB = 100 * ((xHHMAs - xLLMAs) / (xHH - xLL))
clr = iff(xRBO >= 0, green, red)
pos = iff(xRBO > 0, 1,
       iff(xRBO < 0, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(xRBO, color=clr, title="RO", style= histogram, linewidth=2)
p0 = plot(0, color = gray, title="0")
p1 = plot(xRB, color=green, title="RB")
p2 = plot(-xRB, color=red, title="RB")
fill(p1, p0, color=green)
fill(p2, p0, color=red)

अधिक