इस रणनीति का उद्देश्य अस्थिरता कम होने और उच्च होने पर संपत्ति खरीदने के बीच अंतर का अध्ययन करना है। यह उपयोगकर्ता को मोड इनपुट चर को बदलकर कम या उच्च अस्थिरता अवधि के दौरान खरीदने का विकल्प चुनने की अनुमति देता है।
यह रणनीति एटीआर और इसके एसएमए की गणना करके अस्थिरता निर्धारित करती है। विशेष रूप से, यह एटीआर के एसएमए की गणना करता है, और फिर एटीआर और इसके एसएमए के बीच अनुपात की गणना करता है। यदि यह अनुपात उपयोगकर्ता द्वारा परिभाषित सीमा अस्थिरता लक्ष्य अनुपात से अधिक है, तो अस्थिरता को उच्च माना जाता है। यदि सीमा से कम है, तो अस्थिरता को कम माना जाता है।
उपयोगकर्ता द्वारा चुने गए मोड के आधार पर, जब अस्थिरता उच्च या कम होती है तो रणनीति खरीद संकेत उत्पन्न करती है। एक बार खरीदी जाने के बाद, रणनीति sellAfterNBarsLength द्वारा परिभाषित कई बार के लिए चलेगी, और फिर स्थिति को बंद कर देगी।
इस रणनीति के मुख्य लाभ इस प्रकार हैंः
इस रणनीति के मुख्य जोखिम निम्नलिखित हैंः
उपरोक्त जोखिमों को मापदंडों को समायोजित करके और विभिन्न अस्थिरता स्तरों से खरीद को जोड़कर कम किया जा सकता है।
इस रणनीति को निम्नलिखित तरीकों से और अधिक अनुकूलित किया जा सकता हैः
यह रणनीति कम अस्थिरता खरीदने और उच्च अस्थिरता खरीदने की रणनीतियों के प्रदर्शन की प्रभावी ढंग से तुलना कर सकती है। यह एटीआर को चिकना करने के लिए एसएमए का उपयोग करता है और अस्थिरता स्तरों के आधार पर ट्रेडिंग सिग्नल उत्पन्न करता है। पैरामीटर ट्यूनिंग और अनुकूलन स्थितियों के माध्यम से रणनीति में सुधार किया जा सकता है। कुल मिलाकर, यह रणनीति अस्थिरता-आधारित रणनीतियों पर शोध के लिए एक प्रभावी उपकरण प्रदान करती है।
/*backtest start: 2023-01-01 00:00:00 end: 2024-01-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © I11L //@version=5 strategy("I11L - Better Buy Low Volatility or High Volatility?", overlay=false) mode = input.string("Buy low Volatility",options = ["Buy low Volatility","Buy high Volatility"]) volatilityTargetRatio = input.float(1,minval = 0, maxval = 100,step=0.1, tooltip="1 equals the average atr for the security, a lower value means that the volatility is lower") atrLength = input.int(14) atr = ta.atr(atrLength) / close avg_atr = ta.sma(atr,atrLength*5) ratio = atr / avg_atr sellAfterNBarsLength = input.int(5, step=5, minval=0) var holdingBarsCounter = 0 if(strategy.opentrades > 0) holdingBarsCounter := holdingBarsCounter + 1 isBuy = false if(mode == "Buy low Volatility") isBuy := ratio < volatilityTargetRatio else isBuy := ratio > volatilityTargetRatio isClose = holdingBarsCounter > sellAfterNBarsLength if(isBuy) strategy.entry("Buy",strategy.long) if(isClose) holdingBarsCounter := 0 strategy.exit("Close",limit=close) plot(ratio, color=isBuy[1] ? color.green : isClose[1] ? color.red : color.white) plot(1, color=color.white)