
यह रणनीति दो सूचकांकों के चलती औसत (ईएमए) के क्रॉसिंग सिग्नल पर आधारित है। लंबी ईएमए के नीचे लंबी ईएमए के नीचे लंबी ईएमए के नीचे लंबी ईएमए के नीचे लंबी ईएमए के नीचे और लंबी ईएमए के नीचे स्थित है। यह रणनीति जोखिम को नियंत्रित करने और रणनीति के प्रदर्शन को अनुकूलित करने के लिए स्टॉप लॉस और ट्रेडिंग समय फ़िल्टर भी पेश करती है।
यह रणनीति दो अलग-अलग चक्रों के ईएमए का उपयोग करती है, जो एक सरल चलती औसत की तुलना में ईएमए के आधार पर एक प्रवृत्ति के रूप में कार्य करती है। ईएमए मूल्य परिवर्तनों के लिए अधिक तेज़ी से प्रतिक्रिया करता है और अधिक उचित भार वितरण करता है। जब एक लंबी अवधि के ईएमए पर एक लंबी अवधि के ईएमए में प्रवेश करता है, तो यह दर्शाता है कि कीमतें एक ऊंची प्रवृत्ति बना सकती हैं, और अधिक खोलने के लिए; इसके विपरीत, जब एक छोटी अवधि के ईएमए के नीचे एक लंबी अवधि के ईएमए में प्रवेश करता है, तो यह दर्शाता है कि एक ऊंची प्रवृत्ति समाप्त हो सकती है, और बंद हो जाती है।
सम-रेखा पार सिग्नल के अलावा, इस रणनीति में एक स्टॉप-लॉस तंत्र भी शामिल है। एक ओर, एक निश्चित प्रतिशत स्टॉप-लॉस सेट किया गया है, अर्थात, जब कीमतें एक निश्चित प्रतिशत से अधिक खोलने की कीमतों से अधिक हो जाती हैं, तो घाटे को नियंत्रित करने के लिए पट्टे को मजबूर किया जाता है; दूसरी ओर, जब कीमतों की समापन कीमतें पिछले K-लाइन समापन कीमतों से कम होती हैं, तो पट्टे को चुना जा सकता है। दोनों प्रकार के स्टॉप-लॉस प्रभावी रूप से रणनीति को वापस लेने पर नियंत्रण कर सकते हैं।
इसके अलावा, इस नीति में ट्रेडिंग समय फ़िल्टर की भी शुरुआत की गई है। उपयोगकर्ता अपने स्वयं के ट्रेडिंग शुरू करने और समाप्त करने के समय को सेट कर सकता है, जिससे विशिष्ट समय (जैसे छुट्टियों, गैर-ट्रेडिंग समय आदि) के दौरान ट्रेडिंग से बचा जा सकता है।
सरल और प्रयोग करने में आसानः रणनीति का तर्क स्पष्ट है, केवल दो ईएमए का उपयोग ट्रेडिंग सिग्नल के रूप में किया जाता है, जिसे समझना और लागू करना आसान है।
ट्रेंड ट्रैकिंगः ईएमए मूल्य परिवर्तनों के लिए तेजी से प्रतिक्रिया करने में सक्षम है, जो रणनीति को समय पर ट्रेंड के गठन और समापन को पकड़ने की अनुमति देता है, जिससे ट्रेंड ट्रैकिंग का लाभ मिलता है।
जोखिम नियंत्रणः एक निश्चित प्रतिशत रोक और पिछले K लाइन के समापन मूल्य पर आधारित रोक का परिचय, जो एक ही व्यापार के नुकसान और वापसी को प्रभावी ढंग से नियंत्रित करने में सक्षम है।
पैरामीटर लचीलापनः उपयोगकर्ता अपनी आवश्यकताओं के अनुसार, ईएमए चक्र, स्टॉप लॉस प्रतिशत, पिछले के-लाइन क्लोजर प्राइस स्टॉप लॉस का उपयोग करना, ट्रेडिंग समय अवधि आदि पैरामीटर को समायोजित कर सकता है, जिससे रणनीति के प्रदर्शन को अनुकूलित किया जा सके।
पैरामीटर अनुकूलन जोखिमः रणनीति का प्रदर्शन ईएमए चक्र, रोकथाम प्रतिशत आदि जैसे पैरामीटर के चयन पर निर्भर करता है, अनुचित पैरामीटर खराब रणनीति के प्रदर्शन का कारण बन सकता है। इसलिए, सबसे अच्छा पैरामीटर चुनने के लिए पैरामीटर अनुकूलन और ऐतिहासिक डेटा पर वापस माप की आवश्यकता होती है।
बाजार जोखिमः यह रणनीति मुख्य रूप से ट्रेंडिंग बाजारों में काम करती है, और जब बाजार में उतार-चढ़ाव होता है या प्रवृत्ति उलट जाती है, तो अक्सर ट्रेडिंग से बड़ी वापसी हो सकती है। इसलिए, बाजार की स्थिति के अनुसार रणनीति के मापदंडों को समायोजित करने या रणनीति का उपयोग बंद करने की आवश्यकता होती है।
लागत जोखिमः इस रणनीति के परिणामस्वरूप अधिक लेनदेन हो सकते हैं, जिससे लेनदेन की लागत बढ़ जाती है। इसलिए, उचित लेनदेन का चयन करने और लेनदेन की मात्रा का चयन करने और प्रत्येक लेनदेन की लागत को नियंत्रित करने की आवश्यकता है।
अधिक तकनीकी संकेतक का परिचयः ईएमए क्रॉस सिग्नल के आधार पर, अन्य तकनीकी संकेतक जैसे आरएसआई, एमएसीडी आदि का परिचय, बहु-कारक ट्रेडिंग सिग्नल का गठन, प्रवृत्ति निर्णय की सटीकता में सुधार।
गतिशील स्टॉप लॉस: बाजार में उतार-चढ़ाव और एटीआर जैसे संकेतकों के आधार पर स्टॉप लॉस की स्थिति को गतिशील रूप से समायोजित करें, जोखिम को नियंत्रित करते हुए, स्टॉप लॉस से होने वाली हानि को कम से कम करें।
स्थिति प्रबंधनः बाजार की प्रवृत्ति की ताकत, मूल्य और औसत से विचलन की डिग्री के आधार पर, गतिशील रूप से स्थिति का आकार समायोजित करें, प्रवृत्ति मजबूत होने पर स्थिति बढ़ाएं, प्रवृत्ति कमजोर होने या अस्पष्ट होने पर स्थिति को कम करें।
मशीन लर्निंग ऑप्टिमाइज़ेशनः मशीन लर्निंग एल्गोरिदम का उपयोग करके रणनीति मापदंडों का अनुकूलन करें, स्वचालित रूप से सबसे अच्छा पैरामीटर संयोजन चुनें, रणनीति रिटर्न में सुधार करें और ओवरफिट के जोखिम को कम करें।
यह द्वि-समानता क्रॉस क्वांटिटेशन रणनीति दो ईएमए के क्रॉस सिग्नल के माध्यम से प्रवृत्ति का न्याय करती है, जबकि स्टॉप लॉस और ट्रेडिंग टाइम फिल्टर को पेश करती है, जो ट्रेंड ट्रैकिंग क्षमता और जोखिम नियंत्रण के बीच एक अच्छा संतुलन है। हालांकि रणनीति का तर्क सरल है, लेकिन उचित पैरामीटर अनुकूलन और जोखिम नियंत्रण के बाद, ट्रेंडिंग बाजार में स्थिर रिटर्न प्राप्त किया जा सकता है। रणनीति को और अधिक तकनीकी संकेतकों, गतिशील स्टॉप लॉस स्थिति, प्रबंधन और मशीन सीखने के अनुकूलन आदि को पेश करने से बेहतर बनाया जा सकता है।
/*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)