लंबी-छोटी रैखिक प्रतिगमन क्रॉसओवर रणनीति

लेखक:चाओझांग, दिनांकः 2024-03-27 17:52:02
टैगः

img

अवलोकन

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

रणनीतिक सिद्धांत

रणनीति पहले एक निश्चित अवधि में स्टॉक मूल्य के रैखिक प्रतिगमन की गणना करती है। रैखिक प्रतिगमन सबसे कम वर्ग विधि का उपयोग करके एक सीधी रेखा फिट बैठता है, जो समय के साथ मूल्य परिवर्तन की प्रवृत्ति का प्रतिनिधित्व करता है। फिर रणनीति भविष्यवाणी की गई मूल्य रेखा और चार्ट पर वर्तमान मूल्य को प्लॉट करती है।

रणनीति दो संकेतों को परिभाषित करती हैः

  1. लंबी सिग्नलः जब पूर्वानुमानित मूल्य वर्तमान मूल्य से ऊपर जाता है तो ट्रिगर किया जाता है
  2. शॉर्ट सिग्नलः जब पूर्वानुमानित मूल्य वर्तमान मूल्य से नीचे जाता है तो ट्रिगर किया जाता है

जब लॉन्ग सिग्नल दिखाई देता है, तो रणनीति एक लंबी स्थिति खोलती है; जब शॉर्ट सिग्नल दिखाई देता है, तो यह स्थिति को बंद कर देती है।

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

  1. समय की अवधि में कीमत के रैखिक प्रतिगमन की गणना करें
  2. चार्ट पर पूर्वानुमानित मूल्य रेखा और वर्तमान मूल्य को प्लॉट करें
  3. लंबे और छोटे संकेतों को परिभाषित करें
  4. जब लंबे संकेत को ट्रिगर किया जाता है एक लंबी स्थिति खोलें
  5. स्थिति बंद करें जब शॉर्ट सिग्नल ट्रिगर किया जाता है

लाभ विश्लेषण

लंबी-छोटी रैखिक प्रतिगमन क्रॉसओवर रणनीति के निम्नलिखित फायदे हैंः

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

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

अपने अनेक लाभों के बावजूद, लंबी-छोटी रैखिक प्रतिगमन क्रॉसओवर रणनीति में कुछ जोखिम भी हैं:

  1. ट्रेंड रिकग्निशन रिस्क: जब मूल्य आंदोलन रैखिक प्रवृत्ति का पालन नहीं करता है, जैसे कि रेंजिंग मार्केट में, रणनीति झूठे संकेत उत्पन्न कर सकती है। इस जोखिम को अन्य संकेतकों जैसे एमएसीडी के साथ जोड़कर कम किया जा सकता है।
  2. पैरामीटर सेटिंग जोखिमः रणनीति का प्रदर्शन पैरामीटर सेटिंग्स के प्रति संवेदनशील है, और अनुचित पैरामीटर नुकसान का कारण बन सकते हैं। इसलिए, लाइव ट्रेडिंग से पहले पर्याप्त बैकटेस्टिंग और पैरामीटर अनुकूलन आवश्यक है।
  3. ओवरफिटिंग जोखिमः यदि पैरामीटर अति-अनुकूलित हैं, तो यह रणनीति को ऐतिहासिक डेटा को ओवरफिट करने और भविष्य में खराब प्रदर्शन करने का कारण बन सकता है। ओवरफिटिंग से बचने के तरीकों में इसे सरल, आउट-ऑफ-सैंपल परीक्षण आदि शामिल हैं।

अनुकूलन दिशाएँ

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

सारांश

