दोहरी मूविंग एवरेज रिवर्स रणनीति

लेखक:चाओझांग, दिनांकः 2023-11-22 10:07:19
टैगः

img

अवलोकन

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

रणनीति तर्क

  1. अल्पकालिक चलती औसत अवधि shortma (डिफ़ॉल्ट 7 दिन) और दीर्घकालिक चलती औसत अवधि longma (डिफ़ॉल्ट 77 दिन) सेट करें
  2. जब शॉर्ट एमए लंबी एमए से पार हो जाती है, तो इसे खरीद संकेत और रिकॉर्ड बार के रूप में निर्धारित किया जाता है। लंबी एमए का अर्थ है कि एक अपट्रेंड शुरू हो गया है। जब शॉर्ट एमए लंबी एमए से नीचे पार हो जाती है, तो इसे बेच संकेत और रिकॉर्ड बार के रूप में निर्धारित किया जाता है। लंबी एमए का अर्थ है कि अपट्रेंड समाप्त हो गया है।
  3. बार्ससेन्स मानों की तुलना करें। शॉर्ट एमए के नीचे पार होने के बाद जितने अधिक बार होते हैं, उतनी ही अधिक समय तक उछाल जारी रहता है। शॉर्ट एमए के ऊपर पार होने के बाद जितने अधिक बार होते हैं, उतने ही मजबूत उलट सिग्नल होते हैं।
  4. जब बेचना संकेत के लिए बारसिंक्स खरीद संकेत के लिए बारसिंक्स से अधिक होता है, तो एक खरीद संकेत ट्रिगर किया जाता है। जब खरीद संकेत के लिए बारसिंक्स बिक्री संकेत के लिए बारसिंक्स से अधिक होता है, तो एक बिक्री संकेत ट्रिगर किया जाता है।
  5. अनिवार्य रूप से यह एक दोहरी एमए रिवर्स रणनीति है, जिसमें ट्रेंड रिवर्स पॉइंट का पता लगाने के लिए तेज और धीमे एमए के क्रॉसओवर रिवर्स का उपयोग किया जाता है।

लाभ

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

जोखिम

  1. दोहरी एमए रणनीतियों से अधिक बार ट्रेडिंग सिग्नल उत्पन्न होते हैं
  2. खराब एमए पैरामीटर ट्यूनिंग लंबे समय तक रुझानों को याद कर सकती है
  3. दीर्घकालिक एमए के टूटने पर स्टॉप लॉस दूर हो सकता है, जिससे अधिक ड्रॉडाउन हो सकते हैं
  4. कोइल और दोलन को प्रभावी ढंग से छान नहीं सकता

सुधार दिशाएँ

  1. विभिन्न बाजारों में झटके से बचने के लिए अन्य संकेतक जोड़ें
  2. स्टॉप लॉस तंत्र जोड़ें
  3. एमए पैरामीटर संयोजनों का अनुकूलन
  4. बाजार चक्र के आधार पर एमए मापदंडों को गतिशील रूप से समायोजित करें

सारांश

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


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

//@version=3
strategy("Up Down", "Up Down", precision = 6, pyramiding = 1, default_qty_type = strategy.percent_of_equity, default_qty_value = 99, commission_type = strategy.commission.percent, commission_value = 0.0, initial_capital = 1000, overlay = true)

buy = close > open and open > close[1]
sell = close < open and open < close[1]

longma = input(77,"Long MA Input")
shortma = input(7,"Short MA Input")
long = sma(close,longma)
short = sma(close, shortma)
mabuy = crossover(short,long) or buy and short > long
masell = crossunder(short,long) or sell and short > long

num_bars_buy = barssince(mabuy)
num_bars_sell = barssince(masell)
//plot(num_bars_buy, color = teal)
//plot(num_bars_sell, color = orange)

xbuy = crossover(num_bars_sell, num_bars_buy)
xsell = crossunder(num_bars_sell, num_bars_buy)
plotshape(xbuy,"Buy Up Arrow", shape.triangleup, location.belowbar, white, size = size.tiny)
plotshape(xsell,"Sell Down Arrow", shape.triangledown, location.abovebar, white, size = size.tiny)
plot(long,"Long MA", fuchsia, 2)

// Component Code Start
// Example usage:
// if testPeriod()
//   strategy.entry("LE", strategy.long)
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(7, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() => true
// Component Code Stop

if testPeriod()
    strategy.entry("buy", true, when = xbuy, limit = close)
    strategy.close("buy", when = xsell)


अधिक