यह रणनीति ई-मिनी एस एंड पी 500 वायदा (ईएस) पर लागू एक ट्रेलिंग स्टॉप रणनीति है। यह एक संदर्भ के रूप में 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)