Long-Short Linear Regression Crossover Strategy Linear Regression और वर्तमान मूल्य की तुलना के आधार पर ट्रेडिंग सिग्नल उत्पन्न करता है। रणनीति का तर्क सरल और स्पष्ट है, और यह मूल्य की रैखिक प्रवृत्ति को पकड़ सकता है और विभिन्न बाजार स्थितियों पर लागू हो सकता है। साथ ही, रणनीति को लागू करना और अनुकूलित करना आसान है, और मापदंडों को लचीले ढंग से समायोजित किया जा सकता है, अन्य संकेतकों के साथ संयुक्त किया जा सकता है, जोखिम नियंत्रण मॉड्यूल जोड़े जा सकते हैं, आदि, रणनीति के प्रदर्शन में लगातार सुधार करने के लिए। हालांकि, रणनीति में गलत प्रवृत्ति पहचान, अनुचित पैरामीटर सेटिंग्स और ऐतिहासिक डेटा के अतिपूर्ति जैसे जोखिम भी हैं, इसलिए व्यावहारिक अनुप्रयोग में सावधानी बरतने की आवश्यकता है। कुल मिलाकर, Long-Short Linear Regression Crossover Strategy एक सरल और प्रभावी मात्रात्मक ट्रेडिंग रणनीति है जिसे आगे की खोज और अनुकूलन के लायक है।


/*backtest
start: 2024-02-25 00:00:00
end: 2024-03-26 00:00:00
period: 3h
basePeriod: 15m
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/
// © stocktechbot
//@version=5
strategy("Linear Cross", overlay=true, margin_long=100, margin_short=0)

//Linear Regression

vol = volume

// Function to calculate linear regression
linregs(y, x, len) =>
    ybar = math.sum(y, len)/len
    xbar = math.sum(x, len)/len
    b = math.sum((x - xbar)*(y - ybar),len)/math.sum((x - xbar)*(x - xbar),len)
    a = ybar - b*xbar
    [a, b]

// Historical stock price data
price = close

// Length of linear regression
len = input(defval = 21, title = 'Strategy Length')
linearlen=input(defval = 9, title = 'Linear Lookback')
[a, b] = linregs(price, vol, len)

// Calculate linear regression for stock price based on volume
//eps = request.earnings(syminfo.ticker, earnings.actual)
//MA For double confirmation

out = ta.sma(close, 200)
outf = ta.sma(close, 50)
outn = ta.sma(close, 90)
outt = ta.sma(close, 21)
outthree = ta.sma(close, 9)

// Predicted stock price based on volume
predicted_price = a + b*vol

// Check if predicted price is between open and close
is_between = open < predicted_price and predicted_price < close

//MACD
//[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9)

// Plot predicted stock price
plot(predicted_price, color=color.rgb(65, 59, 150), linewidth=2, title="Predicted Price")
plot(ta.sma(predicted_price,linearlen), color=color.rgb(199, 43, 64), linewidth=2, title="MA Predicted Price")
//offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)
plot(out, color=color.blue, title="MA200")
[macdLine, signalLine, histLine] = ta.macd(predicted_price, 12, 26, 9)

//BUY Signal

longCondition=false
mafentry =ta.sma(close, 50) > ta.sma(close, 90)
//matentry = ta.sma(close, 21) > ta.sma(close, 50)
matwohun = close > ta.sma(close, 200)
twohunraise = ta.rising(out, 2)
twentyrise = ta.rising(outt, 2)
macdrise = ta.rising(macdLine,2)
macdlong = ta.crossover(predicted_price, ta.wma(predicted_price,linearlen))  and (signalLine < macdLine)
if macdlong and macdrise
    longCondition := true

if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)
//Sell Signal
lastEntryPrice = strategy.opentrades.entry_price(strategy.opentrades - 1)
daysSinceEntry = len
daysSinceEntry := int((time - strategy.opentrades.entry_time(strategy.opentrades - 1)) / (24 * 60 * 60 * 1000))
percentageChange = (close - lastEntryPrice) / lastEntryPrice * 100
//trailChange = (ta.highest(close,daysSinceEntry) - close) / close * 100

//label.new(bar_index, high, color=color.black, textcolor=color.white,text=str.tostring(int(trailChange)))
shortCondition=false
mafexit =ta.sma(close, 50) < ta.sma(close, 90)
matexit = ta.sma(close, 21) < ta.sma(close, 50)
matwohund = close < ta.sma(close, 200)
twohunfall = ta.falling(out, 3)
twentyfall = ta.falling(outt, 2)
shortmafall = ta.falling(outthree, 1)
macdfall = ta.falling(macdLine,1)
macdsell = macdLine < signalLine
if macdfall and macdsell and (macdLine < signalLine) and ta.falling(low,2)
    shortCondition := true

if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)




अधिक