यह रणनीति ट्रेडिंग के लिए दो घातीय चलती औसत (ईएमए) के क्रॉस सिग्नल पर आधारित है। जब अल्पकालिक ईएमए दीर्घकालिक ईएमए से ऊपर जाता है, तो यह एक लंबी स्थिति खोलता है; जब अल्पकालिक ईएमए दीर्घकालिक ईएमए से नीचे जाता है, तो यह स्थिति को बंद कर देता है। रणनीति जोखिमों को नियंत्रित करने और रणनीति प्रदर्शन को अनुकूलित करने के लिए स्टॉप-लॉस तंत्र और ट्रेडिंग समय फ़िल्टर भी पेश करती है।
यह रणनीति प्रवृत्ति निर्णय के आधार के रूप में अलग-अलग अवधियों के साथ दो ईएमए का उपयोग करती है। सरल चलती औसत (एसएमए) की तुलना में, ईएमए मूल्य परिवर्तनों पर अधिक तेजी से प्रतिक्रिया कर सकते हैं और अधिक उचित वजन वितरण कर सकते हैं। जब अल्पकालिक ईएमए दीर्घकालिक ईएमए से ऊपर जाता है, तो यह इंगित करता है कि कीमत एक ऊपर की प्रवृत्ति का गठन कर सकती है, और एक लंबी स्थिति खोली जाती है; इसके विपरीत, जब अल्पकालिक ईएमए दीर्घकालिक ईएमए से नीचे जाता है, तो यह इंगित करता है कि ऊपर की प्रवृत्ति समाप्त हो सकती है, और स्थिति बंद हो जाती है।
चलती औसत क्रॉस सिग्नल के अलावा, रणनीति एक स्टॉप-लॉस तंत्र भी पेश करती है। एक ओर, एक निश्चित प्रतिशत स्टॉप-लॉस सेट किया जाता है, अर्थात, जब कीमत शुरुआती मूल्य के सापेक्ष एक विशिष्ट प्रतिशत से अधिक गिरती है, तो स्थिति को नुकसान को नियंत्रित करने के लिए जबरन बंद कर दिया जाता है; दूसरी ओर, यह भी चुनना संभव है कि स्थिति को बंद करने के लिए जब समापन मूल्य पिछली कैंडलस्टिक के समापन मूल्य से कम हो। ये दो स्टॉप-लॉस विधियां प्रभावी रूप से रणनीति ड्रॉडाउन को नियंत्रित कर सकती हैं।
इसके अलावा, रणनीति में एक ट्रेडिंग समय फ़िल्टर भी पेश किया गया है। उपयोगकर्ता स्व-अनुमत ट्रेडिंग के प्रारंभ और समाप्ति समय को स्वयं सेट कर सकते हैं, इस प्रकार विशिष्ट समय अवधि (जैसे छुट्टियों, गैर-ट्रेडिंग घंटों, आदि) के दौरान ट्रेडिंग से बच सकते हैं।
सरल और प्रयोग करने में आसानः रणनीति तर्क स्पष्ट है और व्यापार संकेतों के रूप में केवल दो ईएमए का उपयोग करता है, जिसे समझना और लागू करना आसान है।
ट्रेंड ट्रैकिंग: ईएमए कीमतों में बदलाव पर तेजी से प्रतिक्रिया दे सकते हैं, जिससे रणनीति समय पर ट्रेंड के गठन और समाप्त होने को पकड़ सकती है, जिससे ट्रेंड ट्रैकिंग लाभ प्राप्त होता है।
जोखिम नियंत्रणः एक निश्चित प्रतिशत स्टॉप-लॉस और पिछले कैंडलस्टिक के समापन मूल्य के आधार पर स्टॉप-लॉस की शुरूआत से एकल लेनदेन के नुकसान और ड्रॉडाउन को प्रभावी ढंग से नियंत्रित किया जा सकता है।
लचीले मापदंडः उपयोगकर्ता अपनी आवश्यकताओं के अनुसार ईएमए अवधि, स्टॉप-लॉस प्रतिशत, स्टॉप-लॉस के लिए पिछली कैंडलस्टिक के समापन मूल्य, ट्रेडिंग समय अवधि आदि का उपयोग करने के लिए मापदंडों को समायोजित कर सकते हैं, इस प्रकार रणनीति प्रदर्शन को अनुकूलित कर सकते हैं।
पैरामीटर अनुकूलन जोखिमः रणनीति का प्रदर्शन ईएमए अवधि और स्टॉप-लॉस प्रतिशत जैसे मापदंडों के चयन पर निर्भर करता है, और अनुचित मापदंडों से खराब रणनीति प्रदर्शन हो सकता है। इसलिए, इष्टतम मापदंडों का चयन करने के लिए ऐतिहासिक डेटा पर पैरामीटर अनुकूलन और बैकटेस्टिंग करना आवश्यक है।
बाजार जोखिम: यह रणनीति मुख्य रूप से ट्रेंडिंग बाजारों पर लागू होती है। अस्थिर बाजार या ट्रेंड रिवर्स में, लगातार ट्रेडिंग से बड़े ड्रॉडाउन हो सकते हैं। इसलिए, रणनीति पैरामीटर को समायोजित करना या बाजार की स्थिति के अनुसार रणनीति का उपयोग बंद करना आवश्यक है।
लागत जोखिमः रणनीति बड़ी संख्या में ट्रेड उत्पन्न कर सकती है, जिससे लेनदेन की लागत बढ़ जाती है। इसलिए, उचित व्यापारिक लक्ष्यों और मात्राओं का चयन करना और प्रत्येक लेनदेन की लागत को नियंत्रित करना आवश्यक है।
अधिक तकनीकी संकेतक पेश करें: ईएमए क्रॉस सिग्नल के आधार पर, बहु-कारक व्यापार संकेत बनाने और प्रवृत्ति निर्णय की सटीकता में सुधार करने के लिए आरएसआई और एमएसीडी जैसे अन्य तकनीकी संकेतक पेश करें।
गतिशील स्टॉप-लॉसः स्टॉप-लॉस स्थिति को गतिशील रूप से बाजार की अस्थिरता और एटीआर जैसे संकेतकों के अनुसार समायोजित करें, जबकि जोखिमों को नियंत्रित करें और स्टॉप-लॉस के कारण होने वाले लाभों के नुकसान को यथासंभव कम करें।
स्थिति प्रबंधन: बाजार के रुझान की मजबूती, चलती औसत से मूल्य विचलन की डिग्री आदि के अनुसार स्थिति के आकार को गतिशील रूप से समायोजित करें, जब रुझान मजबूत हो, तो स्थिति बढ़ाएं, और जब रुझान कमजोर हो या अस्पष्ट हो, तो स्थिति को कम करें।
मशीन लर्निंग अनुकूलनः रणनीति मापदंडों को अनुकूलित करने के लिए मशीन लर्निंग एल्गोरिदम का उपयोग करें और स्वचालित रूप से इष्टतम पैरामीटर संयोजन का चयन करें, रणनीति रिटर्न में सुधार करें और ओवरफिट जोखिमों को कम करें।
यह ईएमए क्रॉस मात्रात्मक रणनीति प्रवृत्ति का न्याय करने के लिए दो ईएमए के क्रॉस सिग्नल का उपयोग करती है, जबकि स्टॉप-लॉस तंत्र और ट्रेडिंग समय फ़िल्टर की शुरुआत करते हुए, प्रवृत्ति ट्रैकिंग क्षमता और जोखिम नियंत्रण के बीच एक अच्छा संतुलन प्राप्त करती है। हालांकि रणनीति तर्क सरल है, यह उचित पैरामीटर अनुकूलन और जोखिम नियंत्रण के माध्यम से प्रवृत्ति बाजारों में स्थिर रिटर्न प्राप्त कर सकती है। भविष्य में, रणनीति को और अधिक तकनीकी संकेतकों, गतिशील स्टॉप-लॉस, स्थिति प्रबंधन और मशीन लर्निंग अनुकूलन जैसे पहलुओं से बेहतर बनाया जा सकता है, ताकि रणनीति प्रदर्शन और मजबूती में और सुधार हो सके। सामान्य तौर पर, यह रणनीति एक समझने में आसान और लागू करने में आसान मात्रात्मक ट्रेडिंग रणनीति है, जो प्रवेश स्तर के मात्रात्मक व्यापारियों के लिए सीखने और उपयोग के लिए उपयुक्त है।
/*backtest start: 2023-03-02 00:00:00 end: 2024-03-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © ZenAndTheArtOfTrading / www.PineScriptMastery.com // @version=5 strategy("EMA strategy", overlay=true, initial_capital=50000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, // 100% of balance invested on each trade commission_type=strategy.commission.cash_per_contract, commission_value=0.005) // Interactive Brokers rate // Get user input i_ma1 = input.int(title="MA 1 Length", defval=200, step=10, group="Strategy Parameters", tooltip="Long-term MA") i_ma2 = input.int(title="MA 2 Length", defval=10, step=10, group="Strategy Parameters", tooltip="Short-term MA") i_stopPercent = input.float(title="Stop Loss Percent", defval=0.10, step=0.1, group="Strategy Parameters", tooltip="Failsafe Stop Loss Percent Decline") i_lowerClose = input.bool(title="Exit On Lower Close", defval=false, group="Strategy Parameters", tooltip="Wait for a lower-close before exiting above MA2") i_startTime = input(title="Start Filter", defval=timestamp("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups") i_endTime = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups") // Get indicator values ma1 = ta.ema(close, i_ma1) ma2 = ta.ema(close, i_ma2) // Check filter(s) f_dateFilter = true // Check buy/sell conditions var float buyPrice = 0 buyCondition = close > ma1 and strategy.position_size == 0 and f_dateFilter sellCondition = close < ma2 and strategy.position_size > 0 //and (not i_lowerClose or close < low[1]) stopDistance = strategy.position_size > 0 ? ((buyPrice - close) / close) : na stopPrice = strategy.position_size > 0 ? buyPrice - (buyPrice * i_stopPercent) : na stopCondition = strategy.position_size > 0 and stopDistance > i_stopPercent // Enter positions if buyCondition strategy.entry(id="Long", direction=strategy.long) if buyCondition[1] buyPrice := open // Exit positions if sellCondition or stopCondition strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : "")) buyPrice := na // Draw pretty colors plot(buyPrice, color=color.lime, style=plot.style_linebr) plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1) plot(ma1, color=color.blue) plot(ma2, color=color.orange)