ए.टी.आर. रणनीति का अनुसरण करने वाला रुझान

लेखक:चाओझांग, दिनांकः 2023-09-21 15:13:47
टैगः

अवलोकन

यह रणनीति मूल्य प्रवृत्तियों को पकड़ने के लिए औसत सच्ची सीमा (एटीआर) का उपयोग करती है और प्रवृत्ति का अनुसरण करने के लिए एटीआर के आधार पर स्टॉप सेट करती है।

यह कैसे काम करता है

  1. एटीआर मूल्य की गणना करें।

  2. एटीआर के आधार पर स्टॉप लॉस स्तर निर्धारित करें।

  3. जब मूल्य ब्रेक स्टॉप स्तर दर्ज करें।

  4. गतिशील रूप से स्टॉप को समायोजित करके मुनाफे को लॉक करें।

लाभ

  • एटीआर स्वचालित रूप से रुके को समायोजित करता है, कोई मैनुअल हस्तक्षेप की आवश्यकता नहीं है
  • सरल और सहज तर्क, लागू करने में आसान
  • फंसने से बचने में मदद करता है, समय पर स्टॉप लॉस
  • सवारी के रुझानों से लाभ
  • एटीआर मापदंडों के माध्यम से नियंत्रित व्यापार आवृत्ति

जोखिम

  • खराब एटीआर मापदंडों के कारण स्टॉप बहुत ढीला या तंग हो सकता है
  • प्रवृत्ति अंत को प्रभावी ढंग से पहचानने में असमर्थ
  • कुछ समय का विलंब मौजूद है
  • वापसी से मुनाफा कम हो सकता है

अनुकूलन दिशाएँ

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

निष्कर्ष

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


/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

strategy(title="ATR Strategy", overlay = true,  commission_type=strategy.commission.percent,commission_value=0.075)
//credits to HPotter for the orginal code
nATRPeriod = input(5)
nATRMultip = input(3.5)
xATR = ta.atr(nATRPeriod)
nLoss = nATRMultip * xATR
xATRTrailingStop = iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), math.max(nz(xATRTrailingStop[1]), close - nLoss),
                    iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), math.min(nz(xATRTrailingStop[1]), close + nLoss), 
                        iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss)))
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 ? color.red: pos == 1 ? color.green : color.blue 
plot(xATRTrailingStop, color=color, title="ATR Trailing Stop")

barbuy = close > xATRTrailingStop 
barsell = close < xATRTrailingStop 

strategy.entry("Long", strategy.long, when = barbuy) 
strategy.entry("Short", strategy.short, when = barsell) 

barcolor(barbuy? color.green:color.red)



अधिक