
यह रणनीति E-mini S&P500 वायदा (ES) पर लागू एक अनुवर्ती रोक रणनीति है। यह 10 दिन के एटीआर को संदर्भ के रूप में उपयोग करता है और 3 गुना एटीआर को रोक सीमा के रूप में सेट करता है। यह रणनीति एटीआर लाइन की दिशा में बदलाव के माध्यम से प्रवृत्ति का आकलन करती है और प्रवृत्ति में बदलाव के बिंदु पर प्रवेश संकेत उत्पन्न करती है। एक बार प्रवेश करने के बाद, यह वास्तविक समय में स्टॉप लाइन को समायोजित करता है, जिससे स्टॉप लाइन कीमत के साथ चलती है और लाभप्रदता की रक्षा करती है।
इस रणनीति में hl2 को मूल्य स्रोत के रूप में उपयोग किया गया है। पहले 10 दिन के एटीआर की गणना की जाती है और उपयोगकर्ता को एसएमए या अंतर्निहित एटीआर फ़ंक्शन का उपयोग करके एटीआर की गणना करने का विकल्प दिया जाता है। एटीआर की गणना करने के बाद, एटीआर के 3 गुना को रेंज के रूप में ऊपर और नीचे जोड़ें। इन दो रेंज लाइनों को स्टॉप लॉस लाइन कहा जाता है।
प्रवृत्ति का न्याय करने का तरीका यह है कि जब कीमत ऊपरी सीमा से अधिक हो जाती है, तो यह ओवरहेड होती है; जब कीमत निचली सीमा से नीचे गिरती है, तो यह ओवरहेड होती है। जब कीमत फिर से रेंज में वापस आती है, तो प्रवृत्ति को बदलने की पुष्टि की जाती है। इस समय यदि ओवरहेड, तो ओवरहेड प्रवेश संकेत उत्पन्न करें; यदि ओवरहेड, तो ओवरहेड प्रवेश संकेत उत्पन्न करें।
प्रवेश के बाद, मल्टीहेड स्टॉप लाइन को ऊपरी सीमा के नीचे 1 बिंदु के रूप में सेट किया गया है, और खाली हेड स्टॉप लाइन को निचले सीमा के ऊपर 1 बिंदु के रूप में सेट किया गया है, जो लाभप्रद अनुवर्ती सुरक्षा के लिए है।
इस रणनीति के लिए समग्र एक अधिक सार्वभौमिक प्रवृत्ति ट्रैकिंग रणनीति है. यह रोक सीमा निर्धारित करने की समस्या को हल करता है, एटीआर गतिशील समायोजन के माध्यम से जोखिम को कम कर दिया है. साथ ही रोक के नुकसान के बाद मुनाफे की रक्षा के लिए. लेकिन एटीआर पैरामीटर, रोकथाम एल्गोरिथ्म और अन्य अभी भी अनुकूलन के लिए जगह है. आगे परीक्षण और पैरामीटर को समायोजित करके, इस रणनीति को एक उच्च रबड़ता ट्रैकिंग रोकथाम रणनीति बन सकती है.
/*backtest
start: 2023-01-05 00:00:00
end: 2024-01-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("ATR Based Trailing Stop Strategy on ES! [v4]", overlay=true)
// Given ATR study
Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR = input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
atr2 = sma(tr, Periods)
atr = changeATR ? atr(Periods) : atr2
up = src - (Multiplier * atr)
up1 = nz(up[1], up)
up := close[1] > up1 ? max(up, up1) : up
dn = src + (Multiplier * atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
// Entry logic based on trend change
longCondition = trend == 1 and trend[1] == -1
shortCondition = trend == -1 and trend[1] == 1
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Trailing stop loss logic
// For long positions, trail 1 point below the up plot
longStopPrice = up - 1
// For short positions, trail 1 point above the dn plot
shortStopPrice = dn + 1
strategy.exit("Trailing Stop Long", "Long", trail_offset=longStopPrice)
strategy.exit("Trailing Stop Short", "Short", trail_offset=shortStopPrice)