यह रणनीति बोलिंगर बैंड्स और मूविंग एवरेज को मिलाकर ट्रेडिंग सिस्टम के बाद एक ट्रेंड डिजाइन करती है। जब कीमत बोलिंगर बैंड्स के ऊपरी बैंड के माध्यम से टूटती है और निचला बैंड एसएमए 200 से ऊपर होता है, तो यह लंबी हो जाती है, जब कीमत निचले बैंड के माध्यम से टूटती है, तो आंशिक स्थिति बंद हो जाती है, और जब कीमत एसएमए 200 से नीचे जाती है, तो सभी बाहर निकल जाती है। यह रणनीति प्रवृत्ति का पालन करती है और जब प्रवृत्ति बदलती है तो समय में नुकसान काटती है।
प्रवृत्ति की पहचान करने के लिए इस रणनीति का आधार यह है कि बोलिंगर बैंड्स को SMA200 से पूरी तरह से ऊपर होना चाहिए, केवल एक स्पष्ट अपट्रेंड होने पर ही लंबे समय तक जाना चाहिए। जब डाउनट्रेंड आता है, तो आंशिक स्टॉप लॉस और पूर्ण स्टॉप लॉस द्वारा जोखिम को नियंत्रित किया जाता है।
इन जोखिमों को बोलिंगर बैंड्स मापदंडों का सावधानीपूर्वक परीक्षण, आंशिक स्टॉप लॉस रणनीति का अनुकूलन, एसएमए अवधि को समायोजित करना और अधिक वैज्ञानिक जोखिम प्रबंधन विधियों को पेश करके कम किया जा सकता है।
यह रणनीति बोलिंगर बैंड और एसएमए को एकीकृत करती है ताकि अपेक्षाकृत पूर्ण प्रवृत्ति अनुसरण प्रणाली को डिज़ाइन किया जा सके। यह प्रवृत्ति अस्तित्व की पहचान करने में विश्वसनीय है और इसमें मजबूत प्रवृत्ति ट्रैकिंग क्षमता है। स्टॉप लॉस रणनीति को लगातार अनुकूलित करके, सिग्नल त्रुटियों को कम करके और वैज्ञानिक जोखिम प्रबंधन तकनीकों को पेश करके, यह रणनीति लाइव ट्रेडिंग में ट्रैक करने के लिए एक सार्थक प्रणाली बन सकती है। यह मात्रात्मक ट्रेडिंग रणनीति डिजाइन के लिए कई संकेतकों को जोड़ने का एक दृष्टिकोण प्रदान करती है।
/*backtest start: 2022-11-09 00:00:00 end: 2023-11-15 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/ // © mohanee //@version=4 strategy(title="BB9_MA200_Strategy", overlay=true, pyramiding=1, default_qty_type=strategy.cash, initial_capital=10000, currency=currency.USD) //default_qty_value=10, default_qty_type=strategy.fixed, var stopLossVal=0.00 //variables BEGIN smaLength=input(200,title="MA Length") bbLength=input(21,title="BB Length") bbsrc = input(close, title="BB Source") mult = input(2.0, minval=0.001, maxval=50, title="StdDev") stopLoss = input(title="Stop Loss%", defval=5, minval=1) riskCapital = input(title="Risk % of capital == Based on this trade size is claculated numberOfShares = (AvailableCapital*risk/100) / stopLossPoints", defval=10, minval=1) sma200=ema(close,smaLength) plot(sma200, title="SMA 200", color=color.orange) //bollinger calculation basis = sma(bbsrc, bbLength) dev = mult * stdev(bbsrc, bbLength) upperBand = basis + dev lowerBand = basis - dev offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500) //plot bb plot(basis, "Basis", color=color.teal, style=plot.style_circles , offset = offset) p1 = plot(upperBand, "Upper", color=color.teal, offset = offset) p2 = plot(lowerBand, "Lower", color=color.teal, offset = offset) fill(p1, p2, title = "Background", color=color.teal, transp=95) strategy.initial_capital = 50000 //Entry--- strategy.entry(id="LE", comment="LE capital="+tostring(strategy.initial_capital + strategy.netprofit ,"######.##"), qty=( (strategy.initial_capital + strategy.netprofit ) * riskCapital / 100)/(close*stopLoss/100) , long=true, when=strategy.position_size<1 and upperBand>sma200 and lowerBand > sma200 and crossover(close, basis) ) // // aroonOsc<0 //(strategy.initial_capital * 0.10)/close barcolor(color=strategy.position_size>=1? color.blue: na) //partial Exit tpVal=strategy.position_size>1 ? strategy.position_avg_price * (1+(stopLoss/100) ) : 0.00 strategy.close(id="LE", comment="Partial points="+tostring(close - strategy.position_avg_price, "####.##"), qty_percent=30 , when=abs(strategy.position_size)>=1 and close>tpVal and crossunder(lowerBand, sma200) ) //close<ema55 and rsi5Val<20 //ema34<ema55 //close All on stop loss //stoploss stopLossVal:= strategy.position_size>1 ? strategy.position_avg_price * (1-(stopLoss/100) ) : 0.00 strategy.close_all( comment="SL Exit points="+tostring(close - strategy.position_avg_price, "####.##"), when=abs(strategy.position_size)>=1 and close < stopLossVal ) //close<ema55 and rsi5Val<20 //ema34<ema55 //close<ema89// strategy.close_all( comment="BB9 X SMA200 points="+tostring(close - strategy.position_avg_price, "####.##"), when=abs(strategy.position_size)>=1 and crossunder(basis, sma200) ) //close<ema55 and rsi5Val<20 //ema34<ema55 //close<ema89