बहु-अवधि गतिशील चलती औसत रणनीति

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

img

यह रणनीति गतिशील रूप से ट्रेडिंग संकेत उत्पन्न करने के लिए कई समय सीमाओं में विभिन्न प्रकार के चलती औसत का चयन करती है।

रणनीति तर्क

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

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

  • SMA सरल चलती औसत
  • ईएमए घातीय चलती औसत
  • TEMA ट्रिपल एक्सपोनेंशियल मूविंग एवरेज
  • WMA भारित चलती औसत
  • एचएमए हुल चलती औसत

इसी चलती औसत को चयन के आधार पर ग्राफ किया जाता है। जब समापन मूल्य चलती औसत से ऊपर होता है, तो यह लंबा होता है, और जब नीचे होता है तो यह छोटा होता है।

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

लाभ

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

जोखिम

  • मूविंग एवरेज के पीछे पड़ने से ट्रेंड टर्निंग पॉइंट्स छूट सकते हैं
  • फिक्स्ड पैरामीटर के साथ ओवरफिटिंग, लाइव ट्रेडिंग में कम प्रदर्शन की संभावना
  • आक्रामक लंबी/लघु संकेत पूंजी उपयोग की दक्षता को प्रभावित करते हैं

जोखिमों को निम्न द्वारा कम किया जा सकता हैः

  • प्रविष्टियों को अधिक सटीक रूप से निर्धारित करने के लिए अन्य संकेतक जोड़ना
  • विभिन्न बाजार व्यवस्थाओं के लिए वास्तविक व्यापार में मापदंडों का अनुकूलन
  • खाता आकार और जोखिम प्रबंधन के आधार पर स्थिति आकार को अनुकूलित करना

बढ़ोतरी के अवसर

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

  1. अधिक स्थिर संकेतों के लिए अन्य फ़िल्टर जोड़ें

    उदाहरण के लिए, मात्रा की पुष्टि के बिना झूठे ब्रेकआउट से बचने के लिए वॉल्यूम संकेतक।

  2. प्रवेश और निकास तर्क को अनुकूलित करें

    अनावश्यक घाटे को कम करने के लिए मूल्य चैनल निर्धारित करें और घाटे को रोकें।

  3. गतिशील चलती औसत अवधि

    मजबूत रुझानों में अधिक अवधि और समेकन के दौरान कम अवधि का उपयोग करें।

  4. धन प्रबंधन में सुधार

    ड्रॉडाउन और लाभ लेने के आधार पर स्थिति के आकार को समायोजित करें।

निष्कर्ष

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


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

//@version=3
strategy("MA_strategy ", shorttitle="MA_strategy", overlay=true, initial_capital=100000)

qty = input(100000000, "Buy quantity")

testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testStartMin = input(0, "Backtest Start Minute")

testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,testStartHour,testStartMin)

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


testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false


ma1 = input( "SMA",title="Select MA", options=["SMA", "EMA","TEMA", "WMA","HMA"])


len1 = input(7, minval=1, title="Period")

s=sma(close,len1)

e=ema(close,len1)


xEMA1 = ema(close, len1)
xEMA2 = ema(xEMA1, len1)
xEMA3 = ema(xEMA2, len1)
t = 3 * xEMA1 - 3 * xEMA2 + xEMA3


f_hma(_src, _length)=>
    _return = wma((2 * wma(_src, _length / 2)) - wma(_src, _length), round(sqrt(_length)))

h = f_hma(close, len1)

w = wma(close, len1)

ma = ma1 == "SMA"?s:ma1=="EMA"?e:ma1=="WMA"?w:ma1=="HMA"?h:ma1=="TEMA"?t:na

buy= close>ma
sell= close<ma

alertcondition(buy, title='buy', message='buy')
alertcondition(sell, title='sell', message='sell')

ordersize=floor(strategy.equity/close)

if testPeriod()
    strategy.entry("long",strategy.long,ordersize,when=buy)
    strategy.close("long", when = sell )


    
  









अधिक