गतिशील स्टॉप लॉस ट्रेलिंग ट्रेडिंग रणनीति


निर्माण तिथि: 2023-10-09 16:59:57 अंत में संशोधित करें: 2023-10-09 16:59:57
कॉपी: 0 क्लिक्स: 1199
1
ध्यान केंद्रित करना
1702
समर्थक

अवलोकन

यह रणनीति औसत वास्तविक तरंगों (ATR) के आधार पर गतिशील स्टॉपलॉस लाइन सेट करती है, स्टॉक की कीमतों में बदलाव को ट्रैक करती है और स्टॉपलॉस सुरक्षा प्राप्त करते हुए अधिकतम लाभ को लॉक करती है।

रणनीति सिद्धांत

इस रणनीति को मुख्य रूप से निम्नलिखित चरणों के माध्यम से लागू किया गया हैः

  1. एटीआर सूचकांक की गणना करने के लिए, एटीआर अवधि nATRPeriod पैरामीटर द्वारा सेट की जाती है, डिफ़ॉल्ट रूप से 5;

  2. एटीआर मूल्य के आधार पर गणना की गई रोकथाम लाइन, रोकथाम आयाम nATRMultip पैरामीटर द्वारा सेट किया गया है, जो एटीआर का 3.5 गुना है;

  3. जब शेयर की कीमत बढ़ जाती है, तो स्टॉप-लॉस लाइन को शेयर की कीमत से घटाकर स्टॉप-लॉस मार्जिन तक बढ़ाया जाता है यदि यह पूर्व की स्टॉप-लॉस लाइन से अधिक है; जब शेयर की कीमत गिरती है, तो स्टॉप-लॉस लाइन को शेयर की कीमत से घटाकर स्टॉप-लॉस मार्जिन तक घटाया जाता है यदि यह पूर्व की स्टॉप-लॉस लाइन से कम है;

  4. यह निर्धारित करने के लिए कि क्या शेयरों की कीमतें स्टॉप-लॉस लाइन को तोड़ती हैं, जो कि खरीदने या बेचने का संकेत देता है;

  5. स्टॉप लाइन को तोड़ने के संकेत के अनुसार, अधिक या खाली स्थिति में प्रवेश करें, और स्टॉप लाइन को फिर से छूने पर स्थिति को खाली करें।

स्टॉक की कीमत में वृद्धि के दौरान, स्टॉप-लॉस लाइन लगातार ऊपर की ओर जाती है, जिससे मुनाफा बंद हो जाता है; जब स्टॉक की कीमत में गिरावट आती है, तो स्टॉप-लॉस लाइन लगातार नीचे की ओर जाती है, जिससे स्टॉप-लॉस होता है। एटीआर सूचक स्टॉक की कीमत में उतार-चढ़ाव की डिग्री को अधिक सटीक रूप से दर्शाता है। एटीआर गतिशीलता के अनुसार स्टॉप-लॉस लाइन को समायोजित करें, जिससे स्टॉप-लॉस को अत्यधिक उग्र या रूढ़िवादी होने से बचा जा सके।

श्रेष्ठता विश्लेषण

  • स्टॉप लॉस को गतिशील रूप से समायोजित करें, समय पर स्टॉप करें, नुकसान को बढ़ाने से बचें
  • स्टॉप लाइन समायोजन चिकनी है, समय से पहले स्टॉप से बचें
  • एटीआर सूचकांक का उपयोग करके नवीनतम उतार-चढ़ाव को प्रतिबिंबित करने के लिए अधिक उचित स्टॉप लॉस की गणना करें
  • स्टॉप-लॉस लाइन को ट्रैक करना, लाभ को अच्छी तरह से लॉक करना

जोखिम विश्लेषण

  • एटीआर संकेतक पैरामीटर को सावधानी से सेट करना आवश्यक है, एटीआर चक्र बहुत कम होने से स्टॉप-लॉस लाइन में बहुत अधिक उतार-चढ़ाव हो सकता है, और बहुत लंबा समय पर मूल्य उतार-चढ़ाव को प्रतिबिंबित नहीं कर सकता है
  • स्टॉप लॉस पैमाना पैरामीटर को विशिष्ट स्टॉक उतार-चढ़ाव के आधार पर सेट करने की आवश्यकता होती है, बहुत बड़ा या बहुत छोटा रणनीति के प्रभाव को प्रभावित करेगा
  • स्टॉप को ट्रैक करने से मुनाफे की संभावना कम हो सकती है और स्टॉक की कीमतें फिर से बढ़ने से पहले बंद हो जाती हैं
  • उच्च व्यापारिक लागत के साथ बार-बार स्थिति में बदलाव

