यह रणनीति एटीआर संकेतक के साथ डिजाइन किए गए गतिशील ट्रेलिंग स्टॉप लॉस तंत्र पर आधारित है ताकि वास्तविक समय में स्टॉप लॉस को समायोजित किया जा सके और लाभ को अधिकतम करने के लिए प्रभावी स्टॉप लॉस सुनिश्चित किया जा सके।
यह रणनीति दो-स्तर गतिशील ट्रेलिंग स्टॉप लॉस बनाने के लिए तेज एटीआर अवधि 5 और धीमी एटीआर अवधि 10 का उपयोग करती है। जब कीमत अनुकूल दिशा में चलती है, तो तेज परत स्टॉप लॉस को कसने के लिए पहले ट्रेलिंग स्टॉप को सक्रिय करेगी; जब एक अल्पकालिक पुलबैक होता है, तो धीमी परत स्टॉप लॉस समय से पहले स्टॉप आउट से बच सकता है। इस बीच, तेज और धीमी परतों के बीच क्रॉसओवर ट्रेडिंग सिग्नल के रूप में कार्य करता है।
विशेष रूप से, तेज परत की स्टॉप लॉस दूरी 5 अवधि एटीआर का 0.5 गुना है, और धीमी परत की स्टॉप लॉस दूरी 10 अवधि एटीआर का 3 गुना है। एक खरीद संकेत तब उत्पन्न होता है जब तेज परत धीमी परत के ऊपर टूटती है, और एक बिक्री संकेत तब उत्पन्न होता है जब तेज परत धीमी परत के नीचे टूटती है। स्टॉप लॉस लाइन को भी वास्तविक समय में अपडेट किया जाता है और मूल्य वक्र के नीचे प्लॉट किया जाता है।
इस रणनीति का सबसे बड़ा लाभ यह है कि यह प्रभावी स्टॉप लॉस की गारंटी देते हुए लाभ को अधिकतम करने के लिए स्टॉप लॉस स्थिति को गतिशील रूप से समायोजित कर सकता है। फिक्स्ड स्टॉप लॉस दूरी की तुलना में, गतिशील एटीआर स्टॉप लॉस लाइन स्टॉप लॉस की संभावना को कम करने के लिए बाजार के उतार-चढ़ाव के आधार पर समायोजन कर सकती है।
इसके अतिरिक्त, दो-परत एटीआर डिजाइन स्टॉप लॉस की संवेदनशीलता को संतुलित करता है। तेज परत जल्दी प्रतिक्रिया करती है और धीमी परत समय से पहले स्टॉप लॉस से बचने के लिए अल्पकालिक शोर को फ़िल्टर कर सकती है।
इस रणनीति का मुख्य जोखिम यह है कि क्या स्टॉप लॉस की दूरी उचित है। यदि एटीआर गुणक को बहुत अधिक सेट किया जाता है, तो स्टॉप लॉस रेंज मूल्य आंदोलन के साथ नहीं चलेगी। यदि एटीआर गुणक बहुत छोटा है, तो यह अल्पकालिक शोर से बंद हो सकता है। इसलिए, मापदंडों को विभिन्न किस्मों की विशेषताओं के अनुसार समायोजित करने की आवश्यकता है।
इसके अतिरिक्त, एक रेंज-बाउंड बाजार में, एटीआर मूल्य छोटा होता है और स्टॉप लॉस लाइन करीब होती है, जिससे अक्सर स्टॉप लॉस हो सकता है। इसलिए, यह रणनीति कुछ अस्थिरता वाली किस्मों के लिए अधिक उपयुक्त है।
इष्टतम संतुलन खोजने के लिए एटीआर चक्र मापदंडों के विभिन्न संयोजनों का प्रयास किया जा सकता है। यह एटीआर गुणक के आकार को गतिशील रूप से समायोजित करने के लिए बाजार के चरण का न्याय करने के लिए अन्य संकेतकों, जैसे प्रवृत्ति संकेतकों के साथ संयोजन पर भी विचार कर सकता है।
एटीआर संकेतक के विकल्पों का अध्ययन करना भी संभव है, एटीआर को डीकेवीओएल, एचआरएएनजीई या एटीआर प्रतिशत आदि से बदलकर बेहतर स्टॉप लॉस प्रभाव प्राप्त किया जा सकता है।
यह रणनीति एटीआर संकेतक के आधार पर लाभ को अधिकतम करने के लिए एक दो-परत गतिशील ट्रेलिंग तंत्र को डिजाइन करती है जबकि अत्यधिक स्टॉप लॉस से बचती है। यह उन उपयोगकर्ताओं के लिए उपयुक्त है जिनके पास स्टॉप लॉस के लिए अधिक आवश्यकताएं हैं। यह रणनीति इष्टतम स्टॉप लॉस प्रभाव प्राप्त करने के लिए बाजार और किस्म की विशेषताओं के अनुसार मापदंडों को लचीले ढंग से समायोजित कर सकती है।
/*backtest start: 2022-12-04 00:00:00 end: 2023-12-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("ATR Trailing Stop Strategy by ceyhun", overlay=true) /////////notes//////////////////////////////////////// // This is based on the ATR trailing stop indicator // // width addition of two levels of stops and // // different interpretation. // // This is a fast-reacting system and is better // // suited for higher volatility markets // ////////////////////////////////////////////////////// SC = input(close, "Source", input.source) // Fast Trail // AP1 = input(5, "Fast ATR period", input.integer) // ATR Period AF1 = input(0.5, "Fast ATR multiplier", input.float) // ATR Factor SL1 = AF1 * atr(AP1) // Stop Loss Trail1 = 0.0 Trail1 := iff(SC > nz(Trail1[1], 0) and SC[1] > nz(Trail1[1], 0), max(nz(Trail1[1], 0), SC - SL1), iff(SC < nz(Trail1[1], 0) and SC[1] < nz(Trail1[1], 0), min(nz(Trail1[1], 0), SC + SL1), iff(SC > nz(Trail1[1], 0), SC - SL1, SC + SL1))) // Slow Trail // AP2 = input(10, "Slow ATR period", input.integer) // ATR Period AF2 = input(3, "Slow ATR multiplier", input.float) // ATR Factor SL2 = AF2 * atr(AP2) // Stop Loss Trail2 = 0.0 Trail2 := iff(SC > nz(Trail2[1], 0) and SC[1] > nz(Trail2[1], 0), max(nz(Trail2[1], 0), SC - SL2), iff(SC < nz(Trail2[1], 0) and SC[1] < nz(Trail2[1], 0), min(nz(Trail2[1], 0), SC + SL2), iff(SC > nz(Trail2[1], 0), SC - SL2, SC + SL2))) // Bar color for trade signal // Green = Trail1 > Trail2 and close > Trail2 and low > Trail2 Blue = Trail1 > Trail2 and close > Trail2 and low < Trail2 Red = Trail2 > Trail1 and close < Trail2 and high < Trail2 Yellow = Trail2 > Trail1 and close < Trail2 and high > Trail2 // Signals // Bull = barssince(Green) < barssince(Red) Buy = crossover(Trail1, Trail2) Sell = crossunder(Trail1, Trail2) TS1 = plot(Trail1, "Fast Trail", style=plot.style_line, color=Trail1 > Trail2 ? color.blue : color.yellow, linewidth=2, display=display.none) TS2 = plot(Trail2, "Slow Trail", style=plot.style_line, color=Trail1 > Trail2 ? color.green : color.red, linewidth=2) fill(TS1, TS2, Bull ? color.new(color.green, 90) : color.new(color.red, 90)) plotcolor = input(true, "Paint color on chart", input.bool) bcl = iff(plotcolor == 1, Blue ? color.blue : Green ? color.lime : Yellow ? color.yellow : Red ? color.red : color.white, na) barcolor(bcl) if Buy strategy.entry("Buy", strategy.long, comment="Buy") if Sell strategy.close("Buy")