इस रणनीति में दो अलग-अलग चक्रों की लोचदार भारित चलती औसत (ईवीडब्ल्यूएमए) का उपयोग किया जाता है, जो क्रॉस-ऑपरेशन के लिए खरीदारी और बिक्री के संकेतों को उत्पन्न करता है। यह एक खरीद संकेत देता है जब यह एक लंबी अवधि की रेखा को एक छोटी अवधि की रेखा से पार करता है; यह एक बिक्री संकेत देता है जब यह एक लंबी अवधि की रेखा को एक छोटी अवधि की रेखा से पार करता है।
यह रणनीति प्रवृत्ति में परिवर्तन को अलग-अलग चक्रों की ईवीडब्लूएमए लाइनों की गणना करके और उन्हें क्रॉस-ऑपरेट करने के लिए निर्धारित करती है।
विशेष रूप से, यह पहले दो ईवीडब्ल्यूएमए लाइनों की गणना करता हैः
लघु चक्र रेखा m1, चक्र लंबाई 1, डिफ़ॉल्ट 5 है
लम्बाई चक्र रेखा m2, चक्र लंबाई 2, डिफ़ॉल्ट 40
फिर, यह m1 और m2 के क्रॉसिंग को क्रॉसओवर और क्रॉसंडर फ़ंक्शन के माध्यम से न्याय करता हैः
यदि m1 पर m2 डाल दिया जाता है, तो एक खरीद संकेत उत्पन्न होता है और long ऑपरेशन किया जाता है
यदि m1 नीचे m2 के माध्यम से जाता है, तो एक बेचने का संकेत उत्पन्न होता है, शॉर्ट ऑपरेशन निष्पादित करता है
यहाँ ध्यान देने योग्य बात यह है कि ईवीडब्लूएमए सामान्य चलती औसत से अलग है, यह हाल के आंकड़ों को अधिक वजन देता है ताकि कीमतों में बदलाव के लिए तेजी से प्रतिक्रिया दी जा सके। गणना सूत्र इस प्रकार हैः
data = (nz(data[1]) * (nb_floating_shares - volume)/nb_floating_shares) + (volume_price/nb_floating_shares)
जिसमें nz(data[1]) पिछले चक्र के EVWMA को दर्शाता है, nb_floating_shares उस चक्र में कुल लेनदेन को दर्शाता है, volume वर्तमान चक्र लेनदेन को दर्शाता है, और volume_price वर्तमान चक्र लेनदेन को दर्शाता है। इस प्रकार, हाल के आंकड़ों को अधिक वजन देने का प्रभाव प्राप्त होता है।
इस रणनीति के निम्नलिखित फायदे हैं:
ईवीडब्लूएमए का उपयोग मूल्य परिवर्तनों के लिए तेजी से प्रतिक्रिया करने और मुनाफे की संभावनाओं को बढ़ाने के लिए किया जाता है
दोहरी ईवीडब्लूएमए लाइन क्रॉसिंग का उपयोग करके प्रवृत्ति में बदलाव के बिंदुओं का पता लगाया जा सकता है और समय पर प्रवेश किया जा सकता है
सरल और लागू करने में आसान
विभिन्न बाजार स्थितियों के लिए अनुकूलित चक्र लंबाई
जटिल पैरामीटर अनुकूलन की आवश्यकता नहीं है, आसानी से ठोस
इस रणनीति के कुछ जोखिम भी हैं:
दो-लाइन क्रॉसिंग बाजार के शोर को फ़िल्टर नहीं कर सकता है और बहुत सारे अक्षम संकेत उत्पन्न कर सकता है
यह भी कहा जा सकता है कि यह एक बहुत ही महत्वपूर्ण समय है, लेकिन यह निश्चित नहीं है कि यह किस बिंदु पर होगा।
जोखिम को प्रभावी ढंग से नियंत्रित करने में असमर्थ
पैरामीटर अनुकूलन की कमी, अनुचित रैखिक चक्र सेटिंग प्रभाव को कम कर सकती है
इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
स्टॉपलॉस और स्टॉपबॉक्स की रणनीति में वृद्धि, जोखिम पर सख्त नियंत्रण
अनुकूलित लाइन की अवधि, सबसे अच्छा पैरामीटर चुनें
निष्क्रिय लेनदेन को कम करने के लिए फ़िल्टर सिग्नल जोड़ें
अन्य मापदंडों के साथ मिलकर, रुझानों को उलटना और छूटने वाले अवसरों को कम करना
गतिशील अनुकूलन पैरामीटर, बाजार में परिवर्तन के अनुसार लाइन को समायोजित करने के लिए चक्र लंबाई
बहु-हेड बाजार और खाली-हेड बाजार को अलग-अलग मापदंडों के साथ अलग करें
मशीन लर्निंग एल्गोरिदम के साथ जुड़ें और बिग डेटा ट्रेनिंग का उपयोग करें
Overall, this elastic weighted moving average cross strategy ट्रेडिंग सिग्नल उत्पन्न करने के लिए ट्रेंड परिवर्तनों को प्रभावी ढंग से पता लगाने के लिए दो ईवीडब्ल्यूएमए लाइन क्रॉस ऑपरेशन की गणना और अनुमति देता है। यह रणनीति सरल और आसान है, लेकिन कुछ जोखिम और अनुकूलन दिशाएं हैं। रोकथाम तंत्र, पैरामीटर चयन और अन्य संकेतकों के संयोजन को अनुकूलित करके, इस रणनीति को मजबूत किया जा सकता है ताकि यह वास्तविक व्यापार के लिए अधिक उपयुक्त हो। कुल मिलाकर, यह रणनीति आगे की जांच और आवेदन के लायक है।
/*backtest
start: 2023-08-18 00:00:00
end: 2023-08-26 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Elastic Volume Weighted Moving Average Cross Strategy", shorttitle="EVWMA Cross", overlay=true)
length1=input(5, title="EVWMA Short")
length2=input(40, title="EVWMA Long")
nbfs1=sum(volume, length1)
nbfs2=sum(volume, length2)
medianSrc=close
calc_evwma(price, length, nb_floating_shares) =>
data = (nz(data[1]) * (nb_floating_shares - volume)/nb_floating_shares) + (volume*price/nb_floating_shares)
data
m1=calc_evwma(medianSrc, length1, nbfs1)
m2=calc_evwma(medianSrc, length2, nbfs2)
if (crossover(m1, m2))
strategy.entry("MA2CrossLE", strategy.long, comment="MA2CrossLE")
if (crossunder(m1, m2))
strategy.entry("MA2CrossSE", strategy.short, comment="MA2CrossSE")
p1=plot(m1,color=orange,linewidth=2, title="evwma")
p2=plot(m2,color=orange,linewidth=2, title="evwma")