यह रणनीति बोलिंगर बैंड संकेतक पर आधारित एक अल्पकालिक रिवर्सल ट्रेडिंग रणनीति है। यह मूविंग एवरेज, मानक विचलन और बोलिंगर बैंड्स को जोड़ती है ताकि कीमतों में असामान्य रूप से फैलाव होने पर रिवर्सल ट्रेडिंग के अवसरों की तलाश की जा सके।
चलती औसत और मानक विचलन की गणना करें। मानक विचलन की गणना करने के लिए sma))) फ़ंक्शन और stdev))) फ़ंक्शन का उपयोग करें।
चलती औसत और मानक विचलन के अनुसार बोलिंगर बैंड के ऊपरी और निचले रेल की गणना करें। ऊपरी रेल मूल्य + मानक विचलन है1 और निचला रेल मूल्य मानक विचलन है1.
जब कीमत ऊपरी या निचली रेल को तोड़ती है, तो यह इंगित करता है कि कीमत असामान्य है। इस समय, हम रिवर्स ट्रेडिंग करने का निर्णय लेते हैं।
विशेष रूप से, यदि कीमत निचले रेल से कम है, तो हम लंबे समय तक जाते हैं; यदि कीमत ऊपरी रेल से अधिक है, तो हम शॉर्ट जाते हैं।
असामान्य कीमतों का न्याय करने के लिए बोलिंगर बैंड चैनल का प्रयोग करें, जो रिवर्स ट्रेडिंग के लिए आधार प्रदान करता है।
चलती औसत कारक के साथ मिलकर, कुछ शोरबाज ट्रेडों को प्रभावी ढंग से फ़िल्टर किया जा सकता है।
मानक विचलन कारक की शुरूआत से असामान्य कीमतों का बेहतर आकलन करने के लिए बोलिंगर बैंड चैनल अधिक गतिशील हो जाता है।
इस रणनीति में अपेक्षाकृत कम उपयोग और कुछ स्थिरता है।
बोलिंगर बैंड सूचक कीमतों की असामान्य स्थिति को पूरी तरह से निर्धारित नहीं कर सकता। झूठे ब्रेकआउट हो सकते हैं।
व्यापारिक आवृत्ति बहुत अधिक हो सकती है। व्यापारिक आवृत्ति को नियंत्रित करने के लिए पैरामीटर को उचित रूप से समायोजित करने की सिफारिश की जाती है।
ऊपरी और निचले बोलिंगर बैंड के ब्रेकआउट सिग्नल लंबे समय तक रह सकते हैं। बेहतर उलट प्रभाव प्राप्त करने के लिए मापदंडों के उचित समायोजन की आवश्यकता होती है।
जोखिमों को नियंत्रित करने के लिए उचित रूप से स्टॉप लॉस लागू करें।
अधिक उचित बोलिंगर बैंड चैनल प्राप्त करने के लिए चलती औसत चक्र और मानक विचलन मापदंडों को अनुकूलित करें।
कुछ संकेतों को फ़िल्टर करने के लिए ईएमए और एमएसीडी जैसे सहायक कारकों को बढ़ाएं।
स्टॉप लॉस और पोजीशन कंट्रोल के तंत्र को लागू करें।
स्थिति आकार और स्थिति नियंत्रण उपायों का अनुकूलन करें।
यह रणनीति बोलिंगर बैंड संकेतक के माध्यम से असामान्य कीमतों का न्याय करती है और चलती औसत और मानक विचलन मापदंडों के साथ उलट व्यापार करती है। इसमें एक निश्चित स्थिरता है। हमें पैरामीटर अनुकूलन, सहायक कारकों की शुरूआत, स्टॉप लॉस प्रबंधन और स्थिति नियंत्रण जैसे साधनों के माध्यम से रणनीति के अधिकतम ड्रॉडाउन को और कम करने और स्थिरता में सुधार करने की आवश्यकता है।
/*backtest start: 2022-12-12 00:00:00 end: 2023-12-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("BCE Version of EMA, SMA Mean Reversion", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Inputs st_yr_inp = input(defval=2017, title='Backtest Start Year') st_mn_inp = input(defval=01, title='Backtest Start Month') st_dy_inp = input(defval=01, title='Backtest Start Day') en_yr_inp = input(defval=2025, title='Backtest End Year') en_mn_inp = input(defval=01, title='Backtest End Month') en_dy_inp = input(defval=01, title='Backtest End Day') sma_lookback = input(defval=100, title="Lookback Period For SMA") ema_lookback = input(defval=10, title="Lookback Period For EMA") long_diff_perc = input(defval=6, title="Percentage Deviation From SMA to go Long")/100 short_diff_perc = input(defval=20, title="Percentage Deviation From SMA to go Short")/100 ema_filter_bars = input(defval=4, title="The number of bars the EMA must rise/fall") lng_allwd = input(defval=true, title="Allow Longs?") srt_allwd = input(defval=true, title="Allow Shorts?") use_stop = input(defval=true, title="Use Stoploss?") stop_perc = input(defval=30, title="Stop Loss Percentage")/100 // Dates start = timestamp(st_yr_inp, st_mn_inp, st_dy_inp,00,00) end = timestamp(en_yr_inp, en_mn_inp, en_dy_inp,00,00) can_trade = time >= start and time <= end // Indicators Setup sma = sma(close, sma_lookback) ema = ema(close, ema_lookback) // Strategy Calcuations close_stdev = stdev(close, sma_lookback) sd1_upper = close + (close_stdev * 1) sd1_lower = close - (close_stdev * 1) close_diff = (close - sma) / sma // Entries and Exits longCondition = close > sma and open > sma if (time >= start and time <= end) if (longCondition) strategy.entry("Long", strategy.long) if use_stop stop_price = close * (1 - stop_perc) strategy.order("Long Stoploss", false, stop=stop_price) shortCondition = close < sma and open < sma if (shortCondition) // strategy.entry("Short", strategy.short) // if use_stop // stop_price = close * (1 + stop_perc) // strategy.order("Short Stoploss", true, stop=stop_price) //if (time >= start) strategy.close("Long", when=close < sma and open < sma) //strategy.cancel("Long Stoploss", when=sma < sma[1]) // strategy.close("Short", when=close > sma and open > sma) //strategy.cancel("Short Stoploss", when=close_diff<=0) // Plotting sma_col = sma > sma[1] ? green : red ema_fill = close_diff <= -long_diff_perc ? lime : close_diff >= short_diff_perc ? maroon : aqua p_sma = plot(sma, color=sma_col, linewidth=3) p_ema = plot(ema, color=black, linewidth=2) p_sd1 = plot(sd1_upper, color=black, linewidth=1, transp=85) p_sd2 = plot(sd1_lower, color=black, linewidth=1, transp=85) fill(p_sd1, p_sd2, title='STDEV Fill', color=silver, transp=80) fill(p_sma, p_ema, title='EMA > Mean Percentage', color=ema_fill, transp=80)