यह रणनीति बाजार की प्रवृत्ति को मापने के लिए बोलिंगर बैंड का उपयोग करती है और निवेश पोर्टफोलियो के स्थिर विकास के उद्देश्य से व्यापार के अवसरों की पहचान करने के लिए बैंडविड्थ संकेत को जोड़ती है। पिछले वर्ष के आंकड़ों के साथ बैकटेस्ट किया गया, इसने केवल -4.02% के अधिकतम ड्रॉडाउन के साथ 78.95% लाभप्रदता हासिल की। यह स्वचालित रणनीतियों की मेरी श्रृंखला में से एक है जो मेरे पोर्टफोलियो को लगातार बढ़ने में मदद करती है।
मापदंडों को ट्विक करने और इस रणनीति का बैकटेस्ट करने के लिए स्वतंत्र महसूस करें। किसी भी टिप्पणी या विचारों की सराहना की जाती है।
यदि आप मौजूदा परिणामों से संतुष्ट हैं और इस रणनीति को स्वचालित करना चाहते हैं, जिसे अलर्ट के माध्यम से किया जा सकता है, तो आपको इसे एक अध्ययन में परिवर्तित करने और कोड में अलर्ट जोड़ने की आवश्यकता है। मुझे बताएं कि क्या आप इसमें रुचि रखते हैं और मैं इस रणनीति के आधार पर एक अध्ययन बना सकता हूं।
यह रणनीति प्रविष्टियों और निकासों को निर्धारित करने के लिए बोलिंगर बैंड और बैंडविड्थ का उपयोग करती है।
बोलिंगर बैंड में ऊपरी बैंड, मध्य बैंड और निचला बैंड शामिल हैं। मध्य बैंड एक एन-पीरियड सरल चलती औसत है, डिफ़ॉल्ट n = 16। ऊपरी बैंड मध्य बैंड + k * मानक विचलन है, निचला बैंड मध्य बैंड है - k * मानक विचलन, डिफ़ॉल्ट k = 3। जब कीमत ऊपरी बैंड के करीब आती है, तो यह ओवरवैल्यूएशन या ओवरबॉट का संकेत देती है। जब कीमत निचले बैंड के करीब आती है, तो यह अंडरवैल्यूएशन या ओवरसोल्ड का संकेत देती है।
बैंडविड्थ सूचक मध्य बैंड के सापेक्ष मूल्य की अस्थिरता दर्शाता है। यह (ऊपरी बैंड - निचला बैंड) / मध्य बैंड * 1000 द्वारा गणना की जाती है। जब बैंडविड्थ 20 से कम होता है, तो यह कम अस्थिरता या समेकन को दर्शाता है। जब बैंडविड्थ 50 से अधिक होता है, तो यह वृद्धिशील अस्थिरता का प्रतिनिधित्व करता है।
यह रणनीति लंबे अवसरों की तलाश करती है जब बैंडविड्थ 20-50 के बीच होती है और कीमत निचले बैंड से नीचे टूट जाती है। लंबे समय तक जाने के बाद, लाभ लेने के लिए प्रवेश मूल्य का 108% सेट किया जाता है, या जब कीमत ऊपरी बैंड से ऊपर टूट जाती है तो स्टॉप लॉस एक्जिट होता है।
इस रणनीति के लाभों में निम्नलिखित शामिल हैंः
बोलिंगर बैंड्स ट्रेंड की दिशा को मापते हैं, जिससे झूठे ब्रेकआउट के जोखिम कम होते हैं
बैंडविड्थ सिग्नल सटीक रूप से रेंज-बाउंड एक्शन का पता लगाता है, बड़े उतार-चढ़ाव से बड़े नुकसान से बचता है
बैकटेस्ट में एक वर्ष में लगभग 80% लाभप्रदता दिखाई गई, अत्यधिक उच्च जोखिम-लाभ अनुपात
अधिकतम 5 प्रतिशत से कम निकासी जोखिम को प्रभावी ढंग से नियंत्रित करती है और पोर्टफोलियो की स्थिर वृद्धि को बनाए रखती है
सरल और स्पष्ट तर्क, समझने और लागू करने में आसान, विभिन्न परिसंपत्तियों पर व्यापक रूप से लागू
इस रणनीति के जोखिमों में निम्नलिखित शामिल हैंः
खराब बोलिंगर पैरामीटर सेटिंग्स अच्छे ट्रेडिंग अवसरों को याद कर सकती हैं
लगातार बुल या बियर बाजारों के दौरान कम ट्रेडिंग आवृत्ति, लाभप्रदता सीमित
अपर्याप्त बैकटेस्ट डेटा, वास्तविक प्रदर्शन बैकटेस्ट से भिन्न हो सकता है
चरम चाल के दौरान स्टॉप लॉस लिया जा सकता है, जिससे बड़े नुकसान हो सकते हैं
उच्च लेनदेन लागत वास्तविक लाभ को भी कम करती है
समाधान:
बाजार के आधार पर मापदंडों को अनुकूलित करें और बोलिंगर अवधि को समायोजित करें
असामान्य बाजार स्थितियों से निपटने के लिए अतिरिक्त संकेतक पेश करना
स्थिरता सत्यापित करने के लिए विभिन्न बाजारों में पर्याप्त डेटा और बैकटेस्ट एकत्र करना
चरम चाल से बड़े नुकसान को रोकने के लिए उचित रूप से स्टॉप लॉस को समायोजित करें
लेन-देन की लागत कम करने के लिए कम कमीशन वाले ट्रेडिंग प्लेटफार्मों का चयन करें
इस रणनीति में निम्नलिखित पहलुओं में सुधार किया जा सकता हैः
झूठे ब्रेकआउट से बचने के लिए वॉल्यूम पुष्टिकरण जोड़ें
प्रवृत्ति की दिशा की पहचान करने के लिए प्रवृत्ति संकेतकों के साथ संयोजन
मशीन लर्निंग का उपयोग पैरामीटर को ऑटो-ट्यून करने और बाजार के अनुकूल करने के लिए करें
असंबद्ध परिसंपत्तियों के व्यापार से बचने के लिए सहसंबंध फ़िल्टर जोड़ें
अपट्रेंड के दौरान अधिक लाभ के लिए लाभ/रोक हानि का अनुकूलन करें
जीत दर बढ़ाने के लिए अधिक स्थिति फ़िल्टर पेश करें
कई चक्रों से लाभ उठाने के लिए बहु-समय फ्रेम संयोजनों का परीक्षण करें
जोखिम बढ़ाने के लिए सूचकांकित पोर्टफोलियो बनाएं
नई रणनीतियों को स्वचालित रूप से उत्पन्न करने और सत्यापित करने के लिए मशीन लर्निंग का उपयोग करें
कुल मिलाकर यह बोलिंगर बैंड ब्रेकआउट रणनीति अच्छी तरह से बैकटेस्ट की गई है और रेंज-बाउंड बाजारों में स्थिर रिटर्न उत्पन्न कर सकती है। मूल तर्क सरल और स्पष्ट है, समझने और लागू करने में आसान है। लेकिन जटिल बाजारों में स्थिर मुनाफे के लिए पैरामीटर अनुकूलन, जोखिम नियंत्रण और पोर्टफोलियो प्रबंधन में और सुधार की आवश्यकता है। यह एक बुनियादी प्रवृत्ति-अनुसरण रणनीति है, और इसे अधिक तकनीकी संकेतकों और जोखिम प्रबंधन तंत्रों को पेश करके बढ़ाया जा सकता है, या स्वचालन के लिए मशीन लर्निंग के साथ जोड़ा जा सकता है। सारांश में, यह रणनीति शुरुआती लोगों के लिए एल्गोरिथम ट्रेडिंग के लिए दरवाजा खोलती है, और अनुभवी व्यापारियों को रणनीतियों को अनुकूलित करने की संभावना भी प्रदान करती है।
/*backtest start: 2023-10-30 00:00:00 end: 2023-11-06 00:00:00 period: 3m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Bollinger Bands BAT/USDT 30min", overlay=true ) /// Indicators ///Bollinger Bands source = close length = input(16, minval=1) mult = input(3, step=0.1, minval=0.001, maxval=50) basis = sma(source, length) dev = mult * stdev(source, length) upper = basis + dev lower = basis - dev plot(basis, color=color.red) p1 = plot(upper, color=color.blue) p2 = plot(lower, color=color.blue) fill(p1, p2) //Bollinger bands width bbw = (upper-lower)/basis*1000 //plot(bbw, color=color.blue) upper_bbw_input = input(title="BBW Upper Threshold", step=1, minval=0, defval=50) lower_bbw_input = input(title="BBW Lower Threshold", step=1, minval=0, defval=20) // Backtesting Period testStartYear = input(2019, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2020, "Backtest Stop Year") testStopMonth = input(12, "Backtest Stop Month") testStopDay = input(31, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) testPeriod() => true // Take Profit tp_inp = input(8, title='Take Profit %', step=0.1)/100 take_level = strategy.position_avg_price * (1 + tp_inp) //Entry Strategy entry_long = crossover(source, lower) and (bbw < upper_bbw_input) and (bbw > lower_bbw_input) exit_long = cross(high,upper) or close < lower if testPeriod() strategy.entry(id="LongBB", long=true, comment="LongBB", when=entry_long) strategy.exit("Take Profit Long","LongBB",limit=take_level) strategy.close(id="LongBB", when=exit_long )