यह रणनीति बोलिंगर बैंड्स संकेतक और मोमेंटम ऑसिलेटिंग मूविंग एवरेज संकेतक के आधार पर एक मूल्य चैनल का निर्माण करती है, जब कीमत चैनल की ऊपरी या निचली सीमा को तोड़ती है तो ट्रेडिंग सिग्नल उत्पन्न करती है। बोलिंगर बैंड्स की अनुकूलन क्षमता और मोमेंटम ऑसिलेटर की लचीलापन को जोड़कर, यह बाजार के रुझानों में परिवर्तन के लिए समय पर प्रतिक्रिया दे सकती है।
रणनीति बोलिंगर मध्य बैंड और गति दोलन चलती औसत का उपयोग करके एक मूल्य चैनल का निर्माण करती है। मध्य बैंड 21 अवधि के बोलिंगर मध्य बैंड को अपनाता है। ऊपरी और निचले बैंड क्रमशः प्रतिशत सीमा के लिए ऊपर और नीचे खिंचते हैं। गति दोलन चलती औसत मध्य बैंड के आधार पर ओवरबॉट या ओवरसोल्ड स्तर के पास खिंचाव या सिकुड़ता है। जब कीमत ऊपरी बैंड के माध्यम से टूटती है, तो लंबी हो जाती है। जब कीमत निचले बैंड के माध्यम से टूटती है, तो छोटी हो जाती है।
विशेष रूप से, बोलिंगर मध्य बैंड की गणना इस प्रकार की जाती हैः
Middle Band = Moving Average of N-period closing price
ऊपरी बैंड और निचले बैंड की गणना इस प्रकार की जाती हैः
Upper Band = Middle Band + WidthDev * N-period Bollinger standard deviation
Lower Band = Middle Band - WidthDev * N-period Bollinger standard deviation
जहां WidthDev विस्तारित प्रतिशत सीमा ऊपर और नीचे का प्रतिनिधित्व करता है।
मोमेंटम ऑसिलेटिंग मूविंग एवरेज कुछ नियमों के अनुसार मध्य बैंड के आधार पर खिंचाव या सिकुड़ता है। जब बाजार ओवरबॉट या ओवरसोल्ड हो जाता है, तो यह मध्य बैंड से आगे बढ़ता है ताकि लंबे या छोटे जाने के अधिक अवसर प्रदान किए जा सकें। जब बाजार शांत हो जाता है, तो यह मध्य बैंड की ओर संकुचित हो जाता है।
संक्षेप में, यह रणनीति बोलिंगर बैंड का उपयोग करके एक मूल्य चैनल को दर्शाती है और ब्रेकआउट ट्रेडिंग का एहसास करते हुए, इम्पैक्टम ऑसिलेटिंग मूविंग एवरेज का उपयोग करके प्रवेश समय निर्धारित करती है। जब कीमत बोलिंगर ऊपरी बैंड से ऊपर की ओर टूटती है, तो लंबी हो जाती है, और जब कीमत बोलिंगर निचले बैंड से नीचे की ओर टूटती है, तो छोटी हो जाती है।
बाजार की अस्थिरता को दर्शाता है बोलिंगर बैंड वास्तविक समय में बाजार की अस्थिरता और बदलते रुझानों को प्रतिबिंबित कर सकते हैं। ऊपरी और निचले बैंड अस्थिरता में परिवर्तन के आधार पर अनुकूलित होते हैं।
झूठे संकेतों को कम करता है मोमेंटम ऑसिलेटिंग मूविंग एवरेज का स्ट्रेचिंग इफेक्ट बोलिंगर बैंड्स द्वारा उत्पन्न झूठे संकेतों को प्रभावी ढंग से कम कर सकता है। बीबी चैनल की चौड़ाई का विस्तार करके और होल्डिंग अवधि का विस्तार करके, अधिक लाभ प्राप्त किया जा सकता है।
समय पर पकड़ता है रुझान उलटा बीबी ऊपरी और निचले बैंड और मोमेंटम ऑसिलेटिंग मूविंग एवरेज का क्रॉसओवर ट्रेडिंग सिग्नल उत्पन्न करने के लिए लाभकारी समय और मूल्य निर्धारण प्रदान करता है, जो प्रमुख बुल और बियर समायोजनों को प्रभावी ढंग से पकड़ सकता है और समय पर रुझान उलटने को पकड़ सकता है।
गलत बीबी पैरामीटर बीबी मापदंडों जैसे कि गणना अवधि और मानक विचलन गुणक की अनुचित सेटिंग्स के कारण बैंड के बीच बहुत व्यापक या बहुत संकीर्ण अंतर हो सकता है, जिससे अत्यधिक झूठे संकेत उत्पन्न होते हैं और रणनीति की स्थिरता कम हो जाती है।
अत्यधिक थरथरानवाला आयाम मोमेंटम ऑसिलेटिंग मूविंग एवरेज के अत्यधिक बड़े ऑसिलेशन आयाम के परिणामस्वरूप स्टॉप लॉस पॉइंट बहुत दूर हो सकते हैं, जिससे नुकसान का जोखिम बढ़ सकता है।
विलंबित प्रतिगमन
जब बाजार में उतार-चढ़ाव या रुझान नहीं होता है, तो बीबी और मोमेंटम ऑस्सिलेटिंग मूविंग एवरेज के ट्रेडिंग सिग्नल में देरी हो सकती है, जो समय के साथ मूल्य परिवर्तन को प्रतिबिंबित करने में विफल रहता है, जिससे विलंबित उलट जोखिम होता है।
बीबी पैरामीटर अनुकूलित करें विभिन्न अवधियों का परीक्षण करें, मानक विचलन गुणकों को इष्टतम पैरामीटर संयोजन खोजने के लिए जो बेहतर संकेत आवृत्ति और कम झूठे संकेत प्रदान करते हैं।
गतिशीलता ऑसिलेटिंग चलती औसत मापदंडों का अनुकूलन विभिन्न दोलन आयामों और अवधियों का परीक्षण करें ताकि वे पैरामीटर पाए जा सकें जो रुझानों को बेहतर ढंग से पकड़ सकें और सिग्नल विलंब को कम कर सकें।
फ़िल्टर स्थितियाँ जोड़ें अक्षम व्यापार संकेतों को बाहर करने के लिए क्रॉसओवर संकेतों के आधार पर ट्रेडिंग वॉल्यूम जैसे फ़िल्टर जोड़ें।
रणनीति संयोजन जोखिमों को और अधिक नियंत्रित करने और स्थिरता में सुधार के लिए इस रणनीति को अन्य स्टॉप लॉस रणनीतियों या मशीन लर्निंग रणनीतियों के साथ मिलाएं।
यह रणनीति अनुकूलनशील बोलिंगर बैंड और गति दोलन चलती औसत की ताकत को जोड़ती है, जो प्रवृत्ति के बाद और प्रवृत्ति उलट को पकड़ने के एकीकरण को प्राप्त करती है। बाजार की अस्थिरता और व्यापार संकेत लचीलापन को संतुलित करके, यह स्थिर और प्रभावी ब्रेकआउट ट्रेडिंग का एहसास करती है। पैरामीटर अनुकूलन और जोखिम नियंत्रण भी विभिन्न बाजार वातावरण के अनुसार परीक्षण और ट्यून करने के लिए महत्वपूर्ण हैं।
/*backtest start: 2022-12-29 00:00:00 end: 2024-01-04 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // Hull Cloud v2 by SEASIDE420 strategy("Hull Moving Average Cloud v2", shorttitle="hull_cloud_v2", overlay=true, commission_type=strategy.commission.percent, commission_value=0.075, default_qty_type=strategy.percent_of_equity, max_bars_back=200, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0) hullperiod=input(title="HullMA Period",defval=210, minval=1) Width=input(title="Cloud Width",defval=200, minval=2) price=input(ohlc4,title="Price data") FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2017, title = "From Year", minval = 2017) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2017) start = timestamp(FromYear, FromMonth, FromDay, 00, 00) finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) window() => true n2ma=2*wma(price,round(hullperiod/2)) nma=wma(price,hullperiod) diff=n2ma-nma sqn=round(sqrt(hullperiod)) n2ma1=2*wma(price[1],round(hullperiod/2)) nma1=wma(price[1],hullperiod) diff1=n2ma1-nma1 n1=wma(diff,sqn) n2=wma(diff1,sqn) Hull_Line=n1-n1[1]/n2[1] Hull_retracted=if(n1>n2) Hull_retracted=Hull_Line-Width else Hull_retracted=Hull_Line+Width c1=(Hull_retracted*n1)/price[1] c2=(Hull_retracted*n2)/price[1] c4=c1>c2?green:red c2p=plot(c2, color=black, linewidth=1) c3p=plot(price, color=black, linewidth=1) fill(c3p, c2p, color=c4, transp=75) plot(cross(c1, c2) ? c1 : na, style = circles,color=c4, linewidth = 4) if (price<c2) strategy.close("BUY", when=window()) if (price>c2) strategy.close("SELL", when=window()) if (price[1]>c2 and price[1]>c1) strategy.entry("BUY",strategy.long, when=window()) if (price[1]<c1 and price[1]<c2) strategy.entry("SELL",strategy.short, when=window())// /L'-, // ,'-. ` ```` / L '-, // . _,--dMMMM\ ` ` ` '`.. / '-, // : _,--, )MMMMMMMMM),. ` ,<> /_ '-,' // ; ___,--. \MM( `-' )M//MM\ ,',.; .-'* ; .' // | \MMMMMM) \MM\ ,dM//MMM/ ___ < ,; `. )`--' / // | \MM()M MMM)__ /MM(/MP' ___, \ \ ` `. `. /__, ,' // | MMMM/ MMMMMM( /MMMMP'__, \ | / `. `-,_\ / // | MM /MMM---' `--'_ \ |-' |/ `./ .\----.___ // | /MM' `--' __,- \"" |-' |_, `.__) . .F. )-. // | `--' \ \ |-' |_, _,-/ J . . . J-'-. `-., // | __ \`. | | | \ / _ |. . . . \ `-. F // | ___ / \ | `| ' __ \ | /-' F . . . . \ '` // | \ \ \ / | __ / \ | |,-' __,- J . . . . . \ // | | / |/ __,- \ ) \ / |_,- __,--' |. .__.----,' // | |/ ___ \ |'. |/ __,--' `.-;;;;;;;;;\ // | ___ \ \ | | ` __,--' /;;;;;;;;;;;;. // | \ \ |-'\ ' __,--' /;;;;;;;;;;;;;;\ // \ | | / | __,--' `--;;/ \;-'\ // \ | |/ __,--' / / \ \ // \ | __,--' / / \ \ // \|__,--' _,-;M-K, ,;-;\ // <;;;;;;;; '-;;;; // :D