यह बोलिंगर बैंड्स संकेतक पर आधारित एक प्रवृत्ति के बाद की रणनीति है। यह प्रवृत्ति की दिशा निर्धारित करने और संबंधित पदों को खोलने के लिए बोलिंगर बैंड्स ऊपरी और निचले बैंड के ब्रेकआउट का उपयोग करता है। जब कीमतें वापस गिरना शुरू करती हैं, तो यह पदों से बाहर निकलने और लाभ प्राप्त करने के लिए गतिशील अंतराल के साथ एक ट्रेलिंग स्टॉप लॉस का उपयोग करता है।
यह रणनीति प्रवृत्ति की दिशा निर्धारित करने के लिए बोलिंगर बैंड का उपयोग करती है। बोलिंगर बैंड को ऊपरी और निचले बैंड बनाने के लिए कीमतों के मानक विचलन की गणना करके बनाया जाता है। जब कीमतें ऊपरी बैंड को तोड़ती हैं, तो यह एक अपट्रेंड शुरुआत का संकेत देती है। जब कीमतें निचले बैंड को तोड़ती हैं, तो यह एक डाउनट्रेंड शुरुआत का संकेत देती है।
व्यापार का विशिष्ट तर्क हैः
बोलिंगर बैंड के मध्य, ऊपरी और निचले बैंड की गणना कीजिए।
जब कीमत ऊपरी बैंड को तोड़ती है, तो लंबी हो जाती है. जब कीमत निचले बैंड को तोड़ती है, तो छोटी हो जाती है.
जोखिमों को नियंत्रित करने के लिए और कीमतों में गिरावट आने पर बाहर निकलने के लिए एक ट्रेलिंग स्टॉप लॉस का उपयोग करें।
प्रवृत्ति में पुनः प्रवेश करें जब कीमतें फिर से बैंड को तोड़ दें।
रुझानों को निर्धारित करने के लिए बोलिंगर बैंड का उपयोग करना और एक गतिशील ट्रेलिंग स्टॉप लॉस के साथ संयोजन करना जोखिमों को प्रभावी ढंग से नियंत्रित कर सकता है।
इस रणनीति के लाभों में निम्नलिखित शामिल हैंः
प्रवृत्तियों को निर्धारित करने के लिए बोलिंगर बैंड का उपयोग करना, सरल और प्रभावी।
ब्रेकआउट एंट्री और डायनेमिक ट्रेलिंग स्टॉप लॉस का संयोजन ट्रेंड कैचिंग और जोखिम नियंत्रण को संतुलित करता है।
स्वच्छ और संक्षिप्त कोड संरचना, समझने और संशोधित करने में आसान।
कुछ मापदंड, अनुकूलित करने के लिए आसान।
विभिन्न उत्पादों पर लागू, लचीला।
अच्छा बैकटेस्ट परिणाम, बड़ी लाभ क्षमता के साथ।
मुख्य जोखिम हैंः
बोलिंगर बैंड केवल आंकड़ों पर निर्भर करते हैं, वक्र फिट होने के जोखिम।
दायरे के विस्तार और वास्तविक रुझानों को अलग करना कठिन है, गलत आकलन का कारण बन सकता है।
स्टॉप लॉस पॉइंट बहुत तंग, सामान्य दोलन से बंद होने का खतरा।
लेन-देन की लागत पर विचार नहीं किया गया।
सीमित बैकटेस्ट अवधि, ओवरफिटिंग के जोखिम।
समाधान इस प्रकार हैं:
संकेत सत्यापन के लिए मापदंडों को अनुकूलित करें या अन्य संकेतक जोड़ें।
दोलन और चैनलों की पहचान में सुधार।
एटीआर आदि के आधार पर स्टॉप लॉस को गतिशील रूप से समायोजित करें।
कमीशन जोड़ें, स्लिप लागत।
बैकटेस्ट अवधि का विस्तार, बहु-बाजार सत्यापन।
इस रणनीति को निम्न के द्वारा अनुकूलित किया जा सकता हैः
विभिन्न संकेतकों के संयोजन प्रभावों का परीक्षण करना।
रुझान के दोलन की पहचान में सुधार।
गतिशील पैरामीटर अनुकूलन के लिए मशीन लर्निंग का परिचय।
बैकटेस्ट परिणामों के आधार पर स्टॉप लॉस रणनीति का अनुकूलन करना।
लेन-देन की लागत का आकलन और जोड़ना।
इष्टतम सेटिंग्स के लिए पैरामीटर स्पेस अनुकूलन।
स्थिति जोखिमों को नियंत्रित करने के लिए धन प्रबंधन जोड़ना।
यह रणनीति बोलिंगर बैंड के साथ प्रवृत्ति दिशा निर्धारित करती है और स्टॉप लॉस के साथ जोखिम को नियंत्रित करती है। समग्र तर्क सरल और स्पष्ट है। इसमें अच्छी प्रवृत्ति पकड़ने की क्षमता है, लेकिन इसे अधिक मजबूत बनाने के लिए अधिक तकनीकी संकेतकों को पेश करके, मापदंडों को अनुकूलित करके, लागत आदि जोड़कर सुधार किया जा सकता है। कुल मिलाकर, यह रणनीति एक सरल और व्यावहारिक बोलिंगर बैंड आधारित प्रवृत्ति अनुसरण दृष्टिकोण प्रदान करती है।
/*backtest start: 2022-09-15 00:00:00 end: 2023-09-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Bollinger Band Breakout", shorttitle = "BB Strategy",initial_capital=1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, commission_type = strategy.commission.percent, commission_value = 0.3, max_bars_back = 1000, overlay=true) // Inputs // sma = input(20, minval=1) mult = input(1.2, minval=0.001, maxval=50) src = input(close) // alert msg // message_long_entry = input("long entry") message_short_entry = input("short entry") // Calculations // basis = sma(close, sma) dev = mult * stdev(close, sma) upper = basis + dev lower = basis - dev // Backtest // fromyear = input(2019, defval = 2019, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(1, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") leverage = input(1, "Leverage") term = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)) // PLOT // plot(basis, color = color.gray, linewidth = 2) lu = plot(upper, color = color.green, linewidth = 2) ll = plot(lower, color = color.red, linewidth = 2) fill(lu, ll, color = color.gray) // Signals // long = crossover(close, upper) short = crossunder(close, lower) // Strategy entry // strategy.initial_capital = 50000 if (long and term) strategy.entry("long", strategy.long, qty=strategy.initial_capital/close*leverage, when = long and barstate.isconfirmed, alert_message = message_long_entry) if (short and term) strategy.entry("short", strategy.short, qty=strategy.initial_capital/close*leverage, when = short and barstate.isconfirmed, alert_message = message_short_entry) // strategy exit // strategy.exit("long tsl", "long", loss = close*0.075 / syminfo.mintick, trail_points = close*0.05 / syminfo.mintick, trail_offset = close*0.005 / syminfo.mintick) strategy.exit("short tsl", "short", loss = close*0.075 / syminfo.mintick, trail_points = close*0.05 / syminfo.mintick, trail_offset = close*0.005 / syminfo.mintick)