यह रणनीति दो संकेतकों, एटीआर (औसत सच्ची सीमा) और ईएमए (अक्षीय चलती औसत) का उपयोग करती है, ताकि बाजार की अस्थिरता के अनुकूल होने के लिए गतिशील रूप से लाभ लेने और स्टॉप लॉस स्तरों को समायोजित किया जा सके। रणनीति का मुख्य विचार बाजार की अस्थिरता को मापने और अस्थिरता की परिमाण के आधार पर लाभ लेने और स्टॉप लॉस स्तरों को निर्धारित करने के लिए एटीआर संकेतक का उपयोग करना है। साथ ही, ईएमए संकेतक का उपयोग ट्रेडिंग दिशा निर्धारित करने के लिए किया जाता है। जब कीमत ईएमए से ऊपर टूटती है, तो एक लंबी स्थिति खोली जाती है, और जब कीमत ईएमए से नीचे टूटती है, तो एक छोटी स्थिति खोली जाती है। यह रणनीति स्वचालित रूप से लाभ लेने और बाजार की अस्थिरता में परिवर्तन के अनुसार स्टॉप लॉस स्तरों को समायोजित कर सकती है, जिससे गतिशील जोखिम नियंत्रण का उद्देश्य प्राप्त होता है।
यह रणनीति एटीआर और ईएमए संकेतकों का उपयोग बाजार की अस्थिरता में परिवर्तन के अनुकूल लाभ और स्टॉप लॉस स्तरों को गतिशील रूप से समायोजित करने के लिए करती है, जबकि ईएमए संकेतक का उपयोग ट्रेडिंग दिशा निर्धारित करने के लिए किया जाता है। रणनीति में मजबूत अनुकूलन क्षमता और प्रवृत्ति-अनुसरण क्षमताएं हैं, लेकिन पैरामीटर सेटिंग्स, दोलन बाजारों और प्रवृत्ति उलटों में कुछ जोखिमों का सामना कर सकती है। भविष्य में, अधिक तकनीकी संकेतकों को पेश करके, लाभ लेने और स्टॉप लॉस एल्गोरिदम को अनुकूलित करके, पैरामीटर अनुकूलन, और स्थिति प्रबंधन मॉड्यूल जोड़कर रणनीति के प्रदर्शन में सुधार किया जा सकता है।
/*backtest start: 2024-04-27 00:00:00 end: 2024-05-27 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}] */ //@version=5 strategy(title='UT MB&SS Bot', overlay=true) // Inputs a = input(1, title='Key Value. \'This changes the sensitivity\'') c = input(10, title='ATR Period') h = input(false, title='Signals from Heikin Ashi Candles') stoploss = input(2.0, title='Stop Loss (ATR Multiples)') xATR = ta.atr(c) nLoss = a * xATR src = h ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close, lookahead=barmerge.lookahead_off) : close var xATR_trailing_stop = 0.0 iff_1 = src > nz(xATR_trailing_stop[1], 0) ? src - nLoss : src + nLoss iff_2 = src < nz(xATR_trailing_stop[1], 0) and src[1] < nz(xATR_trailing_stop[1], 0) ? math.min(nz(xATR_trailing_stop[1]), src + nLoss) : iff_1 xATR_trailing_stop := src > nz(xATR_trailing_stop[1], 0) and src[1] > nz(xATR_trailing_stop[1], 0) ? math.max(nz(xATR_trailing_stop[1]), src - nLoss) : iff_2 pos = 0 iff_3 = src[1] > nz(xATR_trailing_stop[1], 0) and src < nz(xATR_trailing_stop[1], 0) ? -1 : nz(pos[1], 0) pos := src[1] < nz(xATR_trailing_stop[1], 0) and src > nz(xATR_trailing_stop[1], 0) ? 1 : iff_3 xcolor = pos == -1 ? color.red : pos == 1 ? color.green : color.blue ema = ta.ema(src, 1) above = ta.crossover(ema, xATR_trailing_stop) below = ta.crossover(xATR_trailing_stop, ema) buy = src > xATR_trailing_stop and above sell = src < xATR_trailing_stop and below barbuy = src > xATR_trailing_stop barsell = src < xATR_trailing_stop plotshape(buy, title='Buy', text='Buy', style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), textcolor=color.new(color.white, 0), size=size.tiny) plotshape(sell, title='Sell', text='Sell', style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), textcolor=color.new(color.white, 0), size=size.tiny) barcolor(barbuy ? color.green : na) barcolor(barsell ? color.red : na) stop_level = pos == 1 ? xATR_trailing_stop - stoploss * xATR : xATR_trailing_stop + stoploss * xATR stop_level := math.max(stop_level, nz(stop_level[1])) if pos == 1 strategy.exit('Exit Long', 'UT Long', stop=stop_level) else if pos == -1 strategy.exit('Exit Short', 'UT Short', stop=stop_level) if buy strategy.entry("Enter Long", strategy.long) else if sell strategy.entry("Enter Short", strategy.short)