पैरामीटर अनुकूलन के माध्यम से, एटीआर चक्र पैरामीटर और रोकथाम आयाम को समायोजित करके, रोकथाम और ट्रैकिंग को संतुलित करने के लिए सबसे अच्छा पैरामीटर संयोजन ढूंढें। अनावश्यक रोकथाम को कम करने के लिए अन्य तकनीकी संकेतकों के साथ-साथ समय पर प्रवेश फ़िल्टर भी किया जा सकता है।

अनुकूलन दिशा

  • एटीआर चक्र पैरामीटर को अनुकूलित करें ताकि स्टॉप-लॉस लाइन में परिवर्तन मूल्य उतार-चढ़ाव के करीब हो
  • स्टॉप लॉस को अधिक उचित बनाने के लिए स्टॉप लॉस आयाम पैरामीटर का अनुकूलन करें
  • फ़िल्टर के समय के लिए अन्य मापदंड जोड़ें
  • केवल जब शेयरों की कीमतें स्पष्ट रूप से ऊपर की ओर जा रही हों, तब ही अधिक पदों पर जाएं
  • शेयरों के बढ़ते रहने की उम्मीद के बाद बंद होने से बचने के लिए फिर से प्रवेश तंत्र में शामिल होने पर विचार करें

संक्षेप

यह रणनीति गतिशील रूप से एटीआर स्टॉप लाइन को समायोजित करने की विधि के माध्यम से, होल्डिंग प्रक्रिया में स्टॉप और प्रॉफिट लॉक को प्राप्त करती है। स्टॉक मूल्य में उतार-चढ़ाव के लिए बेहतर अनुकूलन, फिक्स्ड स्टॉप पोजीशन की तुलना में, बहुत अधिक कट्टरपंथी या रूढ़िवादी स्टॉप को रोकने से बचने के लिए। एटीआर सूचकांक स्टॉप लाइन को समायोजित करने के लिए अधिक लक्षित बनाता है। लेकिन पैरामीटर सेटिंग और फिर से प्रवेश रणनीति को और अधिक अनुकूलित करने की आवश्यकता है, ताकि अनावश्यक स्टॉप को कम किया जा सके और लाभ के लिए जगह बढ़ाई जा सके। यह रणनीति समग्र रूप से एक बेहतर गतिशील स्टॉप ट्रैक विचारधारा है, जो आगे के अध्ययन और आवेदन के लायक है।

रणनीति स्रोत कोड
/*backtest
start: 2023-09-08 00:00:00
end: 2023-10-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//@okadoke
////////////////////////////////////////////////////////////
// Based on Average True Range Trailing Stops Strategy by HPotter
// Average True Range Trailing Stops Strategy, by Sylvain Vervoort 
// The related article is copyrighted material from Stocks & Commodities Jun 2009 
////////////////////////////////////////////////////////////
strategy(title="ATR Trailing Stops Strategy", shorttitle="ATRTSS", overlay = true, 
  initial_capital=100000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type="percent", commission_value=0.0)
  
nATRPeriod      = input(5, "ATR Period")
nATRMultip      = input(3.5, "ATR Multiplier")
useShorts       = input(false, "Test w/Shorts?")
daysBackMax     = input(defval = 360, title = "Max Days Back to Test", minval = 0)
daysBackMin     = input(defval = 0, title = "Min Days Back to Test", minval = 0)
msBackMax       = 1000 * 60 * 60 * 24 * daysBackMax
msBackMin       = 1000 * 60 * 60 * 24 * daysBackMin

xATR = atr(nATRPeriod)
nLoss = nATRMultip * xATR
xATRTrailingStop = na
xATRTrailingStop := 
 iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), close - nLoss),
  iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), close + nLoss), 
   iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss))) 
                       
pos = na 
pos := 
 iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1, 
  iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0)))
        
color = pos == -1 ? red: pos == 1 ? green : blue 
plot(xATRTrailingStop, color=color, title="ATR Trailing Stop")

isWithinTimeBounds = (msBackMax == 0 or (time > (timenow - msBackMax))) and (msBackMin == 0 or (time < (timenow - msBackMin)))

buy     = crossover(close, xATRTrailingStop)
sell    = crossunder(close, xATRTrailingStop)

strategy.entry("LONG", long=true, when=buy and isWithinTimeBounds)
strategy.close("LONG", when=sell and isWithinTimeBounds)
strategy.entry("SHORT", long=false, when=useShorts and sell and isWithinTimeBounds)
strategy.close("SHORT", when=useShorts and buy and isWithinTimeBounds)