अस्थिरता रेंज ब्रेकआउट ट्रेडिंग रणनीति

लेखक:चाओझांग, दिनांक: 2023-09-21 20:38:29
टैगः

अवलोकन

यह रणनीति मूल्य के ऐतिहासिक अस्थिरता रेंज के आधार पर ट्रेडिंग सिग्नल उत्पन्न करती है। यह एक निश्चित अवधि में उच्चतम और निम्नतम कीमतों के बीच अंतर की गणना करती है, और चलती औसत का उपयोग करके अस्थिरता रेंज बनाती है। ट्रेडिंग सिग्नल तब ट्रिगर किए जाते हैं जब कीमत रेंज के ऊपरी या निचले बैंडों को तोड़ती है। यह ट्रेंड-फॉलोइंग ब्रेकआउट रणनीतियों से संबंधित है।

रणनीति तर्क

मूल सूचक मूल्य की ऐतिहासिक अस्थिरता है। विशिष्ट गणना हैः

  1. पिछले N बारों में उच्चतम और निम्नतम कीमतों के बीच अंतर की गणना करें, जिसे HL कहा जाता है

  2. एन बार, एवरेज (एच, एल) पर उच्चतम और निम्नतम कीमतों का औसत गणना करें

  3. अस्थिरता = एचएल / औसत ((एच, एल)

जहाँ N Volatility Length पैरामीटर है।

अस्थिरता प्राप्त करने के बाद, बैंड की गणना इस प्रकार की जाती हैः

ऊपरी बैंड = चालू बंद + चालू बंद * अस्थिरता

निचला बैंड = वर्तमान बंद - वर्तमान बंद * अस्थिरता

इसके बाद WMA द्वारा बैंड को समतल किया जाता है, जिसमें अवधि औसत लंबाई के रूप में सेट की जाती है।

जब कीमत ऊपरी बैंड से ऊपर टूट जाती है, तो लंबी हो जाती है। जब कीमत निचले बैंड से नीचे टूट जाती है, तो छोटी हो जाती है।

बाहर निकलने के संकेतों को बाहर निकलने का प्रकार द्वारा परिभाषित किया गया हैः

  1. यदि Exit Type Volatility MA है, तो जब कीमत WMA से नीचे वापस जाती है, तो बाहर निकलें।

  2. यदि एक्जिट टाइप रेंज क्रॉसओवर है, तो बाहर निकलें जब कीमत बैंड के नीचे वापस पार हो जाए।

लाभ

  • अस्थिरता अच्छी तरह से ट्रेंडिंग मूव्स को पकड़ती है
  • डब्ल्यूएमए बैंड को अधिक स्थिर और विश्वसनीय बनाता है
  • ब्रेकआउट सिग्नल पकड़ने का रुझान समय पर बदल जाता है
  • डब्ल्यूएमए/बैंड्स पर आधारित आउटपुट तेजी से घाटे में कटौती करते हैं
  • विभिन्न बाजारों के लिए पैरामीटर ट्यूनिंग के लिए बहुत जगह

जोखिम

  • ब्रेकआउट मूल्य उलट के साथ whipsaw कर सकते हैं
  • रुझान उलटने पर बड़े नुकसान का जोखिम
  • डब्ल्यूएमए कभी-कभी रुझान मोड़ का पता लगाने में देरी करता है
  • पैरामीटर अनुकूलन आसान नहीं है, बहुत परीक्षण और त्रुटि की आवश्यकता है
  • अधिक निकासी, अच्छे जोखिम प्रबंधन की आवश्यकता है

जोखिमों को निम्न द्वारा कम किया जा सकता हैः

  • अधिक विश्वसनीय बैंड के लिए मापदंडों का अनुकूलन
  • अन्य संकेतकों को जोड़ना
  • छोटे आकार और बेहतर जोखिम प्रबंधन
  • पुनः प्रवेश पर विचार

अनुकूलन दिशाएँ

इस रणनीति में निम्नलिखित उपायों से सुधार किया जा सकता हैः

  1. पैरामीटर ट्यूनिंग

इष्टतम संयोजन खोजने के लिए विभिन्न लंबाई मानों का परीक्षण करें.

  1. अन्य संकेतक जोड़ना

उदाहरण के लिए, जब मूल्य ऊपरी बैंड से ऊपर टूटता है, तो जांचें कि क्या एमएसीडी भी स्वर्ण क्रॉस करता है।

  1. बेहतर स्टॉप लॉस

सरल रेंज ब्रेक स्टॉप के बजाय पिछली स्टॉप के लिए अनुकूलन।

  1. पुनः प्रवेश

स्टॉप के बाद फिर से रुझानों को पकड़ने के लिए पुनः प्रवेश नियम सेट करें।

  1. स्थिति आकार

बाजार की अस्थिरता के आधार पर आकार को गतिशील रूप से समायोजित करें।

सारांश

यह रणनीति सामान्य रूप से ट्रेंडिंग बाजारों के लिए अच्छी तरह से काम करती है, जिसमें ट्रेंड की ताकत और 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))

अधिक