इस रणनीति का मुख्य विचार सुपर ट्रेंड इंडिकेटर और औसत दिशात्मक आंदोलन सूचकांक (एडीएक्स) को संयोजित करना है ताकि रुझानों का न्याय और ट्रैक किया जा सके। सुपर ट्रेंड इंडिकेटर का उपयोग वर्तमान मूल्य प्रवृत्ति दिशा की पहचान करने के लिए किया जाता है, और एडीएक्स का उपयोग प्रवृत्ति की ताकत निर्धारित करने के लिए किया जाता है। ट्रेड केवल मजबूत प्रवृत्ति स्थितियों के तहत किए जाते हैं। इसके अलावा, रणनीति पुष्टि के लिए कैंडलस्टिक बॉडी रंग, ट्रेडिंग वॉल्यूम और अन्य संकेतकों का भी उपयोग करती है, जिससे व्यापार नियमों का एक अपेक्षाकृत पूरा सेट बनता है।
कुल मिलाकर, यह रणनीति ट्रेंड ट्रैकिंग रणनीति से संबंधित है, जिसका उद्देश्य मध्य और दीर्घकालिक स्पष्ट रुझानों को पकड़ना है, जबकि समेकन और दोलन अवधि से हस्तक्षेप से बचना है।
मूल्य प्रवृत्ति दिशा निर्धारित करने के लिए सुपर प्रवृत्ति संकेतक का उपयोग करें। जब मूल्य सुपर प्रवृत्ति से ऊपर होता है तो यह एक लंबा संकेत होता है, और जब यह सुपर प्रवृत्ति से नीचे होता है तो यह एक छोटा संकेत होता है।
प्रवृत्ति की ताकत का आकलन करने के लिए ADX का प्रयोग करें। ट्रेडिंग सिग्नल तभी उत्पन्न होते हैं जब ADX सीमा से अधिक होता है, ताकि अस्पष्ट समेकन वाली अवधि को फ़िल्टर किया जा सके।
मोमबत्ती के शरीर के रंग का उपयोग यह निर्धारित करने के लिए किया जाता है कि क्या यह वर्तमान में ऊपर या नीचे के पैटर्न में है, पुष्टि बनाने के लिए सुपर ट्रेंड संकेतक के साथ संयुक्त है।
ट्रेडिंग वॉल्यूम का विस्तार एक पुष्टिकरण संकेत के रूप में कार्य करता है। ट्रेडिंग वॉल्यूम बढ़ने पर ही स्थिति स्थापित की जाती है।
मुनाफे को लॉक करने और जोखिमों को नियंत्रित करने के लिए स्टॉप लॉस और ले लाभ सेट करें।
निर्धारित दिन के अंत से पहले सभी पदों को बंद करें।
मध्यम और दीर्घकालिक स्पष्ट रुझानों का पता लगाएं, उतार-चढ़ाव से बचें और उच्च लाभप्रदता प्राप्त करें।
रणनीति में कुछ पैरामीटर हैं और इसे समझना और लागू करना आसान है।
स्टॉप लॉस और लाभ लेने के साथ जोखिमों को अच्छी तरह से नियंत्रित किया जाता है।
पुष्टिकरण के लिए कई संकेतकों का प्रयोग झूठे संकेतों को कम कर सकता है।
बड़े बाजारव्यापी सुधारों के दौरान बड़े नुकसान का सामना कर सकता है।
मौलिक तत्वों में परिवर्तन के कारण व्यक्तिगत शेयरों में तेज उतार-चढ़ाव हो सकता है।
प्रमुख नीतिगत परिवर्तनों से ब्लैक स्वान घटनाएं।
समाधान:
ADX मापदंडों को उचित रूप से समायोजित करें ताकि यह सुनिश्चित हो सके कि व्यापार केवल मजबूत रुझानों के तहत ही हो।
एकल हानि राशि को नियंत्रित करने के लिए स्टॉप लॉस प्रतिशत बढ़ाएँ।
नीतियों और महत्वपूर्ण घटनाओं की बारीकी से निगरानी करें, यदि आवश्यक हो तो सक्रिय रूप से घाटे में कटौती करें।
सुपर ट्रेंड मापदंडों के विभिन्न संयोजनों का परीक्षण करें जो सबसे स्थिर संकेत उत्पन्न करता है।
इष्टतम सेटिंग्स निर्धारित करने के लिए विभिन्न ADX पैरामीटर संयोजनों का परीक्षण करें।
झूठे संकेतों को और कम करने के लिए अस्थिरता और बोलिंगर बैंड जैसे अन्य पुष्टिकरण संकेतक जोड़ें।
ब्रेकआउट रणनीतियों के साथ संयोजन करें जब रुझान टूटते हैं तो समय पर घाटे में कटौती करें।
इस रणनीति का समग्र तर्क स्पष्ट है, मूल्य प्रवृत्ति की दिशा का न्याय करने के लिए सुपर प्रवृत्ति का उपयोग करना, प्रवृत्ति की ताकत निर्धारित करने के लिए एडीएक्स, और मजबूत रुझानों के साथ व्यापार करना। जोखिमों को नियंत्रित करने के लिए स्टॉप लॉस और ले लाभ सेट किए गए हैं। रणनीति में कुछ पैरामीटर हैं और अनुकूलित करना आसान है। यह सरल और प्रभावी प्रवृत्ति ट्रैकिंग रणनीतियों को सीखने के लिए एक अच्छे उदाहरण के रूप में कार्य कर सकता है। पैरामीटर अनुकूलन, सिग्नल फ़िल्टरिंग आदि के माध्यम से और सुधार किए जा सकते हैं।
/*backtest start: 2023-02-15 00:00:00 end: 2024-02-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Intraday Strategy Template // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © vikris //@version=4 strategy("[VJ]Hulk Smash Intra", overlay=true, calc_on_every_tick = false, pyramiding=0,default_qty_type=strategy.percent_of_equity, default_qty_value=100,initial_capital=2000) // ********** Strategy inputs - Start ********** // Used for intraday handling // Session value should be from market start to the time you want to square-off // your intraday strategy // Important: The end time should be at least 2 minutes before the intraday // square-off time set by your broker var i_marketSession = input(title="Market session", type=input.session, defval="0915-1455", confirm=true) // Make inputs that set the take profit % (optional) longProfitPerc = input(title="Long Take Profit (%)", type=input.float, minval=0.0, step=0.1, defval=1) * 0.01 shortProfitPerc = input(title="Short Take Profit (%)", type=input.float, minval=0.0, step=0.1, defval=1) * 0.01 // Set stop loss level with input options (optional) longLossPerc = input(title="Long Stop Loss (%)", type=input.float, minval=0.0, step=0.1, defval=0.5) * 0.01 shortLossPerc = input(title="Short Stop Loss (%)", type=input.float, minval=0.0, step=0.1, defval=0.5) * 0.01 var float i_multiplier = input(title = "ST Multiplier", type = input.float, defval = 2, step = 0.1, confirm=true) var int i_atrPeriod = input(title = "ST ATR Period", type = input.integer, defval = 10, confirm=true) len = input(title="ADX Length", type=input.integer, defval=14) th = input(title="ADX Threshold", type=input.integer, defval=20) adxval = input(title="ADX Momemtum Value", type=input.integer, defval=25) // ********** Strategy inputs - End ********** // ********** Supporting functions - Start ********** // A function to check whether the bar or period is in intraday session barInSession(sess) => time(timeframe.period, sess) != 0 // ********** Supporting functions - End ********** // ********** Strategy - Start ********** [superTrend, dir] = supertrend(i_multiplier, i_atrPeriod) colResistance = dir == 1 and dir == dir[1] ? color.new(color.red, 0) : color.new(color.red, 100) colSupport = dir == -1 and dir == dir[1] ? color.new(color.green, 0) : color.new(color.green, 100) // Super Trend Long/short condition stlong = close > superTrend stshort = close < superTrend // Figure out take profit price longExitPrice = strategy.position_avg_price * (1 + longProfitPerc) shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc) // Determine stop loss price longStopPrice = strategy.position_avg_price * (1 - longLossPerc) shortStopPrice = strategy.position_avg_price * (1 + shortLossPerc) //Vol Confirmation vol = volume > volume[1] //Candles colors greenCandle = (close > open) redCandle = (close < open) // See if intraday session is active bool intradaySession = barInSession(i_marketSession) // Trade only if intraday session is active 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 DirectionalMovementMinus = nz(low[1]) - low > high - nz(high[1]) ? max(nz(low[1]) - low, 0) : 0 SmoothedTrueRange = 0.0 SmoothedTrueRange := nz(SmoothedTrueRange[1]) - nz(SmoothedTrueRange[1]) / len + TrueRange SmoothedDirectionalMovementPlus = 0.0 SmoothedDirectionalMovementPlus := nz(SmoothedDirectionalMovementPlus[1]) - nz(SmoothedDirectionalMovementPlus[1]) / len + DirectionalMovementPlus SmoothedDirectionalMovementMinus = 0.0 SmoothedDirectionalMovementMinus := nz(SmoothedDirectionalMovementMinus[1]) - nz(SmoothedDirectionalMovementMinus[1]) / len + DirectionalMovementMinus DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100 DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100 DX = abs(DIPlus - DIMinus) / (DIPlus + DIMinus) * 100 ADX = sma(DX, len) // a = plot(DIPlus, color=color.green, title="DI+", transp=100) // b = plot(DIMinus, color=color.red, title="DI-", transp=100) //Final Long/Short Condition longCondition = stlong and redCandle and vol and ADX>adxval shortCondition = stshort and greenCandle and vol and ADX >adxval //Long Strategy - buy condition and exits with Take profit and SL if (longCondition and intradaySession) stop_level = longStopPrice profit_level = longExitPrice strategy.entry("My Long Entry Id", strategy.long) strategy.exit("TP/SL", "My Long Entry Id",stop=stop_level, limit=profit_level) //Short Strategy - sell condition and exits with Take profit and SL if (shortCondition and intradaySession) stop_level = shortStopPrice profit_level = shortExitPrice strategy.entry("My Short Entry Id", strategy.short) strategy.exit("TP/SL", "My Short Entry Id", stop=stop_level, limit=profit_level) // Square-off position (when session is over and position is open) squareOff = (not intradaySession) and (strategy.position_size != 0) strategy.close_all(when = squareOff, comment = "Square-off") // ********** Strategy - End **********