
इस रणनीति में दोहरी चलती औसत का उपयोग किया जाता है, 8 चक्र और 21 चक्र की चलती औसत। जब एक छोटी चलती औसत पर एक लंबी चलती औसत पहना जाता है, तो अधिक करें; जब एक छोटी चलती औसत के नीचे एक लंबी चलती औसत पहना जाता है, तो शून्य करें।
इस रणनीति में एक चलती औसत के एक झुकाव सूचक को भी शामिल किया गया है, जो ट्रेड सिग्नल उत्पन्न करने के लिए ट्रेंड रहित अंतराल को फ़िल्टर करता है, केवल जब ट्रेंड स्पष्ट होता है।
इस रणनीति का मूल अल्पकालिक चलती औसत और दीर्घकालिक चलती औसत के क्रॉसिंग पर है। अल्पकालिक चलती औसत मूल्य परिवर्तन के रुझान को अधिक तेज़ी से पकड़ता है, जबकि दीर्घकालिक चलती औसत शोर पर बेहतर फ़िल्टरिंग प्रभाव डालता है। जब अल्पकालिक रेखा पर लंबी रेखा को पार करते समय एक बहुस्तरीय प्रवृत्ति का निर्माण होता है, तो अधिक लाभ होता है; जब अल्पकालिक रेखा के नीचे लंबी रेखा को पार करते समय एक खाली प्रवृत्ति का निर्माण होता है, तो खाली लाभ होता है।
इस रणनीति में एक स्केलेबिलिटी थ्रेशोल्ड भी है। मल्टी सिग्नल केवल तभी उत्पन्न होता है जब स्केलेबिलिटी पॉजिटिव थ्रेशोल्ड से अधिक हो, और शून्य सिग्नल केवल तभी उत्पन्न होता है जब स्केलेबिलिटी नकारात्मक थ्रेशोल्ड से कम हो। यह कुछ स्पष्ट रुझान वाले क्षेत्रों को फ़िल्टर कर सकता है, जिससे ट्रेडिंग सिग्नल की गुणवत्ता अधिक हो।
विशेष रूप से, रणनीति के लिए ट्रेडिंग सिग्नल उत्पन्न करने का तर्क हैः
इस रणनीति के निम्नलिखित फायदे हैं:
इस रणनीति के कुछ जोखिम भी हैं:
इन जोखिमों के लिए, निम्नलिखित पहलुओं से अनुकूलन किया जा सकता हैः
इस रणनीति को निम्नलिखित दिशाओं में भी अनुकूलित किया जा सकता हैः
यह द्विआधारी चलती औसत रणनीति सामान्य रूप से सरल और व्यावहारिक है, जो दो चक्रों के पैरामीटर के माध्यम से अलग-अलग प्रवृत्ति विशेषताओं को पकड़ती है और एक साथ व्यापार संकेतों को उत्पन्न करती है। साथ ही, स्केलिंग थ्रेशोल्ड को शुरू करने से संकेत की गुणवत्ता में सुधार होता है। यह रणनीति एक बुनियादी रणनीति के रूप में काम कर सकती है और इसे बढ़ाया जा सकता है, और इसमें बहुत अधिक अनुकूलन और विस्तार करने की क्षमता है।
/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//written by sixpathssenin
//@version=4
strategy(title="Dual Moving Average",initial_capital=10000,overlay=true)
ma1= sma(close,8)
ma2= sma(close,21)
angleCriteria = input(title="Angle", type=input.integer, defval=7, minval=1, maxval=13)
i_lookback = input(2, "Angle Period", input.integer, minval = 1)
i_atrPeriod = input(10, "ATR Period", input.integer, minval = 1)
i_angleLevel = input(6, "Angle Level", input.integer, minval = 1)
i_maSource = input(close, "MA Source", input.source)
f_angle(_src, _lookback, _atrPeriod) =>
rad2degree = 180 / 3.141592653589793238462643 //pi
ang = rad2degree * atan((_src[0] - _src[_lookback]) / atr(_atrPeriod)/_lookback)
ang
_angle = f_angle(ma2, i_lookback, i_atrPeriod)
plot(ma1,color=#FF0000)
plot(ma2,color=#00FF00)
crosso=crossover(ma1,ma2)
crossu=crossunder(ma1,ma2)
_lookback = 15
f_somethingHappened(_cond, _lookback) =>
bool _crossed = false
for i = 1 to _lookback
if _cond[i]
_crossed := true
_crossed
longcrossed = f_somethingHappened(crosso,_lookback)
shortcrossed = f_somethingHappened(crossu,_lookback)
long = longcrossed and _angle > angleCriteria
short= shortcrossed and _angle < -(angleCriteria)
if(long)
strategy.entry("Long",strategy.long)
if(short)
strategy.entry("short",strategy.short)