दोहरी चलती औसत रणनीति

लेखक:चाओझांग, दिनांकः 2024-01-17 17:45:45
टैगः

img

अवलोकन

यह रणनीति दोहरी चलती औसत का उपयोग करती है, विशेष रूप से 8-अवधि और 21-अवधि वाले। यह लंबे संकेत उत्पन्न करता है जब छोटा एमए लंबे से अधिक पार करता है, और छोटे संकेत जब छोटा एमए लंबे से नीचे पार करता है।

इस रणनीति में कुछ गैर-ट्रेंडिंग अवधि को फ़िल्टर करने के लिए चलती औसत रेखा की ढलान को भी शामिल किया गया है और केवल तभी संकेत उत्पन्न होते हैं जब एक प्रवृत्ति अधिक स्पष्ट होती है।

सिद्धांत

इस रणनीति का मूल अल्पकालिक और दीर्घकालिक चलती औसत के क्रॉसओवर में निहित है। छोटा एमए तेजी से प्रवृत्ति परिवर्तनों को पकड़ सकता है, जबकि लंबे एमए में बेहतर शोर फ़िल्टरिंग प्रभाव होता है। जब छोटा एमए लंबे एमए को पार करता है, तो एक लंबा संकेत देने के लिए एक अपट्रेंड की स्थापना का सुझाव दिया जाता है; जब छोटा एमए लंबे एमए से नीचे पार करता है, तो एक छोटा संकेत देने के लिए एक डाउनट्रेंड की स्थापना का सुझाव दिया जाता है।

रणनीति एक ढलान सीमा भी निर्धारित करती है। केवल जब ढलान सकारात्मक सीमा मूल्य से अधिक हो तो एक लंबा संकेत उत्पन्न होगा। केवल जब ढलान नकारात्मक सीमा मूल्य से कम हो तो एक छोटा संकेत उत्पन्न होगा। इससे उन क्षेत्रों को फ़िल्टर करने में मदद मिलती है जहां कोई स्पष्ट प्रवृत्ति मौजूद नहीं है, जिसके परिणामस्वरूप उच्च गुणवत्ता वाले ट्रेडिंग सिग्नल होते हैं।

विशेष रूप से, ट्रेडिंग सिग्नल उत्पन्न करने का तर्क हैः

  1. 8-अवधि और 21-अवधि के सरल चलती औसत की गणना करें
  2. दो के बीच क्रॉसओवर संकेत का पता लगाने
  3. 21 अवधि के चलती औसत रेखा के ढलान की गणना arctangent फंक्शन atan का उपयोग करके करें
  4. केवल लंबे संकेत उत्पन्न जब ढलान एक पूर्व निर्धारित सकारात्मक सीमा से अधिक है
  5. केवल संक्षिप्त संकेत उत्पन्न जब ढलान एक पूर्व निर्धारित नकारात्मक सीमा से नीचे गिर जाता है

लाभ विश्लेषण

इस रणनीति के लाभों में निम्नलिखित शामिल हैंः

  1. रणनीति का विचार सरल और समझने/कार्यान्वयन में आसान है
  2. ढलान सूचकांक को शामिल करने से गैर-ट्रेंडिंग अवधि को फ़िल्टर करने में मदद मिलती है और संकेत की गुणवत्ता में सुधार होता है
  3. दोहरी चलती औसत का प्रयोग दोनों को अपनी ताकत का उपयोग करने की अनुमति देता है, मजबूती में सुधार करता है
  4. मापदंडों को विभिन्न व्यापारिक साधनों के अनुरूप समायोजित किया जा सकता है
  5. सरल कार्यक्रम कार्यान्वयन आगे अनुकूलन की सुविधा देता है

जोखिम विश्लेषण

इस रणनीति के साथ कुछ जोखिम भी मौजूद हैंः

  1. बाजार में भारी उतार-चढ़ाव के दौरान अधिक झूठे संकेत हो सकते हैं
  2. क्रॉसओवर स्वयं कुछ झूठे संकेतों का उत्पादन करता है
  3. कुछ हद तक विलंब है, तुरंत रुझान उल्टा पकड़ने में असमर्थ

इन जोखिमों के आधार पर अनुकूलन के कुछ तरीकेः

  1. बाजार की विशेषताओं के अनुरूप एमए पैरामीटर को समायोजित करें
  2. मजबूती में सुधार के लिए ढलान की सीमा का अनुकूलन
  3. एकल हानि को नियंत्रित करने के लिए स्टॉप लॉस तंत्र जोड़ें
  4. संकेतों को फ़िल्टर करने के लिए अन्य संकेतक शामिल करें
  5. स्थिरता में सुधार के लिए अनुकूलन पैरामीटर सेटिंग का उपयोग करें

अनुकूलन दिशाएँ

रणनीति को अनुकूलित करने के लिए कुछ दिशाएंः

  1. परिवर्तनशीलता के आधार पर मापदंडों को समायोजित करने के लिए अनुकूलनशील एमए का उपयोग करें
  2. समेकन के दौरान त्रुटियों से बचने के लिए वॉल्यूम विश्लेषण शामिल करें
  3. गुणवत्ता और समयबद्धता बढ़ाने के लिए अस्थिरता सूचकांक जोड़ें
  4. स्वचालित पैरामीटर अनुकूलन के लिए मशीन सीखने जोड़ें
  5. अधिक जटिल गैर-रैखिक पैटर्न का पता लगाने के लिए गहरी शिक्षा का लाभ उठाएं

निष्कर्ष

संक्षेप में, यह दोहरी एमए रणनीति सरल और व्यावहारिक है। दो अवधि मापदंडों के माध्यम से विभिन्न प्रवृत्ति विशेषताओं को कैप्चर करके और उन्हें व्यापार संकेत उत्पन्न करने के लिए जोड़कर। इस बीच, ढलान सीमा को शामिल करने से संकेत की गुणवत्ता में सुधार होता है। यह रणनीति विस्तार के लिए एक बुनियादी के रूप में कार्य कर सकती है, जिसमें पर्याप्त अनुकूलन स्थान और क्षमता है।


/*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)
    


अधिक