रैखिक प्रतिगमन आरएसआई पर आधारित मात्रात्मक ट्रेडिंग रणनीति

लेखक:चाओझांग, दिनांकः 2024-01-24 11:35:19
टैगः

img

अवलोकन

यह रणनीति रैखिक प्रतिगमन आरएसआई संकेतक के आधार पर डिज़ाइन की गई है। यह रैखिक प्रतिगमन आरएसआई और ईएमए के बीच क्रॉसओवर की गणना करके खरीद और बिक्री संकेत उत्पन्न करता है। रणनीति खरीद तर्क के लिए दो विकल्प भी प्रदान करती है जिन्हें आवश्यकता के अनुसार चुना जा सकता है।

रणनीति तर्क

रणनीति पहले 200-अवधि रैखिक प्रतिगमन की गणना करती है, फिर रैखिक प्रतिगमन परिणाम के आधार पर 21-अवधि आरएसआई की गणना करती है। उसके बाद, 50-अवधि ईएमए की गणना की जाती है। जब आरएसआई ईएमए के ऊपर पार करता है, तो एक खरीद संकेत उत्पन्न होता है। जब आरएसआई ईएमए के नीचे पार करता है, तो स्थिति को बंद करने के लिए एक बिक्री संकेत ट्रिगर किया जाता है।

रणनीति दो प्रकार के खरीद तर्क प्रदान करती हैः

  1. जब आरएसआई ईएमए से ऊपर जाता है तो खरीदें
  2. खरीदें जब आरएसआई ईएमए से ऊपर और ओवरबॉट लाइन से ऊपर हो

उचित खरीद तर्क का चयन बाजार स्थितियों के आधार पर किया जा सकता है।

लाभ विश्लेषण

यह रणनीति रैखिक प्रतिगमन आरएसआई और ईएमए दोनों की ताकतों को जोड़ती है, जो प्रभावी रूप से कुछ मूल्य शोर को फ़िल्टर करती है और अधिक विश्वसनीय ट्रेडिंग संकेत उत्पन्न करती है।

रैखिक प्रतिगमन आरएसआई प्रवृत्ति को बेहतर ढंग से पकड़ता है, और ईएमए मोड़ बिंदुओं की पहचान करने में मदद करता है। दोनों का संयोजन प्रवृत्तियों के भीतर औसत प्रतिगमन के अवसरों को ढूंढ सकता है।

यह रणनीति दो वैकल्पिक खरीद तर्क प्रदान करती है ताकि विभिन्न बाजार चरणों के अनुकूलन के लिए अधिक लचीलापन हो सके। उदाहरण के लिए, पहले तर्क का उपयोग मजबूत रुझानों में किया जा सकता है, जबकि दूसरा तर्क विभिन्न बाजारों के लिए बेहतर फिट बैठता है।

जोखिम विश्लेषण

इस रणनीति का मुख्य जोखिम आरएसआई और ईएमए के बीच संबंध में संभावित परिवर्तन में निहित है, जिससे गलत व्यापार संकेत हो सकते हैं।

इसके अतिरिक्त, संकेतकों के रूप में आरएसआई और ईएमए की पिछड़ी प्रकृति भी प्रवेश और निकास में कुछ देरी का कारण बन सकती है, जो कि मोड़ के बिंदुओं को पूरी तरह से पकड़ने में विफल रहती है। इससे कुछ हद तक व्यावहारिक जोखिम पैदा होते हैं।

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

सुधार की दिशाएँ

इस रणनीति में निम्नलिखित पहलुओं से सुधार किया जा सकता हैः

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

निष्कर्ष

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


/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Linear RSI")

startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end   = timestamp(input(9999, "End Year"),   input(1, "Month"),   input(1, "Day"),   0, 0)
_testPeriod() => true

//inputs
length = input(defval=200, minval=1, title="LR length")
length2 = input(defval=21, minval=1, title="RSI length")
ema_fast = input(defval=50, minval=1, title="EMA")
lag = 0

overBought = input(50)
overSold = input(50)


//rsi
src = close
Lr = linreg(src, length, lag)
rsi = rsi(Lr, length2)
ema = ema(rsi, ema_fast)

plot(rsi, color = rsi > overBought ? color.green : rsi < overSold ? color.red : color.silver)
plot(overBought, color=color.purple)
plot(overSold, color=color.purple)
plot(ema, color=color.blue)

first_type = input(true, title="Use first logic?")
second_type =  input(false, title="Use second logic?")

long_condition = (first_type ? crossover(rsi, ema) and _testPeriod() : false) or (second_type ? rsi > ema and rsi > overBought and _testPeriod() : false)
strategy.entry('BUY', strategy.long, when=long_condition)  
 
short_condition = crossunder(rsi, ema)
strategy.close('BUY', when=short_condition)

अधिक