डायनेमिक मूविंग एवरेज रिट्रेसमेंट मार्टिन रणनीति एक अक्सर चलने वाली ट्रेडिंग रणनीति है जो प्रवेश और निकास संकेत उत्पन्न करने के लिए मूविंग एवरेज क्रॉसओवर और पुलबैक संकेतों को जोड़ती है। रणनीति अल्पकालिक रुझानों को पकड़ने के लिए 3-दिवसीय और 8-दिवसीय सरल मूविंग एवरेज के क्रॉसओवर और विचलन का उपयोग करती है, और जोखिमों को नियंत्रित करने के लिए स्टॉप और लाभ लेती है। यह रणनीति विभिन्न बाजार स्थितियों के अनुसार ट्रेडिंग दिशाओं का चयन करने की अनुमति देती है।
यह रणनीति 3-दिवसीय और 8-दिवसीय सरल चलती औसत और उनके क्रॉसओवर संकेतों का उपयोग करती है। एक लंबा संकेत तब उत्पन्न होता है जब 3-दिवसीय एमए 8-दिवसीय एमए के ऊपर पार करता है, और एक छोटा संकेत तब उत्पन्न होता है जब 3-दिवसीय एमए 8-दिवसीय एमए के नीचे पार करता है। लंबे संकेत लंबे प्रवेश को ट्रिगर करेंगे और छोटे संकेत छोटे प्रवेश को ट्रिगर करेंगे।
यदि कोई स्थिति नहीं है, तो रणनीति क्रॉसओवर संकेतों के आधार पर प्रवेश निर्धारित करेगी। प्रवेश के बाद, स्टॉप लॉस की कीमत और लाभ लेने की कीमत की गणना नवीनतम क्लोजर मूल्य, स्टॉप लॉस प्रतिशत और लाभ लेने के प्रतिशत के आधार पर की जाएगी। उदाहरण के लिए, जब एक लंबी स्थिति रखते हैं, तो स्टॉप लॉस की कीमत नवीनतम क्लोजर मूल्य है, जिसमें स्टॉप लॉस प्रतिशत घटाकर 8-दिवसीय एमए से गुणा किया गया है; लाभ लेने की कीमत नवीनतम क्लोजर मूल्य प्लस लाभ लेने का प्रतिशत 8 दिन के एमए से गुणा किया गया है।
यदि कोई मौजूदा लंबी स्थिति है, जब कीमत लाभ लेने या स्टॉप लॉस को ट्रिगर करती है, यदि 8-दिवसीय एमए का एक पुलबैक सिग्नल होता है, तो स्थिति बंद हो जाएगी। इस समय, स्टॉप लॉस की कीमत और लाभ लेने की कीमत को शून्य पर रीसेट किया जाएगा। शॉर्ट पदों को संभालने के लिए तर्क समान है।
यह रणनीति चार्ट पर प्रवेश और निकास बिंदुओं को भी प्लॉट करती है। उदाहरण के लिए, एक लंबी प्रविष्टि को ऊपर की ओर त्रिभुज के रूप में और एक लंबी निकास को नीचे की ओर त्रिभुज के रूप में प्लॉट किया जाता है। इससे प्रविष्टियों और निकासों को नेत्रहीन न्याय करने में मदद मिलती है।
इस रणनीति के लाभ इस प्रकार हैंः
इस रणनीति के मुख्य जोखिम निम्नलिखित हैंः
स्टॉप लॉस प्रतिशत को काफी हद तक बढ़ाकर, एमए पैरामीटर को अनुकूलित करके, अतिरिक्त फ़िल्टर स्थितियों को लागू करके, आदि जोखिमों को कम किया जा सकता है।
इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
डायनेमिक मूविंग एवरेज रिट्रेसमेंट मार्टिन रणनीति एक अल्पकालिक ट्रेडिंग रणनीति है। यह मूविंग एवरेज क्रॉसओवर द्वारा गठित अल्पकालिक रुझानों को कैप्चर करती है, और उचित स्टॉप और ले लाभ के साथ जोखिमों का प्रबंधन करती है। लगातार ट्रेडिंग प्रकृति इसे लाभ के अवसरों के साथ-साथ जोखिम भी देती है। मापदंडों को अनुकूलित करके, संकेतों को फ़िल्टर करके और जोखिमों को नियंत्रित करके, इस रणनीति को अधिक विश्वसनीयता के लिए और बेहतर बनाया जा सकता है।
/*backtest start: 2022-11-17 00:00:00 end: 2023-11-23 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/ // © blackcat1402 //@version=5 strategy('[blackcat] L1 MartinGale Scalping Strategy', overlay=true, pyramiding = 5) // Define input variables takeProfit = input(1.03, title='Take Profit') stopLoss = input(0.95, title='Stop Loss') inputTradingMode = input.string(defval='Long', options=['Long', 'Short', 'BiDir'], title='Trading Mode') //The purpose of this rule is to forbid short entries, only long etries will be placed. The rule affects the following function: 'entry'. strategy.risk.allow_entry_in(inputTradingMode == 'Long' ? strategy.direction.long : inputTradingMode == 'Short' ? strategy.direction.short : strategy.direction.all) // Define strategy logic entryPrice = 0.0 stopPrice = 0.0 takeProfitPrice = 0.0 stopLossPrice = 0.0 // Define SMA crossover and crossunder signals sma3 = ta.sma(close, 3) sma8 = ta.sma(close, 8) plot(sma3, color=color.yellow) plot(sma8, color=color.fuchsia) crossoverSignal = ta.crossover(sma3, sma8) crossunderSignal = ta.crossunder(sma3, sma8) crossoverState = sma3 > sma8 crossunderState = sma3 < sma8 if strategy.position_size == 0 if crossoverState strategy.entry('Buy', strategy.long) entryPrice := close stopPrice := close - stopLoss * sma8[1] takeProfitPrice := close + takeProfit * sma8[1] stopLossPrice := stopPrice stopLossPrice if crossunderState strategy.entry('Sell', strategy.short) entryPrice := close stopPrice := close + stopLoss * sma8[1] takeProfitPrice := close - takeProfit * sma8[1] stopLossPrice := stopPrice stopLossPrice if strategy.position_size > 0 if (close > takeProfitPrice or close < stopLossPrice) and crossunderState strategy.close('Buy') entryPrice := 0.0 stopPrice := 0.0 takeProfitPrice := 0.0 stopLossPrice := 0.0 stopLossPrice else strategy.entry('Buy', strategy.long) entryPrice := close stopPrice := close - stopLoss * sma8[1] takeProfitPrice := close + takeProfit * sma8[1] stopLossPrice := stopPrice stopLossPrice if strategy.position_size < 0 if (close > takeProfitPrice or close < stopLossPrice) and crossoverState strategy.close('Sell') entryPrice := 0.0 stopPrice := 0.0 takeProfitPrice := 0.0 stopLossPrice := 0.0 stopLossPrice else strategy.entry('Sell', strategy.short) entryPrice := close stopPrice := close + stopLoss * sma8[1] takeProfitPrice := close - takeProfit * sma8[1] stopLossPrice := stopPrice stopLossPrice // Plot entry and exit points plotshape(strategy.position_size > 0 and crossoverSignal, 'Buy Entry', shape.triangleup, location.belowbar, color.new(color.green, 0), size=size.small) plotshape(strategy.position_size > 0 and (close >= takeProfitPrice or close <= stopLossPrice), 'Buy Exit', shape.triangledown, location.abovebar, color.new(color.red, 0), size=size.small) plotshape(strategy.position_size < 0 and crossunderSignal, 'Sell Entry', shape.triangledown, location.abovebar, color.new(color.red, 0), size=size.small) plotshape(strategy.position_size < 0 and (close >= takeProfitPrice or close <= stopLossPrice), 'Sell Exit', shape.triangleup, location.belowbar, color.new(color.green, 0), size=size.small)