ट्रेडिंगवीएमए रणनीति एक मात्रात्मक ट्रेडिंग रणनीति है जो चर चलती औसत रेखाओं पर आधारित है। यह बाजार के रुझानों को पकड़ने और तदनुसार ट्रेडिंग संकेत उत्पन्न करने के लिए बदलते चलती औसत का उपयोग करती है।
ट्रेडिंगवीएमए रणनीति का मूल चर लंबाई चलती औसत (परिवर्तनीय चलती औसत, वीएमए) की गणना है। चलती औसत एक व्यापक रूप से ज्ञात तकनीकी संकेतक है जो एक निश्चित अवधि में औसत मूल्य की गणना करता है। ट्रेडिंगवीएमए रणनीति में उपयोग किए जाने वाले वीएमए में विभिन्न अवधि की लंबाई होती है।
विशेष रूप से, रणनीति पहले मध्यवर्ती मात्राओं की एक श्रृंखला की गणना करती है, जैसे कि मूल्य दिशात्मक आंदोलन संकेतक (पीडीएम, एमडीआईएम), चिकनी डेटा (पीडीएम, एमडीएम) । इन डेटा का उपयोग अंततः संकेतक शक्ति (आईएस) प्राप्त करने के लिए किया जाता है। यह संकेतक मूल्य उतार-चढ़ाव की तीव्रता को दर्शाता है।
ट्रेडिंगवीएमए रणनीति गतिशील रूप से संकेतक की ताकत के आधार पर चलती औसत अवधि को समायोजित करती है। जब बाजार की अस्थिरता बढ़ जाती है, तो चलती औसत अवधि कम हो जाती है, और इसके विपरीत। यह बाजार में परिवर्तन के लिए तेजी से प्रतिक्रिया करने की अनुमति देता है।
अंत में, रणनीति ट्रेडिंग सिग्नल उत्पन्न करने के लिए वर्तमान मूल्य की तुलना वीएमए के साथ करती है। जब मूल्य वीएमए से ऊपर होता है तो यह लंबा होता है और जब मूल्य वीएमए से नीचे होता है तो यह छोटा होता है।
ट्रेडिंगवीएमए रणनीति के निम्नलिखित मुख्य फायदे हैंः
परिवर्तनीय अवधि शोर को अधिक स्थिर फ़िल्टर करती है
मूल्य परिवर्तनों पर तेजी से प्रतिक्रिया प्रतिक्रिया में सुधार करती है
ट्रेडिंग आवृत्ति को कम करता है कम ओवरट्रेडिंग - निश्चित अवधि के संकेतकों की तुलना में, ट्रेडिंगवीएमए अनावश्यक ट्रेडों को कम कर सकता है।
अनुकूलन योग्य मापदंड लचीलापन - रणनीति उपयोगकर्ताओं को विभिन्न बाजार वातावरणों के अनुरूप अपनी प्राथमिकताओं के आधार पर मापदंडों का चयन करने की अनुमति देती है।
ट्रेडिंगवीएमए रणनीति में निम्नलिखित प्राथमिक जोखिम भी हैं:
पिछड़ता हुआ पूर्वाग्रह
गलत सिग्नल
कठिन पैरामीटर अनुकूलन
इन जोखिमों को स्टॉप लॉस, समायोजन पैरामीटर संयोजन आदि जैसे तरीकों से नियंत्रित किया जा सकता है।
ट्रेडिंगवीएमए रणनीति को निम्नलिखित पहलुओं में भी बढ़ाया जा सकता हैः
अन्य संकेतकों को मिलाएं
पैरामीटर अनुकूलन
अनुकूली व्यापार नियम
प्रणालीकरण
ट्रेडिंगवीएमए एक अनुकूलनात्मक मात्रात्मक रणनीति है। यह एक विशेष रूप से डिज़ाइन किए गए वीएमए संकेतक का उपयोग करके बाजार के रुझानों को पकड़ती है, प्रतिक्रियाशील होने और शोर को फ़िल्टर करने के किनारे के साथ। बेहतर प्रदर्शन के लिए रणनीति को कई तरीकों से अपग्रेड किया जा सकता है। लेकिन कुछ अंतर्निहित मुद्दे जैसे कि पिछड़ने वाले पूर्वाग्रह बनी रह सकते हैं। कुल मिलाकर, ट्रेडिंगवीएमए एक आशाजनक प्रवृत्ति-अनुसरण रणनीति है।
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-24 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © laptevmaxim92 //@version=4 strategy("Variable Moving Average Strategy", overlay=true) src=close l =input(5, title="VMA Length") std=input(true, title="Show Trend Direction Colors") utp = input(false, "Use take profit?") pr = input(100, "Take profit pips") usl = input(false, "Use stop loss?") sl = input(100, "Stop loss pips") fromday = input(01, defval=01, minval=01, maxval=31, title="From Day") frommonth = input(01, defval=01, minval= 01, maxval=12, title="From Month") fromyear = input(2000, minval=1900, maxval=2100, title="From Year") today = input(31, defval=01, minval=01, maxval=31, title="To Day") tomonth = input(12, defval=12, minval=01, maxval=12, title="To Month") toyear = input(2019, minval=1900, maxval=2100, title="To Year") use_date = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)) k = 1.0/l pdm = 0.0 pdm := max((src - src[1]), 0) mdm = 0.0 mdm := max((src[1] - src), 0) pdmS = 0.0 pdmS := ((1 - k)*nz(pdmS[1]) + k*pdm) mdmS = 0.0 mdmS := ((1 - k)*nz(mdmS[1]) + k*mdm) s = pdmS + mdmS pdi = pdmS/s mdi = mdmS/s pdiS = 0.0 pdiS := ((1 - k)*nz(pdiS[1]) + k*pdi) mdiS = 0.0 mdiS := ((1 - k)*nz(mdiS[1]) + k*mdi) d = abs(pdiS - mdiS) s1 = pdiS + mdiS iS = 0.0 iS := ((1 - k)*nz(iS[1]) + k*d/s1) hhv = highest(iS, l) llv = lowest(iS, l) d1 = hhv - llv vI = (iS - llv)/d1 vma = 0.0 vma := (1 - k*vI)*nz(vma[1]) + k*vI*src vmaC=(vma > vma[1]) ? color.lime : (vma<vma[1]) ? color.red : (vma==vma[1]) ? color.yellow : na plot(vma, color=std?vmaC:color.white, linewidth=3, title="VMA") longCondition = vma > vma[1] if (longCondition) strategy.entry("BUY", strategy.long and use_date) shortCondition = vma < vma[1] if (shortCondition) strategy.entry("SELL", strategy.short and use_date) if (utp and not usl) strategy.exit("TP", "BUY", profit = pr) strategy.exit("TP", "SELL", profit = pr) if (usl and not utp) strategy.exit("SL", "BUY", loss = sl) strategy.exit("SL", "SELL", loss = sl) if (usl and utp) strategy.exit("TP/SL", "BUY", loss = sl, profit = pr) strategy.exit("TP/SL", "SELL", loss = sl, profit = pr)