
इस रणनीति का उपयोग औसत वास्तविक तरंगों का उपयोग करता है (एटीआर) के रूप में ट्रैक करने के लिए एक स्टॉप-लॉस (टीएस) के आधार के रूप में, गतिशील रूप से स्टॉप-लॉस स्थिति को समायोजित करके ट्रेंड को ट्रैक करने के उद्देश्य को प्राप्त करने के लिए। जब कीमत अनुकूल दिशा में चलती है, तो स्टॉप-लॉस स्थिति भी समायोजित होती है, जिससे प्राप्त मुनाफे को लॉक किया जाता है; जब कीमत प्रतिकूल दिशा में चलती है, तो स्टॉप-लॉस स्थिति अपरिवर्तित रहती है, और एक बार जब कीमत स्टॉप-लॉस मूल्य को छूती है, तो स्टॉप-लॉस स्थिति को समतल कर देती है। इस रणनीति की कुंजी स्टॉप-लॉस स्थिति के गतिशील समायोजन में है, जो पहले से किए गए मुनाफे को संरक्षित करने के साथ-साथ ट्रेंड के साथ लगातार विस्तार करने की अनुमति देती है।
एटीआर ट्रैकिंग स्टॉप रणनीति मूल्य उतार-चढ़ाव की चौड़ाई के आधार पर स्टॉप पोजीशन को गतिशील रूप से समायोजित करने में सक्षम है, जो ट्रेंडिंग में अच्छा प्रभाव डाल सकती है। हालांकि, यह रणनीति भी है जो अस्थिर बाजार, बहुत लगातार स्टॉप और कठिन से बचने के लिए उछाल के अंतर जैसे जोखिमों का सामना करने में असमर्थ है। ऊपर बताई गई कमियों के लिए, रणनीति को ट्रेंडिंग, स्टॉप रणनीति, अधिकतम स्टॉप सीमा आदि के संदर्भ में अनुकूलित और सुधार किया जा सकता है। इन समायोजनों के माध्यम से, रणनीति की अनुकूलता और लाभप्रदता को बढ़ाने की उम्मीद है।
/*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')