
यह रणनीति गतिशील रूप से विभिन्न प्रकार के चलती औसत का चयन करके और कई समय चक्रों के साथ संयोजन करके ट्रेडिंग सिग्नल उत्पन्न करती है।
यह रणनीति SMA, EMA, TEMA, WMA और HMA के पांच चलती औसत संकेतकों को चुनने की अनुमति देती है और औसत रेखा की अवधि निर्धारित करती है। रणनीति गतिशीलता के आधार पर विभिन्न प्रकार के औसत रेखाओं को चित्रित करती है। जब समापन मूल्य बढ़ता है तो औसत रेखा को तोड़ने के लिए, अधिक करें; जब समापन मूल्य गिरता है तो औसत रेखा को तोड़ने के लिए, शून्य करें।
विशेष रूप से, रणनीति पहले इनपुट मापदंडों के आधार पर रिटारगेटिंग चक्र को परिभाषित करती है। इसके बाद पांच औसत संकेतक की गणना की जाती हैः
चयन के अनुसार, एक उपयुक्त औसत रेखा खींचें। जब समापन मूल्य औसत से अधिक हो, तो अधिक करें; जब समापन मूल्य औसत से कम हो, तो शून्य करें।
यह रणनीति विभिन्न प्रकार की औसत रेखाओं के संयोजन का उपयोग करके मूल्य डेटा को चिकना कर सकती है, बाजार के शोर को फ़िल्टर कर सकती है, और अधिक विश्वसनीय व्यापारिक संकेत उत्पन्न कर सकती है। जबकि औसत रेखा चक्र की लंबाई को अनुकूलित करने की अनुमति देता है, विभिन्न चक्रों की प्रवृत्ति के लिए व्यापार किया जा सकता है।
जोखिमों को कम करने के लिए, निम्नलिखित में से कुछ को अनुकूलित करेंः
इस रणनीति को निम्नलिखित दिशाओं में अनुकूलित किया जा सकता हैः
उदाहरण के लिए, एक मात्रा क्षमता संकेतक जोड़ा जा सकता है, जो केवल लेनदेन की मात्रा में वृद्धि के मामले में एक व्यापारिक संकेत उत्पन्न करता है, कुछ झूठी सफलताओं को फ़िल्टर करता है।
एक चैनल सेट किया जा सकता है, केवल तभी प्रवेश किया जा सकता है जब कीमत एक चैनल को तोड़ती है; एक स्टॉप लॉस लाइन सेट करें, और स्टॉप लॉस लाइन को छूने के बाद कीमत को समतल करें। यह अनावश्यक नुकसान को कम कर सकता है।
बाजार की स्थिति की गतिशीलता के आधार पर औसत रेखा चक्र को समायोजित किया जा सकता है, प्रवृत्ति अधिक स्पष्ट होने पर लंबी अवधि की औसत रेखा का उपयोग करें, और संचय के लिए छोटी अवधि की औसत रेखा का उपयोग करें।
निकासी की स्थिति के अनुसार स्थिति का आकार समायोजित किया जा सकता है, निकासी के समय स्थिति को कम किया जा सकता है, जब लाभदायक हो तो स्थिति को मामूली रूप से बढ़ाया जा सकता है।
इस रणनीति के संयोजन के माध्यम से कई औसत दर्जे के संकेतक का उपयोग करें, कई समय चक्र के साथ संयुक्त, एक स्थिर प्रवृत्ति ट्रैकिंग प्रभाव बनाने. रणनीति अनुकूलन के लिए जगह बड़ा है, प्रवेश फ़िल्टर, बाहर निकलने के तरीके, पैरामीटर अनुकूलन आदि के पहलुओं में सुधार किया जा सकता है, ताकि रणनीति में बेहतर प्रभाव प्राप्त हो।
/*backtest
start: 2022-10-20 00:00:00
end: 2023-10-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("MA_strategy ", shorttitle="MA_strategy", overlay=true, initial_capital=100000)
qty = input(100000000, "Buy quantity")
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testStartMin = input(0, "Backtest Start Minute")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,testStartHour,testStartMin)
testStopYear = input(2099, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)
testPeriod() =>
time >= testPeriodStart and time <= testPeriodStop ? true : false
ma1 = input( "SMA",title="Select MA", options=["SMA", "EMA","TEMA", "WMA","HMA"])
len1 = input(7, minval=1, title="Period")
s=sma(close,len1)
e=ema(close,len1)
xEMA1 = ema(close, len1)
xEMA2 = ema(xEMA1, len1)
xEMA3 = ema(xEMA2, len1)
t = 3 * xEMA1 - 3 * xEMA2 + xEMA3
f_hma(_src, _length)=>
_return = wma((2 * wma(_src, _length / 2)) - wma(_src, _length), round(sqrt(_length)))
h = f_hma(close, len1)
w = wma(close, len1)
ma = ma1 == "SMA"?s:ma1=="EMA"?e:ma1=="WMA"?w:ma1=="HMA"?h:ma1=="TEMA"?t:na
buy= close>ma
sell= close<ma
alertcondition(buy, title='buy', message='buy')
alertcondition(sell, title='sell', message='sell')
ordersize=floor(strategy.equity/close)
if testPeriod()
strategy.entry("long",strategy.long,ordersize,when=buy)
strategy.close("long", when = sell )