यह रणनीति मूल्य के ऐतिहासिक अस्थिरता रेंज के आधार पर ट्रेडिंग सिग्नल उत्पन्न करती है। यह एक निश्चित अवधि में उच्चतम और निम्नतम कीमतों के बीच अंतर की गणना करती है, और चलती औसत का उपयोग करके अस्थिरता रेंज बनाती है। ट्रेडिंग सिग्नल तब ट्रिगर किए जाते हैं जब कीमत रेंज के ऊपरी या निचले बैंडों को तोड़ती है। यह ट्रेंड-फॉलोइंग ब्रेकआउट रणनीतियों से संबंधित है।
मूल सूचक मूल्य की ऐतिहासिक अस्थिरता है। विशिष्ट गणना हैः
पिछले N बारों में उच्चतम और निम्नतम कीमतों के बीच अंतर की गणना करें, जिसे HL कहा जाता है
एन बार, एवरेज (एच, एल) पर उच्चतम और निम्नतम कीमतों का औसत गणना करें
अस्थिरता = एचएल / औसत ((एच, एल)
जहाँ N
अस्थिरता प्राप्त करने के बाद, बैंड की गणना इस प्रकार की जाती हैः
ऊपरी बैंड = चालू बंद + चालू बंद * अस्थिरता
निचला बैंड = वर्तमान बंद - वर्तमान बंद * अस्थिरता
इसके बाद WMA द्वारा बैंड को समतल किया जाता है, जिसमें अवधि
जब कीमत ऊपरी बैंड से ऊपर टूट जाती है, तो लंबी हो जाती है। जब कीमत निचले बैंड से नीचे टूट जाती है, तो छोटी हो जाती है।
बाहर निकलने के संकेतों को
यदि Exit Type Volatility MA है, तो जब कीमत WMA से नीचे वापस जाती है, तो बाहर निकलें।
यदि एक्जिट टाइप रेंज क्रॉसओवर है, तो बाहर निकलें जब कीमत बैंड के नीचे वापस पार हो जाए।
जोखिमों को निम्न द्वारा कम किया जा सकता हैः
इस रणनीति में निम्नलिखित उपायों से सुधार किया जा सकता हैः
इष्टतम संयोजन खोजने के लिए विभिन्न लंबाई मानों का परीक्षण करें.
उदाहरण के लिए, जब मूल्य ऊपरी बैंड से ऊपर टूटता है, तो जांचें कि क्या एमएसीडी भी स्वर्ण क्रॉस करता है।
सरल रेंज ब्रेक स्टॉप के बजाय पिछली स्टॉप के लिए अनुकूलन।
स्टॉप के बाद फिर से रुझानों को पकड़ने के लिए पुनः प्रवेश नियम सेट करें।
बाजार की अस्थिरता के आधार पर आकार को गतिशील रूप से समायोजित करें।
यह रणनीति सामान्य रूप से ट्रेंडिंग बाजारों के लिए अच्छी तरह से काम करती है, जिसमें ट्रेंड की ताकत और 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))