मोमेंटम ट्रैकिंग ट्रेडिंग रणनीति एक स्वचालित ट्रेडिंग रणनीति है जो मुख्य रूप से बाजार की गति के रुझानों को ट्रैक करती है और सहायक निर्णय के रूप में कई तकनीकी संकेतकों का उपयोग करती है। यह रणनीति वर्तमान बाजार के मुख्य फंडों की दिशा और ताकत निर्धारित करने के लिए के-लाइन जानकारी को पार्स करती है, और फिर वॉल्यूम मूल्य और चलती औसत जैसे संकेतकों के आधार पर ट्रेडिंग सिग्नल जारी करती है।
कुल मिलाकर, यह रणनीति मध्यम और दीर्घकालिक प्रवृत्ति व्यापार के लिए उपयुक्त है, और प्रभावी रूप से बाजार के रुझानों को पकड़ सकती है और उच्च एकल लाभ का पीछा करने के लिए व्यापार आवृत्ति को कम कर सकती है। उसी समय, रणनीति मापदंडों को अनुकूलित करने के बाद, इसका उपयोग अल्पकालिक व्यापार के लिए भी किया जा सकता है।
गति ट्रैकिंग रणनीति का मूल बाजार के मुख्य फंडों की दिशा का न्याय करना है। रणनीति वास्तविक समय में बाजार की अस्थिरता की निगरानी के लिए एटीआर संकेतक की गणना करती है। जब अस्थिरता बढ़ जाती है, तो इसका मतलब है कि मुख्य फंड जमा या वितरित हो रहे हैं, और रणनीति अस्थायी रूप से बाजार से बाहर निकल जाएगी ताकि मुख्य फंडों के संचालन की अवधि से बचा जा सके।
जब अस्थिरता कम हो जाती है, तो इसका मतलब है कि मुख्य बल संचय या आवंटन पूरा हो गया है, और रणनीति मुख्य बल की विशिष्ट दिशा निर्धारित करने के लिए बाजार में फिर से प्रवेश करेगी। निर्णय विधि यह देखने के लिए बाजार के समर्थन और दबाव की स्थिति की गणना करना है कि क्या सफलता के संकेत हैं। यदि कोई स्पष्ट सफलता है, तो यह साबित करेगा कि मुख्य फंडों ने उस दिशा को चुना है।
मुख्य कोषों की दिशा निर्धारित करने के बाद, रणनीति में गलत आकलन से बचने के लिए फिर से सत्यापन के लिए कई सहायक तकनीकी संकेतकों को भी पेश किया जाएगा। विशेष रूप से, एमएसीडी, केडीजे और अन्य संकेतकों की गणना यह निर्धारित करने के लिए की जाएगी कि वे मुख्य कोषों की दिशा के अनुरूप हैं या नहीं।
केवल जब मुख्य निधियों और सहायक संकेतकों की दिशा एक ही दिशा में संकेत देती है, तो रणनीति पदों को खोलती है। यह प्रभावी रूप से व्यापार आवृत्ति को नियंत्रित करता है और केवल उच्च संभावना पर प्रवेश करता है।
पदों के खुलने के बाद, गति ट्रैकिंग रणनीति वास्तविक समय में मूल्य परिवर्तनों को ट्रैक करेगी, और एटीआर मूल्यों के विस्तार का उपयोग स्टॉप लॉस सिग्नल के रूप में करेगी। इसका मतलब है कि बाजार फिर से मुख्य परिचालन चरण में प्रवेश कर गया है और फंसने से बचने के लिए तुरंत नकदी में बाहर निकलना होगा।
इसके अतिरिक्त, यदि मूल्य आंदोलन एक निश्चित सीमा से अधिक हो जाता है और फिर वापस ले जाता है, तो स्टॉप लॉस भी होगा। यह एक सामान्य तकनीकी रिट्रेसमेंट है और जोखिम नियंत्रण के लिए तुरंत इसे रोकना आवश्यक है।
मोमेंटम ट्रैकिंग रणनीतियों का सबसे बड़ा लाभ उनकी उच्च स्तर की व्यवस्थितता और मानकीकरण है। इसका ट्रेडिंग तर्क स्पष्ट है, और प्रत्येक प्रवेश और निकास में मनमाने व्यापार के बजाय स्पष्ट सिद्धांत और नियम हैं।
यह इस रणनीति की प्रतिकृति को बहुत मजबूत बनाता है। उपयोगकर्ता इसे मैन्युअल हस्तक्षेप के बिना कॉन्फ़िगरेशन के बाद दीर्घकालिक उपयोग के लिए लागू कर सकते हैं।
रणनीति में बहुस्तरीय जोखिम नियंत्रण तंत्र जैसे मुख्य शक्ति निर्णय, सहायक सत्यापन, स्टॉप लॉस लाइन सेटिंग आदि शामिल हैं, जो गैर-प्रणालीगत जोखिमों को प्रभावी ढंग से नियंत्रित कर सकते हैं।
विशेष रूप से, रणनीति केवल उच्च संभावना स्थितियों में पदों को खोलती है और नुकसान से बचने के लिए वैज्ञानिक स्टॉप लॉस बिंदु निर्धारित करती है। यह स्थिर पूंजी वृद्धि सुनिश्चित करता है।
अल्पकालिक रणनीतियों की तुलना में, गति ट्रैक करने वाली रणनीतियों की होल्डिंग अवधि अधिक होती है, और प्रत्येक लाभ अधिक होता है। इससे समग्र रणनीति का रिटर्न अधिक स्थिर और टिकाऊ होता है।
इसके अतिरिक्त, रणनीति मध्यम और दीर्घकालिक रुझानों को ट्रैक करती है, जो रुझानों की अस्थिरता को पूरी तरह से पकड़ सकती है। यह विशेष रूप से प्रमुख ट्रेंडिंग बाजारों में ध्यान देने योग्य है।
गति ट्रैकिंग रणनीति में कई मापदंड शामिल होते हैं, जैसे एटीआर मापदंड, प्रवेश मापदंड, स्टॉप लॉस मापदंड आदि। इन मापदंडों के बीच एक निश्चित संबंध है, जिसके लिए इष्टतम मापदंड संयोजन खोजने के लिए दोहराए गए परीक्षण की आवश्यकता होती है।
अनुचित पैरामीटर विन्यास आसानी से अत्यधिक व्यापार आवृत्ति या अपर्याप्त जोखिम नियंत्रण का कारण बन सकता है। इसके लिए उपयोगकर्ता को रणनीति अनुकूलन में कुछ अनुभव होना आवश्यक है।
जब रणनीति मुख्य शक्ति और संकेतक संकेतों को निर्धारित करती है, तो यह पुष्टि करने के लिए कीमतों के ब्रेकआउट पर निर्भर करती है। लेकिन पैठ संचालन में झूठे ब्रेकआउट हो सकते हैं, जो फंसने की संभावना को बढ़ाएंगे।
यदि एक महत्वपूर्ण सफलता विफल हो जाती है, तो इससे अधिक नुकसान हो सकता है। यह रणनीति की अंतर्निहित कमजोरी है।
मशीन लर्निंग एल्गोरिदम का उपयोग स्वचालित रूप से मापदंडों के बीच सहसंबंधों का पता लगाने और इष्टतम मापदंड संयोजन खोजने के लिए किया जा सकता है। यह मैनुअल परीक्षण की तुलना में बहुत अधिक कुशल है।
विशेष रूप से, पर्यावरण त्रुटि एल्गोरिथ्म का उपयोग रणनीति रिटर्न को अधिकतम करने के लिए सुदृढीकरण सीखने के आधार पर लगातार मापदंडों को पुनरावृत्त करने के लिए किया जा सकता है।
विश्वसनीयता बढ़ाने के लिए सफलता संकेतों को तीन या चार बार सत्यापित करने के लिए मौजूदा संकेतकों, जैसे कि व्यापार मात्रा संकेतकों, पूंजी प्रवाह संकेतकों आदि के आधार पर अधिक सहायक फिल्टर पेश किए जा सकते हैं।
लेकिन बहुत सारे फिल्टर भी अवसरों को खोने का कारण बन सकते हैं। फिल्टर तीव्रता को संतुलित करने की आवश्यकता है। इसके अलावा, फिल्टर खुद को भी सहसंबंध से बचना चाहिए।
गति को ट्रैक करने की रणनीति को अन्य रणनीतियों के साथ जोड़कर विभिन्न रणनीतियों की ताकतों का लाभ उठाने के लिए ऑर्टोगोनालिटी प्राप्त करने और समग्र स्थिरता में सुधार करने के लिए।
उदाहरण के लिए, अल्पावधि रिवर्स रणनीतियों को शामिल करना और सफलताओं के बाद रिवर्स ट्रेड खोलना अधिक मुनाफे में लॉक कर सकता है।
सामान्य तौर पर, मोमेंटम ट्रैकिंग ट्रेडिंग रणनीति एक व्यवस्थित ट्रेंड ट्रैकिंग रणनीति है जो अनुशंसित है। इसमें स्पष्ट ट्रेडिंग तर्क, पर्याप्त जोखिम नियंत्रण है, और उपयोगकर्ताओं को स्थिर और कुशल निवेश रिटर्न ला सकता है।
लेकिन रणनीति में ही कुछ अंतर्निहित कमजोरियां भी हैं। इसके लिए उपयोगकर्ताओं को इस रणनीति की प्रभावशीलता को अधिकतम करने के लिए मापदंडों को अनुकूलित करने और रणनीतियों को एकीकृत करने की क्षमता की आवश्यकता होती है। कुल मिलाकर, गति ट्रैकिंग रणनीति कुछ नींव वाले मात्रात्मक उत्साही लोगों के लिए उपयुक्त एक मात्रात्मक उत्पाद है।
/*backtest start: 2023-12-12 00:00:00 end: 2023-12-15 01:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Created by frasmac2k Strategy credit to Alex Morris //@version=5 strategy("Mechanical", shorttitle="MECH", overlay=true) // Get the current date and time currentYear = year currentMonth = month currentDay = dayofmonth // Create a timestamp for the present date and time currentTimestamp = timestamp(currentYear, currentMonth, currentDay) // Define time interval for backtesting dStart = input(timestamp('2023-07-01'), title='Set Start date', tooltip='Select a start date to run the script from') // Define direction of strategy direction = input.string('Forward',title='Direction', tooltip='Forward will go LONG on a Green anchor candle. Inverse will go short on a Green anchor candle and vice versa for Red candle', options=['Forward', 'Inverse']) // Define the anchor hour as user input with a range of 0 to 23 anchorHour = input.int(11, title="Anchor Hour", tooltip='Set the hour to trade', minval=0, maxval=23) // Define the take profit and stop loss in pips takeProfitPips = input.int(10, title='Define TP Pips', tooltip='How many pips do you want to set TP. Choose a sensible value related to the instrument', minval=5) stopLossPips = input.int(10,'Define SL Pips', tooltip='How many pips do you want to set SL. Choose a sensible value related to the instrument', minval=5) // Define Tick size tick10p = input.int(100, title='tick size', tooltip='Choose how many ticks equal 10 pips. This can vary by broker so measure 10 pips on the chart and select how many ticks that equates to. Forex is typically 100. Some instruments such as indices can be 1000', options=[100,1000]) // Declare TP/SL variables var float takeProfit = na var float stopLoss = na // Calculate take profit and stop loss levels in ticks if tick10p == 100 takeProfit := takeProfitPips * 10 stopLoss := stopLossPips * 10 if tick10p == 1000 takeProfit := takeProfitPips * 100 stopLoss := stopLossPips * 100 // Declare offset time var int offset = na if currentTimestamp > timestamp('2023-10-29') offset := 4 else offset := 5 //adjust for exchange time anchorHour := anchorHour - offset // Define the anchor hour as user input with a range of 0 to 23 tradeHour = anchorHour // Define logical check for strategy date range isStratTime = true // Calculate the time condition for placing the order at the user-defined hour (start of the next hour) isTradeTime = true // Logic condition for forwards or inverse isForward = direction == 'Forward' isInverse = direction == 'Inverse' // Declare entry condition variables var bool longCondition = na var bool shortCondition = na // Declare and initialize variables for anchorCandle open and close prices var float anchorOpen = na var float anchorClose = na var float tradeOpen = na var float tradeClose = na // Set logic by direction if isForward // Strategy logic if isTradeTime and isStratTime //Obtain candle open/close anchorOpen := open anchorClose := close // Define entry conditions longCondition := anchorClose > anchorOpen shortCondition := anchorClose < anchorOpen // Entry logic if longCondition strategy.entry("Long", strategy.long) strategy.exit("Exit Long", from_entry="Long", profit=takeProfit, loss=stopLoss, comment_profit='TP', comment_loss='SL') if shortCondition strategy.entry("Short", strategy.short) strategy.exit("Exit Short", from_entry="Short", profit=takeProfit, loss=stopLoss, comment_profit='TP', comment_loss='SL') if isInverse // Strategy logic if isTradeTime and isStratTime //Obtain candle open/close anchorOpen := open anchorClose := close // Define entry conditions shortCondition := anchorClose > anchorOpen longCondition := anchorClose < anchorOpen // Entry logic if longCondition strategy.entry("Long", strategy.long) strategy.exit("Exit Long", from_entry="Long", profit=takeProfit, loss=stopLoss, comment_profit='TP', comment_loss='SL') if shortCondition strategy.entry("Short", strategy.short) strategy.exit("Exit Short", from_entry="Short", profit=takeProfit, loss=stopLoss, comment_profit='TP', comment_loss='SL') // Define the time range for the background shade startHour = anchorHour startMinute = 0 endHour = anchorHour endMinute = 0 // Check if the current time is within the specified range isInTimeRange = (hour == startHour and minute >= startMinute) or (hour == endHour and minute <= endMinute) or (hour > startHour and hour < endHour) // Define the background color for the shade backgroundColor = color.new(color.red, 90) // Apply the background shade bgcolor(isInTimeRange ? backgroundColor : na)