
यह रणनीति हल चलती औसत (Hull Moving Average, HMA) के क्रॉसिंग सिग्नल पर आधारित है। यह दो HMA लाइनों, तेज और धीमी गति की गणना करके एक ट्रेडिंग सिग्नल उत्पन्न करता है, जब वे क्रॉसिंग होते हैं। एचएमए एक उन्नत चलती औसत सूचक है, जो एक विशेष संयोजन के माध्यम से विलंबता को कम करने के लिए भारित चलती औसत (WMA) का उपयोग करता है, जो एक अधिक तेज़ और स्लाइडिंग बाजार रुझान संकेत प्रदान करता है।
रणनीति के केंद्र में बाजार के रुझानों को पकड़ने के लिए विभिन्न चक्रों के एचएमए के क्रॉसिंग का उपयोग करना है। एचएमए की गणना की प्रक्रिया में तीन चरण शामिल हैंः पहले आधे चक्र के डब्ल्यूएमए की गणना करें, फिर पूर्ण चक्र के डब्ल्यूएमए की गणना करें, और अंत में इन दो डब्ल्यूएमए के एक विशेष संयोजन के माध्यम से एक चक्र के मूल चक्र के वर्गमूल के रूप में डब्ल्यूएमए की गणना करें। जब तेज एचएमए (डिफ़ॉल्ट 9 चक्र) ऊपर की ओर धीमी एचएमए (डिफ़ॉल्ट 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)