एटीआर और एसएमए पर आधारित गतिशील ट्रेलिंग स्टॉप रणनीति

लेखक:चाओझांग, दिनांकः 2024-03-11 11:55:21
टैगः

img

अवलोकन

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

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

  1. 50-दिवसीय एसएमए की गणना करें। जब समापन मूल्य 50-दिवसीय एसएमए से अधिक हो, तो एक लंबी स्थिति खोलें।
  2. स्टॉप लॉस रेंज nLoss प्राप्त करने के लिए 10 की अवधि के साथ एटीआर संकेतक की गणना की जाती है, जिसे एक कुंजी मान से गुणा किया जाता है (डिफ़ॉल्ट 3 है) ।
  3. गतिशील स्टॉप लॉस मूल्य xATRTrailingStop की गणना करें, जिसका प्रारंभिक मान 0 है।
    • जब समापन मूल्य और पिछला समापन मूल्य दोनों पिछले स्टॉप लॉस मूल्य से अधिक होते हैं, तो नया स्टॉप लॉस मूल्य पिछले स्टॉप लॉस मूल्य और (समापन मूल्य - nLoss) से अधिक होता है।
    • जब समापन मूल्य और पिछला समापन मूल्य दोनों पिछले स्टॉप लॉस मूल्य से कम होते हैं, तो नया स्टॉप लॉस मूल्य पिछले स्टॉप लॉस मूल्य और (समापन मूल्य + nLoss) का छोटा होता है।
    • अन्य मामलों में, नया स्टॉप लॉस मूल्य (क्लोजिंग प्राइस - एनलॉस) या (क्लोजिंग प्राइस + एनलॉस) है।
  4. जब समापन मूल्य गतिशील स्टॉप लॉस मूल्य से नीचे गिरता है, तो स्थिति को बंद कर दें।
  5. स्टॉप लॉस पॉइंट अलग-अलग रंगों में चिह्नित होते हैंः लंबे स्टॉप लॉस के लिए हरा, छोटे स्टॉप लॉस के लिए लाल और अन्य मामलों के लिए नीला।

लाभ विश्लेषण

  1. गतिशील स्टॉप लॉस तंत्र लाभ की रक्षा कर सकता है और ट्रेंड बाजारों में ड्रॉडाउन जोखिम को कम कर सकता है। फिक्स्ड स्टॉप लॉस की तुलना में गतिशील स्टॉप लॉस अधिक लचीला है और विभिन्न बाजार स्थितियों के अनुकूल हो सकता है।
  2. स्टॉप लॉस रेंज की गणना एटीआर संकेतक के आधार पर की जाती है। एटीआर बाजार की अस्थिरता के आकार को अच्छी तरह से दर्शा सकता है, इसलिए स्टॉप लॉस दूरी हाल की बाजार स्थितियों की अस्थिरता के अनुसार स्वचालित रूप से समायोजित होगी। यह अस्थिरता बढ़ने पर स्टॉप लॉस स्पेस को बढ़ाता है और अस्थिरता घटने पर स्टॉप लॉस स्पेस को कम करता है।
  3. एसएमए को रुझान आकलन के आधार के रूप में उपयोग करना अपेक्षाकृत स्पष्ट रुझान बाजारों को पकड़ सकता है। एसएमए से ऊपर लंबी स्थिति खोलने से रुझान के शुरुआती चरणों में हस्तक्षेप किया जा सकता है और अधिक लाभ के लिए लक्ष्य बनाया जा सकता है।
  4. उपयोगकर्ताओं को एटीआर अवधि और प्रमुख मूल्य मापदंडों को निर्धारित करने की अनुमति देता है, जो विभिन्न किस्मों और चक्रों की विशेषताओं के अनुकूल रणनीति मापदंडों को लचीले ढंग से समायोजित कर सकते हैं।

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

  1. अस्पष्ट या अस्थिर बाजारों में, यह रणनीति अक्सर पदों को खोलने और बंद करने का अनुभव कर सकती है, जिससे लेन-देन की लागत बढ़ जाती है और लाभ कम हो जाता है।
  2. इस रणनीति का केवल लंबा तर्क है और यह एकतरफा बाजार के जोखिम का सामना करते हुए, एक गिरावट की प्रवृत्ति में लाभ नहीं उठा सकता है। द्विदिश व्यापार प्राप्त करने के लिए लघु तर्क जोड़ने पर विचार करें।
  3. स्टॉप लॉस बिंदु एटीआर गणना पर आधारित है। जब बाजार में भारी उतार-चढ़ाव होता है, तो स्टॉप लॉस स्पेस बहुत बड़ा हो सकता है, जिससे जोखिम बढ़ जाता है। एक एकल लेनदेन के अधिकतम नुकसान को नियंत्रित करने के लिए अधिकतम स्टॉप लॉस रेंज निर्धारित करने पर विचार करें।
  4. अनुचित पैरामीटर चयन से रणनीति विफल हो सकती है। उदाहरण के लिए, यदि एटीआर अवधि बहुत छोटी है, तो इससे अतिसंवेदनशील स्टॉप लॉस और लगातार ट्रिगर हो सकते हैं; यदि यह बहुत बड़ा है, तो यह समय पर नुकसान को नहीं रोक सकता है और नुकसान को बढ़ा सकता है।

