यूटी बॉट संकेतक आधारित एटीआर ट्रेलिंग स्टॉप रणनीति

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

img

अवलोकन

यह रणनीति क्वांटनोमाड द्वारा विकसित यूटी बॉट संकेतक पर आधारित है और इसमें एक ट्रेलिंग स्टॉप लॉस का विचार शामिल है। मूल कोड @Yo_adriiiiaan द्वारा लिखा गया था और @HPotter द्वारा संशोधित किया गया था। रणनीति का उपयोग LuxAlgo के स्मार्ट मनी कॉन्सेप्ट्स के साथ मिलकर किया जाएगा। वर्तमान में, रणनीति परीक्षण चरण में है।

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

इस रणनीति के मुख्य सिद्धांत इस प्रकार हैंः

  1. जब समापन मूल्य 50-अवधि के सरल चलती औसत से अधिक होता है, तो एक लंबा व्यापार दर्ज किया जाता है।
  2. लॉन्ग पोजीशन के लिए, एक ट्रेलिंग स्टॉप लॉस प्राइस सेट किया जाता है। ट्रेलिंग स्टॉप लॉस प्राइस वर्तमान क्लोजिंग प्राइस का 80% (1-20%) है। ट्रेलिंग स्टॉप लॉस प्राइस कीमतों के बढ़ने के साथ ऊपर की ओर बढ़ता है लेकिन नीचे नहीं जाता है, इस प्रकार मुनाफे की रक्षा करता है।
  3. शॉर्ट पोजीशन के लिए, एक ट्रेलिंग स्टॉप लॉस प्राइस भी सेट किया जाता है। ट्रेलिंग स्टॉप लॉस प्राइस वर्तमान क्लोजिंग प्राइस का 120% (1+20%) है। ट्रेलिंग स्टॉप लॉस प्राइस कीमतों के गिरने के साथ नीचे जाता है लेकिन ऊपर नहीं जाता है।
  4. एटीआर (औसत सच्ची सीमा) को ट्रेलिंग स्टॉप के लिए एक संदर्भ के रूप में उपयोग किया जाता है। एटीआर ट्रेलिंग स्टॉप मूल्य के लिए गणना विधि हैः जब ऊपर जाते हैं, तो पिछले एटीआर ट्रेलिंग स्टॉप मूल्य और (वर्तमान समापन मूल्य - एटीआर * कुंजी मूल्य) का बड़ा लें; जब नीचे जाते हैं, तो पिछले एटीआर ट्रेलिंग स्टॉप मूल्य और (वर्तमान समापन मूल्य + एटीआर * कुंजी मूल्य) का छोटा लें। कुंजी मूल्य एक उपयोगकर्ता-सेट पैरामीटर है जिसका उपयोग ट्रेलिंग स्टॉप की संवेदनशीलता को समायोजित करने के लिए किया जाता है।
  5. एटीआर ट्रेलिंग स्टॉप की कीमत के ब्रेकआउट के आधार पर, वर्तमान स्थिति की दिशा निर्धारित की जाती है। जब कीमत एटीआर ट्रेलिंग स्टॉप की कीमत से ऊपर टूट जाती है, तो एक लंबी स्थिति आयोजित की जाती है; जब कीमत एटीआर ट्रेलिंग स्टॉप की कीमत से नीचे टूटती है, तो एक छोटी स्थिति आयोजित की जाती है; अन्य मामलों में, वर्तमान स्थिति की स्थिति अपरिवर्तित रहती है।

लाभ विश्लेषण

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

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

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

अनुकूलन दिशा

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

सारांश

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

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


/*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")

अधिक