
इस रणनीति का उद्देश्य कम अस्थिरता और उच्च अस्थिरता के दौरान संपत्ति की खरीद के बीच अंतर का अध्ययन करना है। यह उपयोगकर्ताओं को कम अस्थिरता और उच्च अस्थिरता के दौरान खरीदने के लिए मोड इनपुट चर को बदलने की अनुमति देता है।
यह रणनीति एटीआर और इसके एसएमए की गणना करके अस्थिरता दर का निर्धारण करती है। विशेष रूप से, यह एटीआर के एसएमए की गणना करता है और फिर एटीआर और उसके एसएमए के अनुपात की गणना करता है। यदि यह अनुपात उपयोगकर्ता द्वारा परिभाषित थ्रेशोल्ड volatilityTargetRatio से अधिक है, तो अस्थिरता को उच्च माना जाता है; यदि यह थ्रेशोल्ड से कम है, तो अस्थिरता को कम माना जाता है।
उपयोगकर्ता द्वारा चुने गए मोड के आधार पर, रणनीति उच्च या कम उतार-चढ़ाव के साथ एक खरीद संकेत उत्पन्न करती है। एक बार खरीदी जाने के बाद, रणनीति एक निश्चित संख्या में बार रखती है (sellAfterNBarsLength द्वारा परिभाषित) और फिर बकाया है।
इस रणनीति के मुख्य लाभ निम्नलिखित हैं:
इस रणनीति के प्रमुख जोखिम इस प्रकार हैं:
इस जोखिम को मापदंडों को समायोजित करके और विभिन्न अस्थिरता स्तरों की खरीद के संयोजन के माध्यम से कम किया जा सकता है।
इस रणनीति को और भी बेहतर बनाया जा सकता हैः
यह रणनीति कम अस्थिरता और उच्च अस्थिरता खरीदने की रणनीति के प्रदर्शन को प्रभावी ढंग से तुलना कर सकती है। यह SMA को चिकना करने के लिए ATR का उपयोग करता है, जो अस्थिरता के स्तर के आधार पर एक व्यापारिक संकेत उत्पन्न करता है। इस रणनीति को पैरामीटर को समायोजित करने और अनुकूलन स्थितियों के माध्यम से सुधार किया जा सकता है। कुल मिलाकर, यह रणनीति अस्थिरता की रणनीति का अध्ययन करने के लिए एक प्रभावी उपकरण प्रदान करती है।
/*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)