इस रणनीति के आधार पर कीमतों के इतिहास में उतार-चढ़ाव के क्षेत्र के लिए व्यापार के संकेतों का निर्धारण. यह उच्चतम और निम्नतम कीमतों के बीच एक निश्चित अवधि के लिए अंतर की गणना की और एक चलती औसत के माध्यम से उतार-चढ़ाव के क्षेत्र के गठन. जब कीमतों के इस क्षेत्र के ऊपर और नीचे ट्रैक को तोड़ने, व्यापार के संकेत पैदा करता है.
इस रणनीति का केंद्रीय संकेतक मूल्य की ऐतिहासिक उतार-चढ़ाव दर है। इसकी गणना निम्नानुसार की जाती हैः
पिछले एन रूट बार के उच्चतम और निम्नतम मूल्य के बीच का अंतर ज्ञात करें, जिसे एचएल के रूप में लिखा गया है
पिछले N रूट Bar के उच्चतम और निम्नतम मूल्यों का औसत (avg ((H, L))
उतार-चढ़ाव दर = एचएल / avg (एच, एल)
जिसमें N “Volatility Length” पैरामीटर है.
और फिर, यह गतिशीलता के साथ, हम नीचे और ऊपर की ओर गणना करते हैंः
अपट्रेल = वर्तमान क्लोज़ + वर्तमान क्लोज़ * अस्थिरता दर
निचला ट्रैक = वर्तमान बंद - वर्तमान बंद * अस्थिरता दर
ऊपर और नीचे के रेल को WMA के माध्यम से समतल किया जाता है, जिसका पैरामीटर “Average Length” है।
जब कीमत ऊपर जाती है, तो अधिक करें; जब कीमत नीचे जाती है, तो कम करें।
“Exit Type” पैरामीटर के आधार पर समस्थानिक सिग्नल दिया गया हैः
जब Exit Type Volatility MA होता है, तो कीमत WMA के औसत स्तर के स्तर को तोड़ देती है;
जब Exit Type Range Crossover होता है, तो कीमतें ऊपर और नीचे की पटरी को तोड़ देती हैं।
निम्नलिखित उपायों से जोखिम को कम किया जा सकता हैः
इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
विभिन्न लंबाई मापदंडों का परीक्षण करके सबसे अच्छा संयोजन ढूंढें।
उदाहरण के लिए, यदि MACD एक ही समय में गोल्डफ़ॉर्क करता है, तो कीमतों में वृद्धि होने पर प्रवेश करने के लिए अधिक किया जाता है।
एक सरल अंतराल ब्रेकआउट के बजाय एक लचीला ट्रैक स्टॉप के रूप में अनुकूलित किया जा सकता है।
यदि रुझान जारी रहता है, तो रुझान को फिर से ट्रैक करने के लिए रुझान को रोकने के बाद फिर से प्रवेश की शर्तें निर्धारित की जा सकती हैं।
बाजार में उतार-चढ़ाव के आधार पर गतिशील रूप से व्यापार स्थिति को समायोजित करें।
इस रणनीति के लिए आम तौर पर प्रवृत्ति के लिए उपयुक्त है, प्रवृत्ति की दिशा और ताकत को उतार-चढ़ाव पर ट्रैक और डाउनट्रैक के माध्यम से आकलन करने के लिए, और WMA औसत के साथ मिलकर एक अधिक विश्वसनीय व्यापार क्षेत्र बनाने के लिए, जिससे एक ब्रेकआउट खरीदने और बेचने का बिंदु उत्पन्न होता है। लेकिन कुछ समस्याएं भी हैं, जैसे कि प्रवृत्ति का आकलन करने के लिए देरी, रोकथाम के तरीके में सुधार किया जा सकता है। हमें वास्तविक डेटा के लिए बहुत अधिक प्रतिक्रिया और अनुकूलन करने की आवश्यकता है, संख्यात्मक सेटिंग्स और रणनीति नियमों को समायोजित करने के लिए, गलतियों की संभावना को कम करने के लिए, ताकि रणनीति विभिन्न बाजारों में बेहतर प्रदर्शन कर सके। साथ ही, सख्त धन प्रबंधन रणनीति की दीर्घकालिक लाभप्रदता की कुंजी भी है।
/*backtest
start: 2023-09-13 00:00:00
end: 2023-09-20 00:00:00
period: 5m
basePeriod: 1m
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/
// © wbburgin
//@version=5
strategy("Volatility Range Breakout Strategy [wbburgin]", shorttitle = "VRB Strategy [wbburgin]", overlay=true,
pyramiding=20,max_bars_back=2000,initial_capital=10000)
wma(float priceType,int length,float weight) =>
norm = 0.0
sum = 0.0
for i = 0 to length - 1
norm := norm + weight
sum := sum + priceType[i] * weight
sum / norm
// This definition of volatility uses the high-low range divided by the average of that range.
volatility(source,length) =>
h = ta.highest(source,length)
l = ta.lowest(source,length)
vx = 2 * (h - l) / (h + l)
vx
vm1 = input.int(100,"Average Length")
volLen = input.int(100,"Volatility Length")
vsrc = input.source(close,"Volatility Source")
cross_type = input.source(close,"Exit Source")
exit_type = input.string("Volatility MA",options=["Volatility MA","Range Crossover"],title="Exit Type")
volatility = volatility(vsrc,volLen)
highband1 = close + (close * volatility)
lowband1 = close - (close * volatility)
hb1 = wma(highband1,vm1,volatility)
lb1 = wma(lowband1,vm1,volatility)
hlavg = math.avg(hb1,lb1)
upcross = ta.crossover(high,hb1) //Crossing over the high band of historical volatility signifies a bullish breakout
dncross = ta.crossunder(low,lb1) //Crossing under the low band of historical volatility signifies a bearish breakout
vlong = upcross
vshort = dncross
vlong_exit = switch
exit_type == "Volatility MA" => ta.crossunder(cross_type,hlavg)
exit_type == "Range Crossover" => ta.crossunder(cross_type,hb1)
vshort_exit = switch
exit_type == "Volatility MA" => ta.crossover(cross_type,hlavg)
exit_type == "Range Crossover" => ta.crossover(cross_type,lb1)
if vlong
strategy.entry("Long",strategy.long)
if vlong_exit
strategy.close("Long")
if vshort
strategy.entry("Short",strategy.short)
if vshort_exit
strategy.close("Short")
plot(hlavg,color=color.white,title="Weighted Volatility Moving Average")
t = plot(hb1,color=color.new(color.red,50),title="Volatility Reversal Band - Top")
b = plot(lb1,color=color.new(color.green,50),title="Volatility Reversal Band - Bottom")
alertcondition(vlong,"Volatility Long Entry Signal")
alertcondition(vlong_exit,"Volatility Long Exit Signal")
alertcondition(vshort,"Volatility Short Entry Signal")
alertcondition(vshort_exit,"Volatility Short Exit Signal")
fill(t,b,color=color.new(color.aqua,90))