यह रणनीति हुल मूविंग एवरेज (एचएमए) के क्रॉसओवर सिग्नल पर आधारित है। यह ट्रेडिंग सिग्नल उत्पन्न करता है जब दो एचएमए लाइनें अलग-अलग अवधि के साथ एक-दूसरे को पार करती हैं। एचएमए एक उन्नत मूविंग एवरेज संकेतक है जो वेटेड मूविंग एवरेज (डब्ल्यूएमए) के विशेष संयोजन के माध्यम से देरी को कम करता है, तेजी से और चिकनी बाजार प्रवृत्ति संकेत प्रदान करता है।
रणनीति का मूल विभिन्न अवधियों के एचएमए क्रॉसओवर का उपयोग करके बाजार की प्रवृत्ति उलट बिंदुओं पर कब्जा करने में निहित है। एचएमए गणना में तीन चरण शामिल हैंः पहले आधे अवधि के डब्ल्यूएमए की गणना करना, फिर पूर्ण अवधि के डब्ल्यूएमए की गणना करना, और अंत में पहले दो डब्ल्यूएमए के एक विशेष संयोजन का उपयोग करके मूल अवधि के वर्गमूल के बराबर अवधि के साथ एक और डब्ल्यूएमए की गणना करना। खरीद संकेत तब उत्पन्न होते हैं जब तेजी से एचएमए (डिफ़ॉल्ट 9 अवधि) धीमी एचएमए (डिफ़ॉल्ट 16 अवधि) के ऊपर पार करता है, और तेजी से एचएमए धीमी एचएमए (डिफ़ॉल्ट 16 अवधि) के नीचे पार करने पर संकेत बेचता है।
यह एचएमए क्रॉसओवर पर आधारित एक मात्रात्मक ट्रेडिंग रणनीति है, जो पारंपरिक चलती औसत की देरी को कम करके अधिक समय पर ट्रेडिंग सिग्नल प्रदान करती है। रणनीति डिजाइन संक्षिप्त, समझने और लागू करने में आसान है, लेकिन व्यावहारिक अनुप्रयोगों में बाजार वातावरण अनुकूलन और जोखिम प्रबंधन पर ध्यान देने की आवश्यकता है। निरंतर अनुकूलन और सुधार के माध्यम से, इस रणनीति में एक मजबूत ट्रेडिंग प्रणाली बनने की क्षमता है।
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-28 00:00:00 period: 2d basePeriod: 2d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Hull Moving Average Crossover", overlay=true) fastLength = input.int(9, "Fast HMA Length", minval=1) slowLength = input.int(16, "Slow HMA Length", minval=1) hma(src, length) => wma1 = ta.wma(src, length / 2) wma2 = ta.wma(src, length) ta.wma(2 * wma1 - wma2, math.floor(math.sqrt(length))) fastHMA = hma(close, fastLength) slowHMA = hma(close, slowLength) plot(fastHMA, color=color.blue, title="Fast HMA") plot(slowHMA, color=color.red, title="Slow HMA") longCondition = ta.crossover(fastHMA, slowHMA) shortCondition = ta.crossunder(fastHMA, slowHMA) if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) plotshape(longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)