यह रणनीति चलती औसत रेखाओं पर आधारित एक गति रणनीति है। यह विभिन्न अवधियों के सरल चलती औसत की गणना करके और उनके क्रॉसओवर स्थितियों की तुलना करके ट्रेडिंग सिग्नल उत्पन्न करता है। विशेष रूप से, जब अल्पकालिक चलती औसत रेखा लंबी अवधि की चलती औसत रेखा से ऊपर जाती है, तो एक खरीद संकेत उत्पन्न होता है; जब अल्पकालिक चलती औसत रेखा लंबी अवधि की चलती औसत रेखा से नीचे जाती है, तो एक बिक्री संकेत उत्पन्न होता है।
इस रणनीति का मूल तर्क गति प्रभाव पर आधारित है, जो स्टॉक मूल्य रुझानों की निरंतरता है। मूविंग एवरेज लाइनें प्रभावी रूप से स्टॉक की कीमतों के परिवर्तन की प्रवृत्ति को दर्शाती हैं। जब अल्पकालिक मूविंग एवरेज लाइन लंबी अवधि की मूविंग एवरेज लाइन से ऊपर जाती है, तो इसका मतलब है कि स्टॉक की कीमत ऊपर की ओर बढ़ने लगती है; इसके विपरीत, जब अल्पकालिक मूविंग एवरेज लाइन लंबी अवधि की मूविंग एवरेज लाइन से नीचे जाती है, तो इसका मतलब है कि स्टॉक की कीमत नीचे की ओर बढ़ने लगती है। यह रणनीति इस सिद्धांत के आधार पर ट्रेडिंग सिग्नल उत्पन्न करती है।
विशेष रूप से, एक 13-दिवसीय सरल चलती औसत और एक 34-दिवसीय सरल चलती औसत को रणनीति में परिभाषित किया गया है। दैनिक समापन मूल्य के आधार पर इन दो चलती औसत की गणना करने के बाद, उनके परिमाण संबंध की तुलना की जाती है। यदि 13-दिवसीय रेखा 34-दिवसीय रेखा से ऊपर जाती है, तो एक खरीद संकेत उत्पन्न होता है, जो इंगित करता है कि स्टॉक की कीमत एक ऊपर की प्रवृत्ति में प्रवेश करती है और एक लंबी स्थिति स्थापित की जानी चाहिए; यदि 13-दिवसीय रेखा 34-दिवसीय रेखा से नीचे पार करती है, तो एक बिक्री संकेत उत्पन्न होता है, जो इंगित करता है कि स्टॉक की कीमत एक नीचे की प्रवृत्ति में प्रवेश करती है और स्थिति को बंद किया जाना चाहिए।
इस रणनीति का सबसे बड़ा लाभ यह है कि यह सरल और समझने और लागू करने में आसान है। चलती औसत रेखा सबसे बुनियादी और आमतौर पर उपयोग किए जाने वाले तकनीकी संकेतकों में से एक है। इसका सिद्धांत सरल और समझने और लागू करने में आसान है। साथ ही, चलती औसत रेखा क्रॉसओवर संकेत भी दीर्घकालिक अभ्यास के माध्यम से प्रभावी साबित हुआ है।
इसके अतिरिक्त, इस रणनीति की पैरामीटर सेटिंग लचीली है और विभिन्न किस्मों और बाजार की स्थितियों के अनुसार समायोजित की जा सकती है। उदाहरण के लिए, गतिशील औसत रेखा के चक्र मापदंडों को रणनीति की संवेदनशीलता को समायोजित करने के लिए बदला जा सकता है। इससे रणनीति अनुकूलन और समायोजन के लिए जगह मिलती है।
इस रणनीति का सबसे बड़ा जोखिम यह है कि अधिक झूठे संकेत हो सकते हैं और रेंज-बाउंड बाजारों में फंस सकते हैं। जब कीमतें तेजी से उतार-चढ़ाव करती हैं, तो चलती औसत रेखाएं अक्सर क्रॉसओवर का उत्पादन कर सकती हैं, जिसके परिणामस्वरूप झूठे संकेत होते हैं। इस बिंदु पर, आपको कुछ शोर को फ़िल्टर करने के लिए चलती औसत रेखा के चक्र मापदंडों को समायोजित करने की आवश्यकता होती है।
इसके अतिरिक्त, जब बाजार में बड़ा उलटफेर होता है, तो रणनीति का स्टॉप लॉस बिंदु टूट सकता है, जिसके परिणामस्वरूप बड़े नुकसान होते हैं। इसके लिए स्टॉप लॉस रणनीति को अनुकूलित करने और स्टॉप लॉस रेंज को उचित रूप से ढीला करने की आवश्यकता होती है।
इस रणनीति के निम्नलिखित पहलुओं को अनुकूलित किया जा सकता हैः
विभिन्न किस्मों और बाजार स्थितियों के लिए मापदंडों का इष्टतम संयोजन खोजने के लिए चलती औसत रेखा के चक्र मापदंडों का अनुकूलन करें।
रेंज-बाउंड बाजारों में झूठे संकेत उत्पन्न करने से बचने के लिए एमएसीडी और केडी जैसे अन्य तकनीकी संकेतकों का फ़िल्टरिंग जोड़ें।
स्टॉप लॉस की रणनीति को अनुकूलित और गतिशील रूप से समायोजित करें ताकि स्टॉप लॉस बिंदु को बहुत करीब होने से रोका जा सके और स्टॉप लॉस को सुनिश्चित किया जा सके, जिसके माध्यम से टूटने की अधिक संभावना हो।
एकल लेनदेन जोखिम को नियंत्रित करने के लिए निश्चित निवेश और स्थिति अनुपात जैसे पद प्रबंधन तंत्र को बढ़ाएं।
यह रणनीति एक बहुत ही क्लासिक चलती औसत क्रॉसओवर रणनीति है। यह अल्पकालिक और दीर्घकालिक चलती औसत के बीच संबंध की गणना और तुलना करके खरीद और बिक्री संकेत उत्पन्न करती है। इस रणनीति के फायदे सरल, लचीले मापदंड हैं, और शुरुआती लोगों के लिए सीखने के लिए उपयुक्त हैं; नुकसान यह है कि संकेत पर्याप्त रूप से स्थिर नहीं हो सकते हैं और यह सीमा-बाधित बाजारों में पकड़ना आसान है। उचित अनुकूलन के साथ, यह अभी भी एक बहुत ही व्यावहारिक मात्रात्मक रणनीति बन सकती है।
/*backtest start: 2023-01-16 00:00:00 end: 2024-01-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // TODO: update strategy name strategy("{STRATEGY NAME}", overlay=true) // === TA LOGIC === // // // TODO: PUT YOUR TA LOGIC HERE LONG_SIGNAL_BOOLEAN = crossover(sma(close, 13), sma(close, 34)) SHORT_SIGNAL_BOOLEAN = crossunder(sma(close, 12), sma(close, 21)) // === INPUT BACKTEST DATE RANGE === enableShorts = input(false, title="Enable short entries?") FromMonth = input(defval = 5, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 18, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2018, title = "From Year", minval = 2017) ToMonth = input(defval = 9, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 2018, title = "To Year", minval = 2017) 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" // === STRATEGY BUY / SELL ENTRIES === // TODO: update the placeholder LONG_SIGNAL_BOOLEAN and SHORT_SIGNAL_BOOLEAN to signal // long and short entries buy() => window() and LONG_SIGNAL_BOOLEAN sell() => window() and SHORT_SIGNAL_BOOLEAN if buy() strategy.entry("Long", strategy.long, comment="Long") if sell() if (enableShorts) strategy.entry("Short", strategy.short, comment="Short") else strategy.close("Long") // === BACKTESTING: EXIT strategy === sl_inp = input(10, title='Stop Loss %', type=float)/100 tp_inp = input(30, title='Take Profit %', type=float)/100 stop_level = strategy.position_avg_price * (1 - sl_inp) take_level = strategy.position_avg_price * (1 + tp_inp) strategy.exit("Stop Loss/Profit", "Long", stop=stop_level, limit=take_level)