
ट्रेडिंग वीएमए रणनीति एक परिवर्तनीय चलती औसत पर आधारित एक मात्रात्मक ट्रेडिंग रणनीति है। यह रणनीति बाजार के रुझानों को पकड़ने के लिए परिवर्तित चलती औसत का उपयोग करती है और तदनुसार व्यापार संकेत उत्पन्न करती है।
ट्रेडिंग वीएमए रणनीति का मूल परिवर्तनशील चलती औसत (वीएमए) की गणना है। एक चलती औसत एक प्रसिद्ध तकनीकी संकेतक है जो एक निश्चित अवधि के दौरान औसत कीमतों की गणना करता है। ट्रेडिंग वीएमए रणनीति में उपयोग की जाने वाली वीएमए में परिवर्तनशील अवधि होती है।
विशेष रूप से, रणनीति पहले मध्यवर्ती की एक श्रृंखला की गणना करती है, जैसे कि मूल्य दिशा आंदोलन संकेतक ((पीडीएम, एमडीआईएम)) और सुचारू रूप से संसाधित डेटा ((पीडीएम, एमडीएम) । इन आंकड़ों का उपयोग अंततः संकेतक की ताकत (आईएस) प्राप्त करने के लिए किया जाता है। यह संकेतक मूल्य में उतार-चढ़ाव की ताकत को दर्शाता है।
फिर, ट्रेडिंग वीएमए रणनीति गतिशील रूप से संकेतक की ताकत के आधार पर चलती औसत की लंबाई को समायोजित करती है। जब बाजार में उतार-चढ़ाव बढ़ता है, तो चलती औसत की अवधि कम हो जाती है, और इसके विपरीत, अवधि लंबी हो जाती है। इससे बाजार में बदलाव के लिए अधिक तेजी से प्रतिक्रिया दी जा सकती है।
अंत में, रणनीति वर्तमान मूल्य और वीएमए के आकार की तुलना करती है, जिससे व्यापारिक संकेत उत्पन्न होता है। वीएमए से अधिक कीमत पर अधिक करें, वीएमए से कम कीमत पर खाली करें।
ट्रेडिंग वीएमए रणनीतियों के निम्नलिखित प्रमुख लाभ हैंः
परिवर्तनीय चक्र Filters Noise अधिक स्थिर - परिवर्तनीय चलती औसत चक्र बाजार में बदलाव के साथ समायोजित किया जाता है, जिससे अधिक स्थिर प्रवृत्ति संकेत प्राप्त करने के लिए शोर को फ़िल्टर किया जा सकता है।
मूल्य परिवर्तनों के लिए त्वरित प्रतिक्रिया Improves Responsiveness - परिवर्तनीय चलती औसत मूल्य परिवर्तनों के लिए त्वरित प्रतिक्रिया प्रदान करता है और नए रुझानों के टर्निंग पॉइंट को पकड़ता है।
व्यापार की आवृत्ति को कम करें ओवरट्रेडिंग - ट्रेडिंग वीएमए को अनावश्यक व्यापार की संख्या को कम करने के लिए एक निश्चित चक्र सूचक की तुलना में उपयोग किया जाता है।
अनुकूलन योग्य पैरामीटर लचीले पैरामीटर - यह नीति उपयोगकर्ताओं को अपनी पसंद के अनुसार पैरामीटर चुनने की अनुमति देती है, जो विभिन्न बाजार स्थितियों के अनुकूल होती है।
ट्रेडिंग वीएमए रणनीतियों में निम्नलिखित प्रमुख जोखिम भी शामिल हैंः
Miss Rapid Reversals - जब रुझान तेजी से उलट जाता है, तो लगातार समायोजित चलती औसत प्रतिक्रिया में देरी कर सकता है।
अनुवर्ती विचलन से प्रभावित Lagging Bias - सभी चलती औसत रणनीतियों में या तो अधिक या शून्य अनुवर्ती विचलन की कुछ डिग्री होती है।
गलत सिग्नल - ट्रेडिंग वीएमए में गलत सिग्नल हो सकते हैं।
पैरामीटर ऑप्टिमाइज़ेशन कठिनाई - सबसे अच्छा पैरामीटर संयोजन ढूंढना मुश्किल हो सकता है।
इन जोखिमों को रोकना, पैरामीटर के संयोजन को समायोजित करना आदि के माध्यम से नियंत्रित किया जा सकता है।
ट्रेडिंग वीएमए रणनीतियों को निम्नलिखित दिशाओं में भी अनुकूलित किया जा सकता हैः
अन्य संकेतकों के साथ संयोजन - अन्य संकेतकों के साथ संयोजन का उपयोग करें जैसे कि प्रवृत्ति, प्रवृत्ति प्रतिगमन, संकेत की गुणवत्ता में सुधार कर सकते हैं।
पैरामीटर ऑप्टिमाइज़ेशन - इतिहास और पैरामीटर ऑप्टिमाइज़ेशन के माध्यम से सबसे अच्छा पैरामीटर संयोजन ढूंढें।
अनुकूली ट्रेडिंग नियम - विभिन्न बाजार स्थितियों के आधार पर अलग-अलग स्थिति खोलने के नियम, स्टॉप-लॉस नियम, आदि।
एल्गोरिथम ट्रेडिंग सिस्टमाइजेशन - रणनीति को एल्गोरिथम और सिस्टमाइजेशन करें ताकि रिट्रेसिंग और ऑप्टिमाइजेशन की सुविधा हो।
ट्रेडिंग वीएमए एक स्व-अनुकूलित मात्रात्मक रणनीति है। यह विशेष रूप से डिजाइन किए गए वीएमए संकेतकों का उपयोग करके बाजार की प्रवृत्ति को पकड़ने के लिए करता है, जिसमें तेजी से प्रतिक्रिया करने, शोर को फ़िल्टर करने के फायदे हैं। यह रणनीति कई तरीकों से अनुकूलित की जा सकती है ताकि बेहतर प्रदर्शन प्राप्त किया जा सके। लेकिन यह विचलन जैसे मुद्दों की उपस्थिति से पूरी तरह से बच नहीं सकता है। कुल मिलाकर, ट्रेडिंग वीएमए एक बहुत ही आशाजनक प्रवृत्ति का पालन करने वाली रणनीति है।
/*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)