इस रणनीति का मुख्य विचार दो तकनीकी संकेतकों, सापेक्ष शक्ति सूचकांक (आरएसआई) और बोलिंगर बैंड्स को मिलाकर दोहरे व्यापार संकेतों को फ़िल्टर करना और झूठे संकेतों से होने वाले हस्तक्षेप को यथासंभव कम करना है, जिससे संकेत की गुणवत्ता में सुधार होता है।
जब आरएसआई संकेतक ओवरबॉट या ओवरसोल्ड सिग्नल दिखाता है जबकि कीमत बोलिंगर बैंड्स के ऊपरी और निचले रेलों को तोड़ती है या वापस खींचती है, तो ट्रेडिंग के अवसर सामने आएंगे। यह दो अलग-अलग संकेतकों के फायदे को जोड़ती है, बाजार में उतार-चढ़ाव की सांख्यिकीय विशेषताओं और बाजार के प्रतिभागियों के लंबे / छोटे रुख दोनों को ध्यान में रखते हुए निर्णय के लिए एक व्यापक आधार बनाते हैं।
आरएसआई भाग के लिए, हम एक ही समय में अलग-अलग चक्र लंबाई के साथ दो आरएसआई संकेतकों की निगरानी करते हैं। एक के साथ एक छोटा चक्र ओवरबॉट और ओवरसोल्ड संकेतों को पकड़ने के लिए उपयोग किया जाता है, जबकि एक के साथ एक लंबा चक्र प्रवृत्ति उलटों की पुष्टि करने के लिए उपयोग किया जाता है। जब लघु चक्र आरएसआई ओवरबॉट / ओवरसोल्ड दिखाता है और लंबे चक्र आरएसआई उलट दिखाता है, तो हमारा मानना है कि एक व्यापारिक अवसर बन गया है।
बोलिंगर बैंड्स भाग के लिए, हम निगरानी करते हैं कि क्या कीमत ऊपरी और निचले रेल के माध्यम से टूटती है। बोलिंगर बैंड्स के ऊपरी रेल के माध्यम से तोड़ना बिक्री बिंदु है, और निचले रेल के माध्यम से तोड़ना खरीद बिंदु है। साथ ही, हम यह भी निगरानी करते हैं कि क्या कीमत बोलिंगर बैंड्स में वापस खींचती है ताकि समय पर उलट अवसरों को कब्जा किया जा सके।
जब आरएसआई और बोलिंगर बैंड्स सिग्नल एक साथ दिखाई देते हैं, तो हमारा मानना है कि ट्रेडिंग का अवसर बन गया है और एक ट्रेडिंग ऑर्डर जारी किया गया है।
मापदंड अनुकूलन, उचित रूप से स्थिति को कम करने, मैन्युअल हस्तक्षेप आदि के माध्यम से जोखिमों से बचा और नियंत्रित किया जा सकता है।
आरएसआई और बोलिंगर बैंड्स दोहरी रणनीति उच्च गुणवत्ता वाले संकेत उत्पन्न करने के लिए दोनों संकेतकों की ताकत का पूरी तरह से उपयोग करती है। उचित पैरामीटर अनुकूलन और जोखिम प्रबंधन के साथ, यह स्थिर निवेश रिटर्न प्राप्त कर सकता है। अधिक संकेतों और मॉडल को शामिल करना भी एक संभावित भविष्य की दिशा है।
/*backtest start: 2023-11-11 00:00:00 end: 2023-12-04 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Ezieh Str.v2", shorttitle="Ezieh Str.v2", overlay=true, pyramiding=10, currency=currency.USD, slippage=3, commission_type=strategy.commission.cash_per_order, commission_value=0.04, initial_capital=1000) UseDateFilter = input(title="Enable Date Filter" ,type=input.bool ,defval=false ,group="Date & Time" ,tooltip="Turns on/off date filter") StartDate = input(title="Start Date Filter" ,type=input.time ,defval=timestamp("1 Jan 2000 00:00 +0000") ,group="Date & Time" ,tooltip="Date & time to start excluding trades") EndDate = input(title="End Date Filter" ,type=input.time ,defval=timestamp("1 Jan 2100 00:00 +0000") ,group="Date & Time" ,tooltip="Date & time to stop excluding trades") UseTimeFilter = input(title="Enable Time Session Filter" ,type=input.bool ,defval=false ,group="Date & Time" ,tooltip="Turns on/off time session filter") TradingSession = input(title="Trading Session" ,type=input.session ,defval="1000-2200:1234567" ,group="Date & Time" ,tooltip="No trades will be taken outside of this range") In(t) => na(time(timeframe.period, t)) == false TimeFilter = (UseTimeFilter and not In(TradingSession)) or not UseTimeFilter DateFilter = time >= StartDate and time <= EndDate DateTime = (UseDateFilter ? not DateFilter : true) and (UseTimeFilter ? In(TradingSession) : true) ///////////// RSI L_RSI_Length = input(7 , title="L_Length") L_RSI_OverSold = input(45 , title="L_OverSold") S_RSI_Length = input(14 , title="S_Length") S_RSI_OverBought = input(65 , title="S_OverBought") price = close Lvrsi = rsi(price, L_RSI_Length) Svrsi = rsi(price, S_RSI_Length) ///////////// Bollinger Bands BBlength = input(title="Bollinger Period Length", type=input.integer, defval=100, minval=2) BBmult = 2.1 // input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation") BBbasis = sma(price, BBlength) BBdev = BBmult * stdev(price, BBlength) BBupper = BBbasis + BBdev BBlower = BBbasis - BBdev source = close plot(BBbasis, color=color.aqua,title="Bollinger Bands SMA Basis Line") p1 = plot(BBupper, color=color.silver,title="Bollinger Bands Upper Line") p2 = plot(BBlower, color=color.silver,title="Bollinger Bands Lower Line") fill(p1, p2) ///////////// Colors switch1=input(true, title="Enable Bar Color?") switch2=input(true, title="Enable Background Color?") ///////////// Condition LongCondition = crossover(Lvrsi, L_RSI_OverSold) and crossover(close ,BBlower) ShortCondition = crossunder(Svrsi, S_RSI_OverBought) and crossunder(close,BBupper) Longexcon = crossunder(low, BBupper) Shortexcon = crossover(low, BBlower) qt = round(strategy.equity/price, 3) ///////////// RSI + Bollinger Bands Strategy if (not na(Lvrsi)) if LongCondition and DateTime strategy.entry("RSI_BB_L", strategy.long, qty=qt, comment="Long") else strategy.cancel(id="RSI_BB_L") if Longexcon strategy.close("RSI_BB_L", qty_percent = 100, comment = "L_exit") if ShortCondition and DateTime strategy.entry("RSI_BB_S", strategy.short, qty=qt, comment="Short") else strategy.cancel(id="RSI_BB_S") if Shortexcon strategy.close("RSI_BB_S", qty_percent = 100, comment = "S_exit") //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)