मोमेंटम बर्स्ट ट्रैकिंग रणनीति प्रतिशत मूल्य परिवर्तनों की गणना करके मूल्य सफलताओं का न्याय करती है और ट्रेडिंग वॉल्यूम के साथ संकेतों को फ़िल्टर करती है ताकि प्रवृत्ति सफलता बिंदुओं की उच्च संभावना कैप्चर को लागू किया जा सके। एक खरीद संकेत को ट्रिगर करने के बाद, यह रणनीति लाभ में लॉक करने और अत्यधिक ड्रॉडाउन से बचने के लिए मूल्य ट्रैकिंग स्टॉप लॉस का उपयोग करती है।
प्रवेश संकेतों को निर्धारित करने के लिए इस रणनीति के मुख्य संकेतक निम्नलिखित हैंः
प्रतिशत मूल्य परिवर्तन (isFourPercentBull) - यह निर्धारित करने के लिए कि क्या मूल्य प्रभावी रूप से टूट गया है, पिछले दिन की समापन मूल्य के सापेक्ष समापन मूल्य के प्रतिशत परिवर्तन की गणना करें।
समापन मूल्य का उच्चतम मूल्य से अनुपात (HighCloseRatio) - मूल्य ब्रेकआउट की ताकत निर्धारित करने के लिए समापन मूल्य का उच्चतम मूल्य से अनुपात की गणना करें।
ट्रेडिंग वॉल्यूम (वॉल्यूम) - वैध सफलता सुनिश्चित करने के लिए ट्रेडिंग वॉल्यूम को पिछले दिन से अधिक होना आवश्यक है।
200-दिवसीय सरल चलती औसत (एसएमए) - प्रवृत्ति की दिशा निर्धारित करने के लिए 200-दिवसीय रेखा से अधिक होने के लिए समापन मूल्य और उद्घाटन मूल्य की आवश्यकता होती है।
जब उपरोक्त कई शर्तें एक ही समय में पूरी हो जाती हैं, तो एक खरीद संकेत जारी किया जाता है। इसके बाद, रणनीति सक्रिय रूप से नुकसान को रोकने और लाभ में लॉक करने के लिए मूल्य ट्रैकिंग स्टॉप लॉस का उपयोग करती है। विशेष रूप से, ट्रेलिंग स्टॉप लॉस लाइन के लिए गणना सूत्र हैः
trailPrice = close * (100 - trailPercent) / 100
जहां trailPercent कॉन्फ़िगर करने योग्य ट्रेलिंग स्टॉप लॉस प्रतिशत है। यह सुनिश्चित करता है कि जब तक कीमतें बढ़ती हैं, स्टॉप लॉस लाइन भी लाभ में लॉक करने के लिए बढ़ेगी। जब कीमतें स्टॉप लॉस लाइन पर वापस गिरती हैं, तो नुकसान को रोकने के लिए पदों को बंद करें।
एक विशिष्ट ब्रेकआउट रणनीति के रूप में, इसके निम्नलिखित फायदे हैंः
मल्टी-कंडीशन फिल्टरिंग ब्रेकआउट की वैधता सुनिश्चित करती है और झूठे ब्रेकआउट से बचती है।
मूल्य ट्रैकिंग स्टॉप लॉस को अपनाएं, जो सक्रिय रूप से नुकसान को कम कर सकता है और ड्रॉडाउन से बचने के लिए लाभ को अधिकतम कर सकता है।
रणनीति का तर्क सरल और स्पष्ट है, इसे समझना और अनुकूलित करना आसान है।
इस रणनीति में कुछ जोखिम भी हैं:
अभी भी असफल ब्रेकआउट की संभावना है जो नुकसान से पूरी तरह बच नहीं सकते।
अत्यधिक आक्रामक ट्रैकिंग स्टॉप से लगातार स्टॉप हो सकते हैं।
गलत पैरामीटर सेटिंग्स से अत्यधिक ट्रेडिंग आवृत्तियों या मिस किए गए संकेतों का कारण बन सकता है।
संबंधित जोखिमों के समाधान इस प्रकार हैंः
पर्याप्त स्थान सुनिश्चित करने के लिए मापदंडों को अनुकूलित करें और स्टॉप लॉस परिमाण को कम करें।
यह सुनिश्चित करने के लिए कि स्पष्ट रुझानों को याद नहीं किया जाता है, ब्रेकआउट स्थितियों को उचित रूप से ढीला करें।
रणनीति की स्थिरता का आकलन करने के लिए विभिन्न किस्मों का परीक्षण करें।
इस रणनीति में रुके जाने की उच्च आवृत्ति को ध्यान में रखते हुए निम्नलिखित दिशाओं को और अधिक अनुकूलित किया जा सकता हैः
अन्य स्टॉप लॉस ट्रैकिंग विधियों का प्रयोग करें, जैसे कि चलती औसत ट्रैकिंग, एटीआर और अस्थिरता ट्रैकिंग।
ऐतिहासिक आंकड़ों के आधार पर बेहतर प्रदर्शन करने वाले पैरामीटर संयोजनों के निर्णयों को प्रशिक्षित करने के लिए मशीन लर्निंग एल्गोरिदम बढ़ाएं।
प्रभावकारिता सुनिश्चित करने के लिए वॉल्यूम ब्रेकआउट के आधार पर सहायक निर्णय की शर्तें जोड़ें।
सर्वोत्तम फिट खोजने के लिए विभिन्न किस्मों में पैरामीटर सेटिंग्स में अंतर का मूल्यांकन करें।
मोमेंटम बर्स्ट ट्रैकिंग रणनीति समग्र रूप से एक बहुत ही व्यावहारिक ट्रेंड ट्रैकिंग रणनीति है। यह ब्रेकआउट रणनीतियों में नुकसान और लाभ लेने को प्रभावी ढंग से रोकने में असमर्थता की समस्या को हल करती है, जबकि अभी भी रुझानों को पकड़ते समय जोखिमों को अच्छी तरह से नियंत्रित करती है। अनुकूलन और मशीन लर्निंग की शुरुआत करके आगे सुधार के लिए जगह के साथ, यह गहन शोध और अनुप्रयोग के लायक है।
/*backtest start: 2023-03-01 00:00:00 end: 2023-12-10 05:20: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/ // © doks23 //@version=5 strategy(title = "SD:Momentum Burst", overlay=true, initial_capital=1000,commission_value = 0,slippage = 0,process_orders_on_close=true) //Check Vol checkVol = input.bool(defval=false,title="IncludeAvgVolume?") volSMAlength = input(50, title="VolumeLength") volumeSma = ta.sma(volume, volSMAlength) highvolume = volume >= volumeSma volumeCond=checkVol?highvolume:true // Profit and Loss trailPercent = input.float(title="Trail%", defval=3, step=0.1) //longCondition PercentThreshold=input.float(3.8,'BreakoutPercent', step=0.1) MaxThreshold=input.float(10,'Max Breakout', step=0.1) HighCloseRatio=input.float(70,'Close to High Ratio', step=1) float candleCloseBull = ((close[0] - open[0]) / (high[0] - open[0]) * 100) float isFourPercentBull = (((close[0] - close[1]) / close[1]) * 100) LongCond=volume > volume[1] and isFourPercentBull > PercentThreshold and candleCloseBull > HighCloseRatio and isFourPercentBull<MaxThreshold barcolor(color=(LongCond?color.yellow: na),title='BObar') longCondition= LongCond and volumeCond and close>ta.sma(close,200) and open>ta.sma(close,200) //Input Strategy DateCheck= input.bool(title = 'Custom Date Range?', defval=true,group = 'Strategy') FromDate= input(defval = timestamp("1 Jan 2019 00:00"),group = 'Strategy') ToDate =input(defval = timestamp("31 Dec 2023 00:00"),group = 'Strategy') PostionSize =input.string('Contract','Select Position Size',options = ['Percent of Equity','Contract'],group = 'Strategy') ContractQty =input.int(1,'No of Contract',group = 'Strategy') //Backtesting Date Range TimeWindow=true // Number of Contract var int trade_qty=na if(PostionSize=='Contract') trade_qty:=ContractQty else trade_qty:= (strategy.equity>strategy.initial_capital)?math.floor(strategy.equity/strategy.initial_capital):ContractQty //Position Buy BuyTriggerPrice = ta.valuewhen(longCondition,high,0) //Trailing price var float trailPrice = na float percentMulti = (100 - trailPercent) / 100 longCondition2=longCondition and TimeWindow if longCondition2 strategy.entry("Long", strategy.long,qty=trade_qty,stop = BuyTriggerPrice) trailPrice := close*percentMulti if strategy.position_size>0 trailPrice := math.max(close*percentMulti,trailPrice[1]) if low <= trailPrice strategy.exit('Exit','Long',stop = trailPrice) if strategy.position_size==0 trailPrice:=na // Plot Strategy var float trail_long_SL=na if strategy.position_size>0 trail_long_SL:=trailPrice else trail_long_SL:=na //Strategy Plot PlotMA=input.bool(title="Plot MA?", defval=false) plot(PlotMA?ta.sma(close,10):na,color = color.red,title = '10MA') plot(PlotMA?ta.sma(close,21):na,color = color.white,title = '21MA') plot(PlotMA?ta.sma(close,200):na,color = color.orange,title = '200MA') // plot(trail_long_SL,color = color.gray,style = plot.style_steplinebr,linewidth = 1)