गतिशील पैटर्न रुझान उलटने की रणनीति

लेखक:चाओझांग, दिनांकः 2023-12-13 16:52:34
टैगः

img

अवलोकन

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

रणनीति तर्क

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

उपरोक्त संकेतों का कई पुष्टिकरणों के साथ संयोजन झूठे ब्रेकआउट से बचाता है और सटीकता में सुधार करता है।

लाभ विश्लेषण

  • मूल्य प्रवृत्ति का अनुमान लगाने के लिए रैखिक प्रतिगमन का उपयोग करें, संकेत की सटीकता में सुधार करें
  • चलती औसत पैटर्न के माध्यम से रुझान उलटने को कैप्चर करें
  • व्यापारिक मात्रा के आधार पर प्रतिगमन का अर्थ बेहतर अर्थशास्त्र है
  • एमएसीडी आदि द्वारा कई पुष्टिकरण झूठे संकेतों को कम करते हैं

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

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

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

  • रैखिक प्रतिगमन और चलती औसत के मापदंडों का अनुकूलन
  • झूठे संकेत दरों को कम करने के लिए अधिक पुष्टिकरण शर्तें जोड़ें
  • रुझान उलटने की गुणवत्ता का आकलन करने के लिए अधिक कारकों को शामिल करें
  • व्यक्तिगत ट्रेडों के जोखिमों को कम करने के लिए स्टॉप लॉस रणनीतियों को बेहतर बनाना

निष्कर्ष

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


/*backtest
start: 2023-12-05 00:00:00
end: 2023-12-12 00:00:00
period: 1m
basePeriod: 1m
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)




अधिक