यह रणनीति मूल्य प्रवृत्तियों को पकड़ने के लिए औसत सच्ची सीमा (एटीआर) का उपयोग करती है और प्रवृत्ति का अनुसरण करने के लिए एटीआर के आधार पर स्टॉप सेट करती है।
एटीआर मूल्य की गणना करें।
एटीआर के आधार पर स्टॉप लॉस स्तर निर्धारित करें।
जब मूल्य ब्रेक स्टॉप स्तर दर्ज करें।
गतिशील रूप से स्टॉप को समायोजित करके मुनाफे को लॉक करें।
यह रणनीति प्रभावी रूप से एटीआर का उपयोग करके रुझानों को पकड़ती है और गतिशील स्टॉप के साथ मुनाफे में ताले लगाती है। ठीक ट्यूनिंग मापदंड प्रदर्शन में सुधार कर सकते हैं। लेकिन एटीआर देरी को पूरी तरह से समाप्त नहीं किया जा सकता है। कुल मिलाकर एक सरल और व्यावहारिक प्रवृत्ति निम्नलिखित समाधान।
/*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)