यह रणनीति स्टॉप लॉस के लिए वर्तमान प्रवृत्ति दिशा और घातीय चलती औसत निर्धारित करने के लिए बोलिंगर बैंड का उपयोग करती है और प्रवृत्ति को प्रभावी ढंग से पकड़ने के लिए लाभ प्रबंधन करती है।
रणनीति पहले बोलिंगर बैंड की मध्य रेखा, ऊपरी बैंड और निचले बैंड की गणना करती है। मध्य रेखा n दिनों में समापन मूल्य का सरल चलती औसत है। ऊपरी और निचले बैंड मध्य रेखा से दो मानक विचलन द्वारा ऊपर और नीचे शिफ्ट किए जाते हैं। जब समापन मूल्य ऊपरी बैंड से ऊपर होता है, तो यह एक अपट्रेंड का संकेत देता है। जब समापन मूल्य निचले बैंड से नीचे होता है, तो यह एक डाउनट्रेंड का संकेत देता है।
रणनीति वर्तमान प्रवृत्ति की दिशा का आकलन बंद मूल्य और बोलिंगर बैंड के ऊपरी/निम्न बैंड के बीच संबंध की तुलना करके करती है। यदि बंद मूल्य ऊपरी बैंड को तोड़ता है, तो लंबा जाएं। यदि बंद मूल्य निचले बैंड को तोड़ता है, तो छोटा जाएं।
इसके अतिरिक्त, घातीय चलती औसत को स्टॉप लॉस और ले लाभ के लिए एक ट्रेलिंग स्टॉप के रूप में पेश किया जाता है। विशेष रूप से, यदि कीमत लंबे समय तक जाने के बाद नीचे जाती है, तो स्टॉप लॉस लाइन तदनुसार नीचे चलेगी, लाभ को अधिकतम करने के लिए स्टॉप लॉस दूरी को धीरे-धीरे कसती जाएगी। यदि कीमत बढ़ती रहती है, तो स्टॉप लॉस लाइन भी लाभ चलाने के लिए ऊपर चलेगी। स्टॉप लॉस तंत्र शॉर्ट पदों के लिए उलट काम करता है।
स्टॉप लॉस/टेक प्रॉफिट मैनेजमेंट के लिए ट्रेंड दिशा और ईएमए के लिए बोलिंगर बैंड्स को जोड़ने वाली रणनीति के निम्नलिखित फायदे हैं:
बोलिंगर बैंड का उपयोग करके प्रवृत्ति की दिशा को प्रभावी ढंग से निर्धारित किया जा सकता है और ब्रेकआउट पर तेजी से प्रतिक्रिया दी जा सकती है।
ईएमए आधारित स्टॉप लॉस/टेक प्रॉफिट जोखिमों को नियंत्रित करते हुए लाभ लॉक को अधिकतम कर सकता है।
इस रणनीति में कुछ ऐसे पैरामीटर हैं जिनका कार्यान्वयन करना आसान है - केवल एक बीबी के लिए और एक ईएमए के लिए, बहुत सरल।
यह विभिन्न उत्पादों पर व्यापक रूप से लागू किया जा सकता है।
इस रणनीति में कुछ जोखिम भी हैं जिन पर ध्यान दिया जाना चाहिए:
बीबी ऊपरी/निम्न बैंड के माध्यम से तोड़ने से झूठे ब्रेकआउट के जोखिम से पूरी तरह से बचा नहीं जा सकता है। संकेतों को फ़िल्टर करने के लिए वॉल्यूम आदि के साथ संयोजन पर विचार करें।
ईएमए पैरामीटर सेटिंग को विशिष्ट उत्पादों के अनुसार सावधानीपूर्वक परीक्षण करने की आवश्यकता है। बहुत कम ईएमए अवधि स्टॉप लॉस समय को बढ़ा सकती है। बहुत लंबा ट्रैलिंग प्रभावशीलता को कम कर देगा।
अति-अनुकूलन से बचना चाहिए। बीबी और ईएमए मापदंडों के बहुत अधिक संयोजन से अति-फिटिंग हो सकती है।
जोखिमों और अनुकूलन दिशाओं को संबोधित करने के लिए निम्नलिखित पर विचार किया जा सकता हैः
झूठे ब्रेकआउट संकेतों को फ़िल्टर करने के लिए वॉल्यूम या MACD आदि जोड़ें।
विशिष्ट उत्पादों के लिए सबसे उपयुक्त पैरामीटर खोजने के लिए परीक्षण के माध्यम से ईएमए अवधि का अनुकूलन करें।
अति अनुकूलन से अति अनुकूलन जोखिमों से बचने के लिए BB और EMA मापदंडों को यथासंभव स्थिर रखने का प्रयास करें।
मध्यम अवधि के रुझान में स्थिति समायोजन निर्धारित करने के लिए आरएसआई आदि का उपयोग करने पर विचार करें।
यह रणनीति एक अपेक्षाकृत पूर्ण प्रवृत्ति ट्रैकिंग प्रणाली बनाने के लिए प्रवृत्ति को निर्धारित करने के लिए बोलिंगर बैंड और स्टॉप लॉस / टेक प्रॉफिट प्रबंधन के लिए ईएमए का उपयोग करके एकीकृत करती है। यह स्टॉप लॉस लाइन को लगातार समायोजित करके प्रवृत्ति की दिशा को जल्दी से पकड़ सकती है और मुनाफे में लॉक कर सकती है। कुल मिलाकर, रणनीति अपेक्षाकृत सरल, व्यावहारिक और अनुकूलन योग्य है, आगे परीक्षण और अनुकूलन के लायक है। लेकिन गलत निर्णय और अति-अनुकूलन को रोकने के लिए पैरामीटर सेटिंग्स और जोखिम नियंत्रण को ध्यान में रखने की आवश्यकता है। आगे के सुधार के लिए अन्य तकनीकी संकेतकों के साथ संयोजन आगे की दिशा होगी।
/*backtest start: 2022-11-10 00:00:00 end: 2023-11-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © zxcv55602 //@version=4 strategy(shorttitle=" BB+EMA", title="Bollinger Bands", overlay=true) date1 = input(title="Start Date", type=input.time, defval=timestamp("2020-01-01T00:00:00")) date2 = input(title="Stop Date", type=input.time, defval=timestamp("2030-01-01T00:00:00")) length = input(40, minval=1) src = input(close, title="Source") mult = input(2.0,title="StdDev",step=0.1) basis = sma(src, length) dev = mult * stdev(src, length) upper = basis + dev lower = basis - dev //offset = input(0, "Offset", minval = -500, maxval = 500) offset=0 stopcon=input(title="stopcon/lot", type=input.bool, defval=true) lot1=input(title="lot",defval=1) stoploss=input(title="stopcon",defval=1000) emacon=input(title="emacon", type=input.bool, defval=true) ema_value=input(title="value",defval=30, minval=2,step=1) plot(basis, "Basis", color=#FF6D00, offset = offset) p1 = plot(upper, "Upper", color=color.new(color.blue,50), offset = offset) p2 = plot(lower, "Lower", color=color.new(color.blue,50), offset = offset) ema1=ema(close,ema_value) plot(ema1, "SMA", color=#2962FF) period() => true //----------- if period() if strategy.opentrades==0 and ema1<upper if close>upper lot_L=stoploss/((close-lower)/2) strategy.entry("OP_L",strategy.long,qty=stopcon==true?lot_L:lot1,stop=emacon==true?max(basis,ema1):basis) if strategy.opentrades==0 and ema1>lower if close<lower lot_S=stoploss/((upper-close)/2) strategy.entry("OP_S",strategy.short,qty=stopcon==true?lot_S:lot1,stop=emacon==true?min(basis,ema1):basis) if strategy.position_size>0 strategy.exit("OP_L",stop=emacon==true?max(basis,ema1):basis,comment="exit_L") if strategy.position_size<0 strategy.exit("OP_S",stop=emacon==true?min(basis,ema1):basis,comment="exit_S")