BB21_SMA200 रणनीति के बाद की प्रवृत्ति

लेखक:चाओझांग, दिनांकः 2023-11-16 11:04:42
टैगः

img


अवलोकन

यह रणनीति बोलिंगर बैंड्स और मूविंग एवरेज को मिलाकर ट्रेडिंग सिस्टम के बाद एक ट्रेंड डिजाइन करती है। जब कीमत बोलिंगर बैंड्स के ऊपरी बैंड के माध्यम से टूटती है और निचला बैंड एसएमए 200 से ऊपर होता है, तो यह लंबी हो जाती है, जब कीमत निचले बैंड के माध्यम से टूटती है, तो आंशिक स्थिति बंद हो जाती है, और जब कीमत एसएमए 200 से नीचे जाती है, तो सभी बाहर निकल जाती है। यह रणनीति प्रवृत्ति का पालन करती है और जब प्रवृत्ति बदलती है तो समय में नुकसान काटती है।

रणनीति तर्क

  1. प्रमुख प्रवृत्ति निर्धारित करने के लिए एसएमए200 को घातीय चलती औसत के रूप में गणना करें
  2. ऊपर के बैंड, मध्य बैंड और निचले बैंड सहित बोलिंगर बैंड की गणना करें और लाभ सीमा के रूप में रंग भरें
  3. जब दोनों ऊपरी और निचले बैंड SMA200 से ऊपर होते हैं, तो यह एक अपट्रेंड का संकेत देता है।
  4. जब कीमत बोलिंजर बैंड्स के मध्य बैंड के माध्यम से ऊपर की ओर टूट जाती है, तो लंबी हो जाती है
  5. जब मूल्य निचले बैंड को नीचे की ओर तोड़ता है, तो आंशिक स्थिति बंद कर देता है
  6. जब कीमत SMA200 से नीचे जाती है, तो यह मुख्य प्रवृत्ति के उलट होने का संकेत देती है, सभी पदों को बंद करें
  7. अत्यधिक हानि को रोकने के लिए स्टॉप हानि बिंदु सेट करें
  8. खाता पूंजी और स्वीकार्य जोखिम के आधार पर व्यापार आकार की गणना करें

प्रवृत्ति की पहचान करने के लिए इस रणनीति का आधार यह है कि बोलिंगर बैंड्स को SMA200 से पूरी तरह से ऊपर होना चाहिए, केवल एक स्पष्ट अपट्रेंड होने पर ही लंबे समय तक जाना चाहिए। जब डाउनट्रेंड आता है, तो आंशिक स्टॉप लॉस और पूर्ण स्टॉप लॉस द्वारा जोखिम को नियंत्रित किया जाता है।

लाभ विश्लेषण

  1. एक स्पष्ट प्रवृत्ति की पहचान करने के लिए एक एकल संकेतक के बजाय बोलिंगर बैंड का प्रयोग करें
  2. SMA200 प्रमुख प्रवृत्ति दिशा निर्धारित करता है, सीमाबद्ध बाजार में अनावश्यक व्यापार से बचता है
  3. ट्रेंड रन का अनुसरण करने के लिए आंशिक स्टॉप लॉस
  4. हानि को कम करने के लिए प्रमुख बिंदुओं पर समय पर स्टॉप लॉस
  5. एक ही व्यापार पर अत्यधिक हानि को रोकने के लिए व्यापार आकार की गणना जोखिम प्रबंधन शुरू करता है

जोखिम विश्लेषण

  1. बोलिंगर बैंड्स से उत्पन्न ब्रेकआउट सिग्नल में अपेक्षाकृत उच्च झूठे सिग्नल हो सकते हैं
  2. समय से पहले स्टॉप लॉस को रोकने के लिए आंशिक स्टॉप लॉस बिंदुओं को अनुकूलित करने की आवश्यकता है।
  3. यदि स्टॉप लॉस बिंदु बहुत तंग है, तो स्टॉप लॉस को बहुत बार ट्रिगर किया जा सकता है
  4. एसएमए अवधि का परीक्षण और अनुकूलन करने की आवश्यकता है ताकि देरी और संवेदनशीलता को संतुलित किया जा सके।
  5. एकल ट्रेडों पर अत्यधिक आकार को रोकने के लिए ट्रेड आकार गणना विधि को अनुकूलित करने की आवश्यकता हो सकती है

इन जोखिमों को बोलिंगर बैंड्स मापदंडों का सावधानीपूर्वक परीक्षण, आंशिक स्टॉप लॉस रणनीति का अनुकूलन, एसएमए अवधि को समायोजित करना और अधिक वैज्ञानिक जोखिम प्रबंधन विधियों को पेश करके कम किया जा सकता है।

अनुकूलन दिशाएँ

  1. झूठे संकेतों को कम करने के लिए बोलिंगर बैंड्स मापदंडों का परीक्षण और अनुकूलन
  2. सही आंशिक स्टॉप लॉस प्वाइंट कैसे सेट करें
  3. परीक्षण इष्टतम एसएमए अवधि
  4. स्थिर स्टॉप लॉस बिंदुओं के बजाय अनुकूलन स्टॉप पर विचार करें
  5. अधिक वैज्ञानिक व्यापार आकार गणना के लिए अस्थिरता आधारित स्थिति आकार का उपयोग कर अध्ययन
  6. वास्तविक व्यापार का अनुकरण करने के लिए व्यापार लागतों के साथ बैकटेस्ट
  7. रणनीति की मजबूती में सुधार के लिए अन्य संकेतकों के साथ संयोजन पर विचार करें

निष्कर्ष

यह रणनीति बोलिंगर बैंड और एसएमए को एकीकृत करती है ताकि अपेक्षाकृत पूर्ण प्रवृत्ति अनुसरण प्रणाली को डिज़ाइन किया जा सके। यह प्रवृत्ति अस्तित्व की पहचान करने में विश्वसनीय है और इसमें मजबूत प्रवृत्ति ट्रैकिंग क्षमता है। स्टॉप लॉस रणनीति को लगातार अनुकूलित करके, सिग्नल त्रुटियों को कम करके और वैज्ञानिक जोखिम प्रबंधन तकनीकों को पेश करके, यह रणनीति लाइव ट्रेडिंग में ट्रैक करने के लिए एक सार्थक प्रणाली बन सकती है। यह मात्रात्मक ट्रेडिंग रणनीति डिजाइन के लिए कई संकेतकों को जोड़ने का एक दृष्टिकोण प्रदान करती है।


/*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
    

अधिक