डबल मूविंग एवरेज ट्रेडिंग रणनीति एक आम मात्रात्मक ट्रेडिंग रणनीति है। यह रणनीति उनके क्रॉसओवर के आधार पर ट्रेडिंग सिग्नल उत्पन्न करने के लिए अलग-अलग समय अवधि वाले दो मूविंग एवरेज का उपयोग करती है। विशेष रूप से, जब अल्पकालिक मूविंग एवरेज दीर्घकालिक मूविंग एवरेज से ऊपर जाता है, तो इसे खरीद संकेत माना जाता है; जब अल्पकालिक मूविंग एवरेज दीर्घकालिक मूविंग एवरेज से नीचे जाता है, तो इसे बिक्री संकेत माना जाता है।
इस रणनीति का मूल सिद्धांत यह हैः अल्पकालिक चलती औसत परिसंपत्ति मूल्य की अल्पकालिक प्रवृत्ति को दर्शाता है, और दीर्घकालिक चलती औसत परिसंपत्ति मूल्य की दीर्घकालिक प्रवृत्ति को दर्शाता है। जब अल्पकालिक रेखा लंबी अवधि की रेखा से ऊपर जाती है, तो यह इंगित करता है कि अल्पकालिक प्रवृत्ति बढ़ रही है, इस समय आप खरीद सकते हैं। जब अल्पकालिक रेखा लंबी अवधि की रेखा से नीचे जाती है, तो यह इंगित करती है कि अल्पकालिक प्रवृत्ति गिर रही है, इस समय आप बेच सकते हैं। प्रवृत्ति का पालन करें, मूल्य प्रवृत्ति के मोड़ को पकड़ें।
विशेष रूप से, रणनीति दो चलती औसत को परिभाषित करती हैः अल्पकालिक मूल्य रुझानों को पकड़ने के लिए 5-दिवसीय अल्पकालिक चलती औसत; और दीर्घकालिक मूल्य रुझानों का न्याय करने के लिए 15-दिवसीय दीर्घकालिक चलती औसत। जब 5-दिवसीय रेखा 15-दिवसीय रेखा से ऊपर चलती है, तो यह इंगित करती है कि अल्पकालिक मूल्य बढ़ना शुरू हो गया है, जो कि एक खरीद संकेत है; जब 5-दिवसीय रेखा 15-दिवसीय रेखा से नीचे जाती है, तो यह इंगित करती है कि अल्पकालिक मूल्य गिरना शुरू हो गया है, यह एक बिक्री संकेत है।
अन्य रणनीतियों की तुलना में, दोहरी चलती औसत रणनीति के निम्नलिखित फायदे हैंः
दोहरी चलती औसत रणनीति में भी कुछ जोखिम हैं, जिनमें मुख्यतः शामिल हैंः
समाधान:
इस रणनीति को निम्नलिखित दिशाओं में अनुकूलित किया जा सकता हैः
गलत संकेतों को फ़िल्टर करने के लिए एमएसीडी, केडीजे जैसे अन्य संकेतकों के साथ संयोजन करें।
अनुकूलनशील चलती औसत का परिचय, स्थिरता में सुधार के लिए बाजार की अस्थिरता के आधार पर पैरामीटर को गतिशील रूप से समायोजित करें।
सबसे अच्छा संयोजन खोजने और रणनीति प्रदर्शन में सुधार करने के लिए चलती औसत मापदंडों का अनुकूलन करें।
घाटे को सीमित करने और जोखिम नियंत्रण को बढ़ाने के लिए स्टॉप लॉस तंत्र जोड़ें।
स्थिरता में सुधार के लिए दैनिक और साप्ताहिक लाइनों से संकेतों का उपयोग करते हुए कई समय सीमाओं का संयोजन।
मार्कोव राज्य स्विच, अनुकूलन क्षमता में सुधार के लिए विभिन्न बाजार स्थितियों के तहत विभिन्न मापदंडों का उपयोग करें।
सामान्य तौर पर, दोहरी चलती औसत ट्रेडिंग रणनीति काफी प्रभावी और स्थिर है। ट्रेडिंग सिद्धांत को समझना और लागू करना सरल है, पैरामीटर बाजार के रुझानों के अनुकूल होने के लिए लचीले हैं। इस बीच कुछ सीमाएं हैं जैसे झूठे संकेत उत्पन्न करना और कठोर बाजार उतार-चढ़ाव को संभालने में कठिनाई। इन्हें अन्य उपकरणों और पैरामीटर अनुकूलन की शुरुआत के माध्यम से संबोधित किया जा सकता है। कुल मिलाकर, यह एक व्यावहारिक रणनीति है जो मात्रात्मक ट्रेडिंग शुरुआती लोगों के लिए सीखने और अभ्यास के लिए उपयुक्त है।
//@version=3 strategy("CS: 2 Moving Averages Script - Strategy (Testing)", overlay=true) // === GENERAL INPUTS === // short ma ma1Source = input(defval = close, title = "MA 1 Source") ma1Length = input(defval = 5, title = "MA 1 Period", minval = 1) // long ma ma2Source = input(defval = close, title = "MA 2 Source") ma2Length = input(defval = 15, title = "MA 2 Period", minval = 1) // === SERIES SETUP === /// a couple of ma's.. ma1 = ema(ma1Source, ma1Length) ma2 = ema(ma2Source, ma2Length) // === PLOTTING === fast = plot(ma1, title = "MA 1", color = red, linewidth = 2, style = line, transp = 30) slow = plot(ma2, title = "MA 2", color = green, linewidth = 2, style = line, transp = 30) // === LOGIC === enterLong = crossover(ma1, ma2) exitLong = crossover(ma2, ma1) // === INPUT BACKTEST RANGE === FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2018, title = "From Year", minval = 2012) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2012) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => true // create function "within window of time" // Entry // strategy.entry(id="Long Entry", long=true, when=enterLong and window()) strategy.entry(id="Short Entry", long=false, when=exitLong and window())