यह एक ट्रेडिंग रणनीति है जो बोलिंगर बैंड्स का उपयोग करती है। इस रणनीति का उद्देश्य अवसरों की पहचान करना है जब बोलिंगर बैंड्स का उपयोग करके कीमतें हिंसक रूप से उतार-चढ़ाव करती हैं और संबंधित खरीद या बिक्री निर्णय लेती हैं।
रणनीति यह निर्धारित करने के लिए बोलिंगर बैंड के ऊपरी बैंड, मध्य बैंड और निचले बैंड की गणना करती है कि क्या वर्तमान मूल्य अस्थिर सीमा के भीतर है और इसलिए पदों को खोलने या बंद करने पर निर्णय लेते हैं। जब कीमत ऊपरी बैंड के करीब आती है, तो इसे लंबे समय के लिए चरम बिंदु माना जाता है और रणनीति लंबी स्थिति को बंद करना चुनती है। जब कीमत निचले बैंड के पास आती है, तो इसे शॉर्ट्स के लिए चरम बिंदु माना जाता है और रणनीति लंबी स्थिति खोलने का विकल्प चुनती है।
इसके अलावा, रणनीति में रुझान उलटने वाले कारक भी शामिल हैं। यदि कोई उलट संकेत है, तो यह संबंधित खरीद या बिक्री निर्णयों को भी ट्रिगर करेगा। विशेष रूप से, रणनीति का तर्क इस प्रकार हैः
उपरोक्त इस रणनीति का मूल व्यापारिक तर्क है। बोलिंगर बैंड की विशेषताओं का उपयोग करके और प्रवृत्ति और उलट कारक को मिलाकर, रणनीति अस्थिरता बढ़ने पर उलट बिंदुओं को पकड़ने का प्रयास करती है।
सामान्य चलती औसत रणनीतियों की तुलना में, इस रणनीति के निम्नलिखित फायदे हैंः
सामान्य तौर पर, यह रणनीति बोलिंगर बैंड्स और प्राइस बार को अपेक्षाकृत अच्छी तरह से जोड़ती है। यह जोखिमों को नियंत्रित करते हुए लाभ के एक निश्चित स्तर को सुनिश्चित करने के लिए उचित पलटाव बिंदुओं पर व्यापार करती है।
हालांकि, इस रणनीति के साथ अभी भी कुछ जोखिम हैंः
तदनुसार, भविष्य के अनुकूलन निम्नलिखित पर ध्यान केंद्रित कर सकते हैंः
निष्कर्ष में, यह एक विशिष्ट बोलिंगर बैंड्स ट्रेडिंग रणनीति टेम्पलेट है। यह सिग्नल फ़िल्टर करने के लिए प्रवृत्ति उलट निर्णय की शुरुआत करके अकेले बोलिंगर बैंड्स का उपयोग करने के लिए अत्यधिक अप्रभावी ट्रेडों से बचता है, जो सैद्धांतिक रूप से अच्छी रणनीति प्रदर्शन का कारण बन सकता है। लेकिन मापदंडों और सिग्नल फ़िल्टरिंग को अभी भी मजबूती के लिए और सुधार की आवश्यकता है और गलत निर्णयों को कम करने के लिए।
/*backtest start: 2023-12-18 00:00:00 end: 2024-01-17 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=3 strategy("Noro's Bollinger Strategy v1.2", shorttitle = "Bollinger str 1.2", overlay = true ) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") length = input(20, defval = 20, minval = 1, maxval = 1000, title = "Bollinger Length") mult = input(2.0, defval = 2.0, minval = 0.001, maxval = 50, title = "Bollinger Mult") source = input(ohlc4, defval = ohlc4, title = "Bollinger Source") uset = input(true, defval = true, title = "Use trend entry") usect = input(true, defval = true, title = "Use counter-trend entry") fromyear = input(2018, defval = 2018, 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(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") showbands = input(true, defval = true, title = "Show Bollinger Bands") //Bollinger Bands basis = sma(source, length) dev = mult * stdev(source, length) upper = basis + dev lower = basis - dev //Lines col = showbands ? black : na plot(upper, linewidth = 1, color = col) plot(basis, linewidth = 1, color = col) plot(lower, linewidth = 1, color = col) //Body body = abs(close - open) abody = ema(body, 30) //Signals bar = close > open ? 1 : close < open ? -1 : 0 up1 = bar == -1 and close >= basis and close < upper and (close < strategy.position_avg_price or strategy.position_size == 0) and uset dn1 = bar == 1 and close <= basis and close > lower and (close > strategy.position_avg_price or strategy.position_size == 0) and uset up2 = close <= lower and usect dn2 = close >= upper and usect exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open) and body > abody / 2 //Trading if up1 or up2 strategy.entry("Long", strategy.long, needlong == false ? 0 : na) if dn1 or dn2 strategy.entry("Short", strategy.short, needshort == false ? 0 : na) if exit strategy.close_all()