यह रणनीति ट्रेलिंग स्टॉप (टीएस) के लिए आधार के रूप में औसत सच्ची रेंज (एटीआर) का उपयोग करती है, गतिशील रूप से स्टॉप-लॉस स्थिति को ट्रेंड का पालन करने के लिए समायोजित करती है। जब कीमत अनुकूल दिशा में आगे बढ़ती है, तो स्टॉप-लॉस स्थिति को मुनाफे में लॉक करने के लिए तदनुसार समायोजित किया जाता है; जब कीमत प्रतिकूल दिशा में आगे बढ़ती है, तो स्टॉप-लॉस स्थिति अपरिवर्तित रहती है, और एक बार कीमत स्टॉप-लॉस मूल्य तक पहुंच जाती है, तो स्थिति बंद हो जाती है। इस रणनीति की कुंजी स्टॉप-लॉस स्थिति के गतिशील समायोजन में निहित है, जो लाभों की रक्षा कर सकती है और ट्रेंड जारी रहने के साथ लाभ का विस्तार करने की अनुमति दे सकती है।
एटीआर ट्रेलिंग स्टॉप रणनीति गतिशील रूप से मूल्य उतार-चढ़ाव की परिमाण के आधार पर स्टॉप-लॉस स्थिति को समायोजित कर सकती है और ट्रेंडिंग बाजारों में अच्छे परिणाम प्राप्त कर सकती है। हालांकि, इस रणनीति में अशांत बाजारों से निपटने में असमर्थता, अत्यधिक स्टॉप-लॉस आवृत्ति और गैप खुलने से बचने में कठिनाई जैसे जोखिम भी हैं। इन कमियों को दूर करने के लिए, रणनीति को अनुकूलित और अनुकूलित किया जा सकता है और प्रवृत्ति निर्णय, लाभ लेने की रणनीतियों और अधिकतम स्टॉप-लॉस सीमाओं के संदर्भ में सुधार किया जा सकता है। इन समायोजनों के साथ, रणनीति की अनुकूलन क्षमता और लाभप्रदता को बढ़ाया जा सकता है।
/*backtest start: 2024-04-01 00:00:00 end: 2024-04-30 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Long TAP", overlay=true) // Constants keyValueDefault = 3.0 keyValueStep = 0.5 atrPeriodDefault = 10 // Inputs keyValue = input.float(keyValueDefault, title="Key Value") atrPeriod = input.int(atrPeriodDefault, title="ATR Period") // Calculations xATR = ta.atr(atrPeriod) nLoss = keyValue * xATR // Trailing Stop Calculation var float xATRTrailingStop = 0.0 xATRTrailingStop := ta.highest(math.max(nz(xATRTrailingStop[1], 0), close - nLoss), 1) xATRTrailingStop := ta.lowest(math.min(nz(xATRTrailingStop, 0), close + nLoss), 1) // Position Calculation var int pos = 0 pos := nz(pos[1], 0) if (close[1] < nz(xATRTrailingStop, 0) and close > nz(xATRTrailingStop, 0)) pos := 1 else if (close[1] > nz(xATRTrailingStop, 0) and close < nz(xATRTrailingStop, 0)) pos := -1 // Plotting Trailing Stop var color xcolor = na if (pos == -1) xcolor := color.red else if (pos == 1) xcolor := color.green plot(xATRTrailingStop, color=xcolor, title="Trailing Stop") // Buy/Sell Signals buySignal = ta.crossover(close, xATRTrailingStop) sellSignal = ta.crossunder(close, xATRTrailingStop) // Strategy if (buySignal) strategy.entry("Long", strategy.long) label.new(bar_index, xATRTrailingStop, text="Buy Signal", color=color.green, style=label.style_label_up, yloc=yloc.belowbar) if (sellSignal) strategy.entry("Short", strategy.short) label.new(bar_index, xATRTrailingStop, text="Sell Signal", color=color.red, style=label.style_label_down, yloc=yloc.abovebar) // Alerts alertcondition(buySignal, title='UT BOT Buy', message='UT BOT Buy') alertcondition(sellSignal, title='UT BOT Sell', message='UT BOT Sell')