
यह एटीआर (औसत वास्तविक रेंज) सूचक पर आधारित एक प्रवृत्ति-अनुवर्ती रणनीति है, जिसमें गतिशील स्टॉप और औसत क्रॉस-लाइन सिग्नल शामिल हैं। यह रणनीति एटीआर की गणना करके बाजार की अस्थिरता को निर्धारित करती है और इस जानकारी का उपयोग करके गतिशील ट्रैक स्टॉप-लाइन स्थापित करती है। जब कीमतें ईएमए (एएमए) इंडेक्स के साथ एटीआर ट्रैक स्टॉप-लाइन को तोड़ती हैं, तो ट्रेडिंग सिग्नल उत्पन्न होती हैं। रणनीति में लचीलापन बढ़ाने के लिए, रणनीति को सामान्य के-लाइन या पीएसके-लाइन के साथ गणना करने का विकल्प भी प्रदान किया जाता है।
इस रणनीति का मूल तर्क निम्नलिखित प्रमुख गणनाओं पर आधारित हैः
यह एक पूर्ण ट्रेडिंग रणनीति है जिसमें गतिशील ट्रैक स्टॉप लॉस और एक समान लाइन प्रणाली शामिल है। एटीआर संकेतक के माध्यम से बाजार में उतार-चढ़ाव के लक्षणों को पकड़ने के लिए, एक समान लाइन क्रॉसिंग का उपयोग करके व्यापार संकेत प्रदान करने के लिए, एक तार्किक रूप से सख्त ट्रेडिंग प्रणाली बनाने के लिए। रणनीति की ताकत इसकी गतिशील अनुकूलन क्षमता और जोखिम नियंत्रण क्षमता में है, लेकिन यह भी ध्यान देने की आवश्यकता है कि यह क्षैतिज बाजार में कैसे काम करता है। अनुशंसित अनुकूलन दिशा के साथ, रणनीति के लिए और अधिक उन्नति के लिए जगह है।
/*backtest
start: 2024-05-15 00:00:00
end: 2024-08-08 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy(title="UT Bot Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Inputs
a = input.float(1, title="Key Value. 'This changes the sensitivity'")
c = input.int(10, title="ATR Period")
h = input.bool(false, title="Signals from Heikin Ashi Candles")
// Calculate ATR
xATR = ta.atr(c)
nLoss = a * xATR
// Source for calculations
src = h ? request.security(syminfo.tickerid, timeframe.period, hlc3) : close
// ATR Trailing Stop logic
var float xATRTrailingStop = na
if (not na(xATRTrailingStop[1]) and src > xATRTrailingStop[1] and src[1] > xATRTrailingStop[1])
xATRTrailingStop := math.max(xATRTrailingStop[1], src - nLoss)
else if (not na(xATRTrailingStop[1]) and src < xATRTrailingStop[1] and src[1] < xATRTrailingStop[1])
xATRTrailingStop := math.min(xATRTrailingStop[1], src + nLoss)
else
xATRTrailingStop := src > xATRTrailingStop[1] ? src - nLoss : src + nLoss
// Position logic
var int pos = 0
if (not na(xATRTrailingStop[1]) and src[1] < xATRTrailingStop[1] and src > xATRTrailingStop[1])
pos := 1
else if (not na(xATRTrailingStop[1]) and src[1] > xATRTrailingStop[1] and src < xATRTrailingStop[1])
pos := -1
else
pos := pos[1]
xcolor = pos == -1 ? color.red : pos == 1 ? color.green : color.blue
// Entry and Exit Signals
ema = ta.ema(src, 1)
above = ta.crossover(ema, xATRTrailingStop)
below = ta.crossover(xATRTrailingStop, ema)
buy = src > xATRTrailingStop and above
sell = src < xATRTrailingStop and below
// Strategy Execution
if (buy)
strategy.entry("UT Long", strategy.long)
if (sell)
strategy.entry("UT Short", strategy.short)
// Plotting and Alerts
plotshape(buy, title="Buy", text='Buy', style=shape.labelup, location=location.belowbar, color=color.green, textcolor=color.white, size=size.tiny)
plotshape(sell, title="Sell", text='Sell', style=shape.labeldown, location=location.abovebar, color=color.red, textcolor=color.white, size=size.tiny)
barcolor(src > xATRTrailingStop ? color.green : src < xATRTrailingStop ? color.red : na)
alertcondition(buy, title="UT Long", message="UT Long")
alertcondition(sell, title="UT Short", message="UT Short")