बोलिंगर तरंग रणनीति

लेखक:चाओझांग, दिनांकः 2024-01-15 15:16:27
टैगः

img

अवलोकन

बोलिंगर वेव रणनीति एक मात्रात्मक ट्रेडिंग रणनीति है जो बोलिंगर बैंड और चलती औसत को जोड़ती है। यह बाजार के रुझानों और ओवरबॉट / ओवरसोल्ड क्षेत्रों को निर्धारित करने के लिए बोलिंगर बैंड और चलती औसत के क्रॉसओवर के मानक विचलन की गणना करके ट्रेडिंग संकेत उत्पन्न करती है।

रणनीति तर्क

रणनीति पहले एक निर्दिष्ट अवधि के दौरान एक घातीय चलती औसत (ईएमए) की गणना आधार रेखा के रूप में करती है। ऊपरी बैंड (ईएमए + एन बार मानक विचलन) और निचले बैंड (ईएमए - एन बार मानक विचलन) की गणना इस ईएमए के आधार पर की जाती है। ऊपरी बैंड के ऊपर एक ब्रेक एक ओवरबॉट सिग्नल को इंगित करता है, जबकि निचले बैंड के नीचे एक ब्रेक एक ओवरसोल्ड सिग्नल को इंगित करता है।

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

विशेष रूप से, ट्रेडिंग सिग्नल के नियम इस प्रकार हैंः

  1. लंबा संकेतः बंद > ऊपरी बैंड और आरएसआई ((14) > 60
  2. संक्षिप्त संकेतः बंद < निचला बैंड और आरएसआई ((14) < 40

जब उपरोक्त ट्रेडिंग सिग्नल दिखाई देते हैं, तो निश्चित मात्रा या खाता प्रतिशत के साथ स्थिति लें। जब कीमतें वापस बैंड में जाती हैं या विपरीत संकेत दिखाई देते हैं तो पोजीशन छोड़ दें।

लाभ

यह रणनीति सीमाबद्ध बाजारों में गलत ट्रेडों से बचने के लिए ट्रेंड निर्धारण और ओवरबॉट/ओवरसोल्ड जजमेंट को जोड़ती है। एकल संकेतक रणनीतियों की तुलना में, यह अनावश्यक स्थिति खोलने और जोखिमों को प्रभावी ढंग से नियंत्रित करने में मदद कर सकती है।

सरल चलती औसत रणनीतियों की तुलना में, बोलिंगर बैंड वर्तमान बाजार अस्थिरता और जोखिम के स्तर को बेहतर ढंग से दर्शाते हैं। जब बैंड चौड़ाई छोटी होती है, तो व्यापार संकेत अधिक विश्वसनीय होते हैं। जब बैंड चौड़ाई बड़ी होती है, तो व्यापार आवृत्ति स्वचालित रूप से कम हो जाएगी। ऐसा अनुकूलन समायोजन विभिन्न बाजार स्थितियों के आधार पर रणनीति जोखिमों को नियंत्रित कर सकता है।

इसके अतिरिक्त, आरएसआई और अन्य संकेतकों से दोहरी पुष्टि कुछ झूठे संकेतों को फ़िल्टर करने में मदद करती है और रुझान मोड़ बिंदुओं के आसपास गलत ट्रेडों से बचती है। इससे रणनीति की जीत दर में भी सुधार होता है।

जोखिम विश्लेषण

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

  1. पैरामीटर अनुकूलन जोखिम. यदि चलती औसत या मानक विचलन मापदंडों को अनुचित रूप से सेट किया जाता है, तो यह अधिक शोर ट्रेडों या व्यापार के अवसरों को याद कर सकता है. इन मापदंडों को पुनरावर्ती परीक्षण और अनुकूलन की आवश्यकता होती है.

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

  3. उच्च व्यापार आवृत्ति जोखिम. यदि बैंड में बहुत संकीर्ण अंतराल हैं, तो यह व्यापार की संख्या और भुगतान किए गए कमीशन को बढ़ा सकता है, जिससे अंतिम लाभप्रदता प्रभावित होती है। इसे चलती औसत अवधि को मामूली रूप से बढ़ाकर कम किया जा सकता है।

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

इस रणनीति को और अधिक अनुकूलित किया जा सकता हैः

  1. स्टॉप लॉस तंत्र जोड़ें. ट्रेलिंग स्टॉप लॉस या टाइम स्टॉप लॉस का उपयोग करने से समय में नुकसान का एहसास करने और एकल व्यापार हानि राशि को नियंत्रित करने में मदद मिलती है.

  2. स्थिति आकार नियम जोड़ें. उदाहरण के लिए, जीतने वाले ट्रेडों में पिरामिडिंग और हारने वालों को कम करना. यह रणनीति रिटर्न में सुधार कर सकता है.

  3. सिग्नल फ़िल्टरिंग के लिए अन्य संकेतकों के साथ संयोजन करें। केडीजे और एमएसीडी जैसे संकेतक सहायक निर्णय उपकरण के रूप में कार्य कर सकते हैं। यह रणनीति लाभप्रदता में और सुधार करने में मदद करता है।

  4. पैरामीटर सेटिंग्स को अनुकूलित करें. विभिन्न पैरामीटर संयोजनों का परीक्षण करने और बेहतर सेटिंग्स खोजने के लिए आनुवंशिक एल्गोरिदम जैसे अधिक व्यवस्थित तरीकों का उपयोग किया जा सकता है।

निष्कर्ष

बोलिंगर वेव रणनीति चलती औसत और ओवरबॉट / ओवरसोल्ड निर्णय के प्रवृत्ति निर्धारण को एकीकृत करती है। यह विभिन्न बाजार स्थितियों के अनुकूल होने के लिए बैंड चौड़ाई परिवर्तनों के आधार पर व्यापार आवृत्ति को समायोजित करती है। इस बीच, आरएसआई और अन्य संकेतकों द्वारा सिग्नल फ़िल्टरिंग गलत ट्रेडों से बचती है। रणनीति बाजार के रुझानों को ट्रैक करने और जोखिमों को नियंत्रित करने दोनों पर विचार करती है। निरंतर अनुकूलन के साथ, यह एक स्थिर लाभदायक मात्रात्मक व्यापार रणनीति बन सकती है।


/*backtest
start: 2023-01-08 00:00:00
end: 2024-01-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//@FiboBuLL

strategy(shorttitle='FB Wave', title='FiboBuLL Wave', overlay=true, pyramiding=1, currency=currency.NONE, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

src = input(close, title='Source')
length = input.int(55, minval=1, title='EMA length')  // 20 for classis Bollinger Bands SMA line (basis)


mult = input.float(1., minval=0.236, maxval=2, title='Standard Deviation')  //2 for Classic Bollinger Bands //Maxval = 2 as higher the deviation, higher the risk
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)

Show = input.string('Both', options=['Longs Only', 'Shorts Only', 'Both'], title='Trade Type')
CC = input(true, 'Color Bars')

upper = basis + dev
lower = basis - dev

//Conditions for Long and Short - Extra filter condition can be used such as RSI or CCI etc.

short = src < lower  // and rsi(close,14)<40
long = src > upper  // and rsi(close,14)>60

L1 = ta.barssince(long)
S1 = ta.barssince(short)

longSignal = L1 < S1 and not (L1 < S1)[1]
shortSignal = S1 < L1 and not (S1 < L1)[1]

//Plots and Fills


////Long/Short shapes with text
// plotshape(S1<L1 and not (S1<L1)[1]?close:na, text = "sᴇʟʟ", textcolor=#ff0100, color=#ff0100, style=shape.triangledown, size=size.small, location=location.abovebar, transp=0, title = "SELL", editable = true)
// plotshape(L1<S1 and not (L1<S1)[1]?close:na, text = "ʙᴜʏ", textcolor = #008000, color=#008000, style=shape.triangleup, size=size.small, location=location.belowbar, transp=0, title = "BUY", editable = true)  

// plotshape(shortSignal?close:na, color=#ff0100, style=shape.triangledown, size=size.small, location=location.abovebar, transp=0, title = "Short Signal", editable = true)
// plotshape(longSignal?close:na, color=#008000, style=shape.triangleup, size=size.small, location=location.belowbar, transp=0, title = "Long Signal", editable = true)  


p1 = plot(upper, color=color.new(#ff0000, 75), display=display.all, title='Upper Band')
p2 = plot(lower, color=color.new(#008000, 75), display=display.all, title='Lower Band')

p = plot(basis, color=L1 < S1 ? #008000 : S1 < L1 ? #ff0000 : na, linewidth=2, editable=false, title='Basis')

fill(p, p1, color=color.new(color.teal, 85), title='Top Fill')  //fill for basis-upper
fill(p, p2, color=color.rgb(217, 161, 161), title='Bottom Fill', transp=85)  //fill for basis-lower

//Barcolor

bcol = src > upper ? color.new(#8ceb07, 0) : src < lower ? color.new(#ff0000, 0) : src > basis ? color.green : src < basis ? color.red : na

barcolor(CC ? bcol : na, editable=false, title='Color Bars')


// //Alerts ----  // Use 'Once per bar close'

// alertcondition(condition=longSignal, title="Long - BB Filter", message='BB Filter Long @ {{close}}') // Use 'Once per bar close'
// alertcondition(condition=shortSignal, title="Short - BB Filter", message='BB Filter Short @ {{close}}')  // Use 'Once per bar close'

Notestart1 = input(true, '╔═══ Time Range to BackTest ═══╗')

// === INPUT BACKTEST RANGE ===
FromMonth = input.int(defval=1, title='From Month', minval=1, maxval=12)
FromDay = input.int(defval=1, title='From Day', minval=1, maxval=31)
FromYear = input.int(defval=2018, title='From Year', minval=2015)
ToMonth = input.int(defval=1, title='To Month', minval=1, maxval=12)
ToDay = input.int(defval=1, title='To Day', minval=1, maxval=31)
ToYear = input.int(defval=9999, title='To Year', minval=2010)

// === FUNCTION EXAMPLE === 
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)  // backtest finish window
window() =>
    time >= start and time <= finish ? true : false

if window() and (Show == 'Longs Only' or Show == 'Both')
    strategy.entry('AL', direction=strategy.long, when=longSignal)
    strategy.close('LongAL', when=shortSignal, comment='AL KAPA')

if window() and (Show == 'Shorts Only' or Show == 'Both')
    strategy.entry('SAT', direction=strategy.short, when=shortSignal)
    strategy.close('SAT', when=longSignal, comment='SAT KAPA')














अधिक