यह रणनीति बाजार के रुझानों का न्याय करने के लिए बोलिंगर बैंड्स, आरएसआई, एडीएक्स, एमएसीडी जैसे कई संकेतकों को अपनाती है और इसमें प्रवृत्ति पहचान की मजबूत क्षमता होती है। यह एक ही समय में सूचक संकेत तेजी से होने पर प्रवृत्ति के बाद रणनीति लेती है। यह सूचक संकेत एक ही समय में मंदी होने पर हानि रोकने के लिए पदों को बंद करती है।
कई संकेतकों के संयोजन के माध्यम से, यह मूल्य रुझानों की सटीक पहचान कर सकता है और अत्यधिक रिटर्न प्राप्त करने के लिए ट्रेंड होने पर उन्हें समय पर ट्रैक कर सकता है।
इस रणनीति का सबसे बड़ा लाभ यह है कि सूचक संयोजन का आकलन अधिक व्यापक और सटीक होता है, जिससे मूल्य रुझानों की प्रभावी ढंग से पहचान की जा सकती है और एकल संकेतकों के कारण होने वाले झूठे संकेतों से बचा जा सकता है।
विशेष रूप से, लाभ निम्नलिखित हैंः
सूचक संयोजन निर्णय के माध्यम से, यह झूठे संकेतों को अधिकतम कर सकता है और रणनीति की स्थिरता बढ़ा सकता है।
इस रणनीति के मुख्य जोखिम निम्नलिखित से आते हैंः
जोखिम 1 के लिए, कई संकेतकों पर निर्भरता एकल संकेतकों की विफलता की समस्या को कुछ हद तक कम कर सकती है, लेकिन जोखिम प्रबंधन तंत्र में अभी भी सुधार की आवश्यकता है।
जोखिम 2 के लिए मापदंडों को संकीर्ण ट्रेडिंग रेंज के लिए उचित रूप से समायोजित किया जा सकता है और जोखिम को कम करने के लिए ट्रेडिंग आवृत्ति को कम किया जा सकता है।
इस रणनीति के मुख्य अनुकूलन योग्य पहलुओं में निम्नलिखित शामिल हैंः
निरंतर अनुकूलन के द्वारा, लगातार पैरामीटर की मजबूती में सुधार और झूठे संकेतों की संभावनाओं को कम करें।
कुल मिलाकर इस रणनीति में सूचक संयोजन के माध्यम से प्रवृत्ति संकेतों की पहचान करने की अपेक्षाकृत मजबूत क्षमता है जो प्रभावी रूप से मूल्य प्रवृत्तियों की पहचान कर सकती है।
लेकिन इसमें कुछ जोखिम भी हैं, स्थिर दीर्घकालिक संचालन के लिए जोखिम प्रबंधन और पैरामीटर अनुकूलन में लगातार सुधार करने की आवश्यकता है। यदि पैरामीटर के स्वतः अनुकूलन को प्राप्त करने के लिए मशीन लर्निंग जैसे तरीकों को बाद में पेश किया जा सकता है, तो यह रणनीति की मजबूती और लाभप्रदता में काफी वृद्धि करेगा।
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 00:00:00 period: 5h basePeriod: 15m 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/ // © abilash.s.90 dIMinusCalc(adxLen) => smoothedTrueRange = 0.0 smoothedDirectionalMovementMinus = 0.0 dIMinus = 0.0 trueRange = 0.0 directionalMovementMinus = 0.0 trueRange := max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1]))) directionalMovementMinus := nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0 smoothedTrueRange := nz(smoothedTrueRange[1]) - (nz(smoothedTrueRange[1])/adxLen) + trueRange smoothedDirectionalMovementMinus := nz(smoothedDirectionalMovementMinus[1]) - (nz(smoothedDirectionalMovementMinus[1])/adxLen) + directionalMovementMinus dIMinus := smoothedDirectionalMovementMinus / smoothedTrueRange * 100 dIMinus dIPlusCalc(adxLen) => smoothedTrueRange = 0.0 smoothedDirectionalMovementPlus = 0.0 dIPlus = 0.0 trueRange = 0.0 directionalMovementPlus = 0.0 trueRange := max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1]))) directionalMovementPlus := high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0 smoothedTrueRange := nz(smoothedTrueRange[1]) - (nz(smoothedTrueRange[1])/adxLen) + trueRange smoothedDirectionalMovementPlus := nz(smoothedDirectionalMovementPlus[1]) - (nz(smoothedDirectionalMovementPlus[1])/adxLen) + directionalMovementPlus dIPlus := smoothedDirectionalMovementPlus / smoothedTrueRange * 100 dIPlus Adx(adxLen) => dIPlus = 0.0 dIMinus = 0.0 dX = 0.0 aDX = 0.0 dIPlus := dIPlusCalc(adxLen) dIMinus := dIMinusCalc(adxLen) dX := abs(dIPlus-dIMinus) / (dIPlus+dIMinus)*100 aDX := sma(dX, adxLen) aDX BarInSession(sess) => time(timeframe.period, sess) != 0 //@version=4 strategy("Bollinger Band + RSI + ADX + MACD", overlay=true) //Session session = input(title="Trading Session", type=input.session, defval="0930-1500") sessionColor = BarInSession(session) ? color.green : na bgcolor(color=sessionColor, transp=95) // Bollinger Bands src = input(high, title="Bollinger Band Source", type=input.source) length = input(3, minval=1, type=input.integer, title="Bollinger Band Length") mult = input(4.989, minval=0.001, maxval=50, step=0.001, type=input.float, title="Bollinger Band Std Dev") basis = sma(src, length) dev = mult * stdev(src, length) upper = basis + dev lower = basis - dev plot(upper, title="Bollinger Band Upper", color=color.red) plot(lower, title="Bollinger Band Lower", color=color.green) // RSI rsiSrc = input(close, title="RSI Source", type=input.source) rsiLength = input(16, minval=1, type=input.integer, title="RSI Length") rsiComparator = input(39.2, title="RSI Comparator", type=input.float, step=0.1) rsi = rsi(rsiSrc, rsiLength) // ADX adxLength = input(14, minval=1, type=input.integer, title="ADX Length") adxComparator = input(14, minval=1, type=input.integer, title="ADX Comparator") adx = Adx(adxLength) // Heikinashi haClose = security(heikinashi(syminfo.ticker), timeframe.period, close) haOpen = security(heikinashi(syminfo.ticker), timeframe.period, open) nextHaOpen = (haOpen + haClose) / 2 //MACD macdCalcTypeProcessed = input(title="MACD Source", type=input.source, defval=high) fast = input(12, title="MACD Fast") slow = input(20, title="MACD Slow") signalLen = input(15, title="MACD Signal") fastMA = ema(macdCalcTypeProcessed, fast) slowMA = ema(macdCalcTypeProcessed, slow) macd = fastMA - slowMA signal = sma(macd, signalLen) longCondition() => (low < lower) and (rsi[0] > rsiComparator) and (adx > adxComparator) and (close > nextHaOpen) and BarInSession(session) and macd > signal stop = (close - max((low - (low * 0.0022)), (close - (close * 0.0032)))) / syminfo.mintick target = (max(upper, (close + (close * 0.0075))) - close) / syminfo.mintick strategy.entry("SX,LE", strategy.long, when=longCondition(), comment="SX,LE") strategy.close_all(when=(not BarInSession(session))) strategy.exit("LX", from_entry="SX,LE", profit=target, loss=stop)