अनुकूलन दिशा

  1. नीचे के रुझानों में लाभ के लिए शॉर्ट लॉजिक जोड़ें और रणनीति की अनुकूलन क्षमता में सुधार करें। जब कीमत एसएमए से नीचे गिरती है तो आप शॉर्ट पोजीशन खोल सकते हैं, और गतिशील स्टॉप लॉस लॉजिक का भी उपयोग कर सकते हैं।
  2. रुझान की ताकत के अनुसार स्थिति के आकार को समायोजित करने के लिए लंबी और छोटी स्थिति प्रबंधन की शुरूआत करें। रुझान मजबूत होने पर रिटर्न बढ़ाने के लिए पदों को बढ़ाएं; जोखिम को नियंत्रित करने के लिए रुझान कमजोर होने पर पदों को कम करें।
  3. स्टॉप लॉस लॉजिक को अनुकूलित करें और चरम स्थितियों में अत्यधिक नुकसान को रोकने के लिए अधिकतम स्टॉप लॉस रेंज सेट करें। साथ ही, स्टॉप लॉस ट्रिगर होने तक इसे रखने के बजाय अपेक्षित रिटर्न तक पहुंचने पर सक्रिय रूप से स्थिति को बंद करने के लिए लाभ लेने का बिंदु निर्धारित करने पर विचार करें।
  4. सर्वोत्तम पैरामीटर सेटिंग्स खोजने के लिए विभिन्न पैरामीटर संयोजनों को पार करके मापदंडों का अनुकूलन करें। अनुकूलन दक्षता में सुधार के लिए आनुवंशिक एल्गोरिदम जैसे बुद्धिमान अनुकूलन विधियों का उपयोग किया जा सकता है।
  5. ट्रेडिंग वॉल्यूम और अस्थिरता संकेतकों जैसे अधिक फ़िल्टरिंग शर्तों को जोड़ने पर विचार करें, ताकि रुझानों और जोखिमों का बेहतर आकलन किया जा सके और संकेतों की विश्वसनीयता में सुधार किया जा सके।

सारांश

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


/*backtest
start: 2023-03-05 00:00:00
end: 2024-03-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Trailingstop", overlay=true)

if close > sma(close, 50)
    strategy.entry("long", strategy.long)

// Trailing stop loss for long positions
Trailperc = 0.20
price_stop_long = 0.0

if (strategy.position_size > 0)
    stopValue = close * (1 - Trailperc)
    price_stop_long := max(stopValue, price_stop_long[1])
else
    price_stop_long := 0

if (strategy.position_size > 0)
    strategy.exit(id="stoploss_long", stop=price_stop_long)

// Trailing stop loss for short positions
Trailperc_short = 0.20
price_stop_short = 0.0

if (strategy.position_size < 0)
    stopValue_short = close * (1 + Trailperc_short)
    price_stop_short := min(stopValue_short, price_stop_short[1])
else
    price_stop_short := 0

if (strategy.position_size < 0)
    strategy.exit(id="stoploss_short", stop=price_stop_short)

// ATR Trailing Stop for visualization
keyvalue = input(3, title="Key Value. 'This changes the sensitivity'", step=0.5)
atrperiod = input(10, title="ATR Period")
xATR = atr(atrperiod)
nLoss = keyvalue * xATR

xATRTrailingStop = 0.0
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 = 0  
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)))

xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue

plot(xATRTrailingStop, color = xcolor, title = "Trailing Stop")

अधिक