इस रणनीति में ओवरबॉट और ओवरसोल्ड संकेतों की पहचान करने के लिए आरएसआई संकेतक, मूल्य ब्रेकआउट निर्धारित करने के लिए बोलिंगर बैंड और लाभ के लिए विभिन्न रुझान चरणों में बाजार का न्याय करने के लिए चलती औसत क्रॉसओवर का उपयोग शामिल है।
इस रणनीति में निम्नलिखित मुख्य संकेतक शामिल हैंः
आरएसआई संकेतक: जब आरएसआई रेखा ओवरबॉट थ्रेशोल्ड से पार हो जाती है या ओवरसोल्ड थ्रेशोल्ड से नीचे जाती है, तो इसके अनुसार लॉन्ग या शॉर्ट ट्रेड किए जाते हैं।
बोलिंगर बैंड्स: जब कीमत बोलिंगर के ऊपरी बैंड को तोड़ती है, तो एक शॉर्ट ट्रेड किया जाता है; जब कीमत बोलिंगर के निचले बैंड को तोड़ती है, तो एक लंबी ट्रेड की जाती है।
मूविंग एवरेजः एक निश्चित अवधि (जैसे 5 अवधि) के दौरान उच्चतम और निम्नतम कीमतों की गणना की जाती है। जब कीमत पिछले 5 अवधि के दौरान उच्चतम बिंदु से अधिक होती है, तो एक लंबा व्यापार किया जाता है; जब कीमत पिछले 5 अवधि के दौरान सबसे कम बिंदु से कम होती है, तो एक छोटा व्यापार किया जाता है।
एमएसीडीः फास्ट लाइन, स्लो लाइन और एमएसीडी लाइन के क्रॉसओवर और डेथ क्रॉस का उपयोग सहायक निर्णय संकेतकों के रूप में किया जाता है।
ये संकेतक प्रवृत्ति और समेकन के चरणों में बाजार का न्याय करने के लिए एक साथ काम करते हैं। बोलिंगर बैंड्स ब्रेकआउट और अर्थ में प्रतिगमन की पहचान करते हैं। चलती औसत समेकन के दौरान प्रवृत्ति उलट बिंदु निर्धारित करते हैं। आरएसआई चरम विरोधी प्रवृत्ति ट्रेडों के लिए ओवरबॉट / ओवरसोल्ड बाजार स्थितियों को स्पॉट करते हैं।
इस रणनीति के लाभ इस प्रकार हैंः
कई संकेतकों का संयोजन सटीकता में सुधार करता है। आरएसआई, बोलिंगर बैंड, चलती औसत और अधिक विश्वसनीय व्यापार संकेतों का उत्पादन करने के लिए बातचीत करते हैं।
विभिन्न बाजार स्थितियों पर लागू होता है। रुझानों के लिए बोलिंगर बैंड, समेकन के लिए चलती औसत, चरम के लिए आरएसआई। लचीलापन सुनिश्चित किया जाता है।
उचित व्यापारिक आवृत्ति। अत्यधिक व्यापार से बचने के लिए सूचक मापदंडों को सावधानीपूर्वक निर्धारित किया गया है।
साफ कोड संरचना. समझने, संपादित करने और निर्माण करने में आसान।
कुछ जोखिमों पर ध्यान देने की आवश्यकता हैः
पैरामीटर जोखिम. अनुचित संकेतक मापदंडों गलत व्यापार संकेत उत्पन्न कर सकते हैं. मापदंडों निरंतर परीक्षण और अनुकूलन की जरूरत है.
लंबी/छोटी स्विच जोखिम. रुझान उलटने के आसपास लंबी/छोटी स्थिति में लगातार परिवर्तन होने से ट्रेडिंग लागत बढ़ जाती है. होल्डिंग अवधि को समायोजित किया जा सकता है.
कोडिंग जोखिम. कोड में छिपे तर्क संबंधी दोष असामान्य लेनदेन का कारण बन सकते हैं. अपवाद हैंडलिंग और लॉगिंग में सुधार किया जाना चाहिए।
इस रणनीति को निम्नलिखित पहलुओं में उन्नत किया जा सकता हैः
मुनाफे को लॉक करने और नुकसान को कम करने के लिए स्टॉप लॉस जोड़ें।
झूठे संकेतों से बचने के लिए ट्रेडिंग वॉल्यूम को शामिल करें। उदाहरण के लिए बोलिंगर ब्रेकआउट पर चेक वॉल्यूम।
ऐतिहासिक आंकड़ों के आधार पर इष्टतम मापदंडों को खोजने के लिए मशीन लर्निंग का परिचय दें।
प्रदर्शन के सहज प्रदर्शन के लिए ग्राफिकल इंटरफ़ेस बनाएं।
सर्वोत्तम पैरामीटर संयोजन खोजने के लिए बैकटेस्टिंग करें।
यह रणनीति चलती औसत, बोलिंगर बैंड, आरएसआई और अधिक को व्यापार संकेत उत्पन्न करने के लिए जोड़ती है। इसकी बहुमुखी प्रतिभा और सटीकता स्पष्ट ताकत हैं, जबकि पैरामीटर सेटिंग और कोडिंग जोखिमों को प्रबंधित करने की आवश्यकता है। अगले चरणों में स्टॉप, पैरामीटर अनुकूलन के लिए मशीन लर्निंग, निगरानी के लिए जीयूआई जोड़ना और अपवाद हैंडलिंग में सुधार करना है।
/*backtest start: 2024-01-19 00:00:00 end: 2024-02-15 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("MD strategy", overlay=true) lengthrsi = input( 14 ) overSold = input( 30 ) overBought = input( 70 ) price = close source = close lengthbb = input(20, minval=1) mult = input(2.0, minval=0.001, maxval=50) direction = input(0, title = "Strategy Direction",minval=-1, maxval=1) fastLength = input(12) slowlength = input(26) MACDLength = input(9) consecutiveBarsUp = input(3) consecutiveBarsDown = input(3) lengthch = input( minval=1, maxval=1000, defval=5) upBound = highest(high, lengthch) downBound = lowest(low, lengthch) ups = price > price[1] ? nz(ups[1]) + 1 : 0 dns = price < price[1] ? nz(dns[1]) + 1 : 0 MACD = ema(close, fastLength) - ema(close, slowlength) aMACD = ema(MACD, MACDLength) delta = MACD - aMACD strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long)) basis = sma(source, lengthbb) dev = mult * stdev(source, lengthbb) upper = basis + dev lower = basis - dev vrsi = rsi(price, lengthrsi) if (not na(vrsi)) if (crossover(vrsi, overSold)) strategy.entry("RsiLE", strategy.long, comment="RsiLE") if (crossunder(vrsi, overBought)) strategy.entry("RsiSE", strategy.short, comment="RsiSE") if (crossover(source, lower)) strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", comment="BBandLE") else strategy.cancel(id="BBandLE") if (crossunder(source, upper)) strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", comment="BBandSE") else strategy.cancel(id="BBandSE") if (not na(close[lengthch])) strategy.entry("ChBrkLE", strategy.long, stop=upBound + syminfo.mintick, comment="ChBrkLE") strategy.entry("ChBrkSE", strategy.short, stop=downBound - syminfo.mintick, comment="ChBrkSE") //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)