चलती औसत बोलिंगर बैंड्स आरएसआई कॉम्बो रणनीति

लेखक:चाओझांग, दिनांकः 2023-09-13 11:57:39
टैगः

यह रणनीति व्यापार संकेतों के लिए मूल्य रुझानों और ओवरबॉट/ओवरसोल्ड स्तरों का आकलन करने के लिए चलती औसत, बोलिंगर बैंड और आरएसआई को जोड़ती है। यह सटीकता में सुधार के लिए कई संकेतकों की ताकत का दोहन करती है।

रणनीति तर्क:

  1. मूल्य प्रवृत्ति निर्धारित करने के लिए चलती औसत और बोलिंगर बैंड की गणना करें।

  2. ओवरबॉट/ओवरसोल्ड स्तरों की पहचान करने के लिए आरएसआई की गणना करें।

  3. जब मूल्य बीबी निचले बैंड और आरएसआई तेजी से क्रॉसओवर से ऊपर टूटता है तो लंबा प्रवेश करें।

  4. व्यापार प्रति हानि को नियंत्रित करने के लिए स्टॉप लॉस का प्रयोग करें।

लाभः

  1. मल्टी-इंडिकेटर वेरिफिकेशन से खराब ट्रेडों में कमी आती है।

  2. आरएसआई एमए की सीमाओं का पूरक है।

  3. बीबी पलायन स्तरों की पहचान करता है।

जोखिमः

  1. कई मापदंडों का अनुकूलन करने में समय लगता है।

  2. आरएसआई और बीबी के बीच कुछ अतिरेक।

  3. ब्रेकआउट विफलता और उलटफेर के लिए प्रवण हैं।

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


/*backtest
start: 2023-08-13 00:00:00
end: 2023-09-12 00:00:00
period: 30m
basePeriod: 15m
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/
// © LucasVivien

//@version=4
strategy("MA Bolinger Bands + RSI ", shorttitle="MABB + RSI", overlay=true)

// User input
source   = input(title="Price source"    , type=input.source  , defval=close)
RSIlen   = input(title="RSI Length"      , type=input.integer , defval=6    , group="RSI") 
RSIlvlOB = input(title="RSI Overbough"   , type=input.integer , defval=50   , group="RSI")
RSIlvlOS = input(title="RSI Oversold"    , type=input.integer , defval=50   , group="RSI")
RSIN     = input(title="RSI Neutral"     , type=input.integer , defval=50   , group="RSI")
MAlen    = input(title="MA Length"       , type=input.integer , defval=200  , group="MABB")
BBlen    = input(title="BB Length"       , type=input.integer , defval=200  , group="MABB")
BBmult   = input(title="BB multiplier"   , type=input.float   , defval=2.0  , group="MABB" , tooltip="Set BB closer / appart", minval=0.001, maxval=50)
MAtype   = input(title="MA type"         , type=input.string  , defval="SMA", group="MABB" , tooltip="MA type used in BB", options=["SMA", "EMA", "HMA"])
//SLmult   = input(title="SL value"        ,type=input.float    , defval=0.06)

// Used indicators 
RSI = rsi(source, RSIlen)
MA  = sma(source, MAlen)

if MAtype == "EMA"
    MA := ema(source, MAlen)
if MAtype == "HMA"
    MA := hma(source, MAlen)

// Perform Calculations
BBdev   = BBmult * stdev(source, BBlen)
BBupper = MA + BBdev
BBlower = MA - BBdev

longSL  = close - close * 0.06
shortSL = close + close * 0.06

// Signals validation ([0] is trade displayed from strategy() on chart => long/short entry)
BBbull      = (open < BBlower) and (close > BBlower)
BBbear      = (open > BBupper) and (close < BBupper)

RSIbull     = crossover(RSI , RSIN)
RSIbear     = crossunder(RSI, RSIN)

Longsignal  = (BBbull) and (RSIbull or RSIbull[1] or
 RSIbull[2] or RSIbull[3] or RSIbull[4] or 
 RSIbull[5] or RSIbull[6] or RSIbull[7] or 
 RSIbull[8] or RSIbull[9] or RSIbull[10])
Shortsignal = (BBbear) and (RSIbear or RSIbear[1] or 
 RSIbear[2] or RSIbear[3] or RSIbear[4] or 
 RSIbear[5] or RSIbear[6] or RSIbear[7] or 
 RSIbear[8] or RSIbear[9] or RSIbear[10])

// Save SL values
var SLlongsaved  = 0.0 
var SLshortsaved = 0.0 
if Longsignal  and (strategy.position_size == -1) ///////////////////////////////
    SLlongsaved  := longSL 
if Shortsignal and (strategy.position_size == 1)  ////////////////////////////////
    SLshortsaved := shortSL

// Plots
  //plotshape(Longsignal , size=size.small, color=color.teal)
  //plotshape(Shortsignal, size=size.small, color=color.fuchsia)
plot(Longsignal  ? longSL  : na, color=color.red, style=plot.style_linebr, linewidth=6)
plot(Shortsignal ? shortSL : na, color=color.red, style=plot.style_linebr, linewidth=6)
p1 = plot(BBupper,title="Bollinger Bands Upper Line", color=color.gray, transp=60)
p2 = plot(BBlower,title="Bollinger Bands Lower Line", color=color.gray, transp=60)
plot(MA, title="Bollinger Bands MA Basis Line" , color=color.white, transp=50)
fill(p1, p2, color=color.white, transp=92)

// Strategy Entry & Exit
  //if Longsignal
strategy.entry(id="Long entry", long=true, when=Longsignal) //, oca_name="x", oca_type=strategy.oca.cancel)
  //if Shortsignal
strategy.entry(id="Short entry", long=false, when=Shortsignal) //, oca_name="x", oca_type=strategy.oca.cancel)
strategy.close(id="Long exit", when=strategy.position_size > 0)//, from_entry="Long entry"  //, when=strategy.position_size > 0 // , stop=SLlongsaved)
strategy.close(id="Short Exit", when=strategy.position_size < 0)//, from_entry="Short entry" //, when=strategy.position_size < 0 //, stop=SLshortsaved)

plot(strategy.position_size) //////////////////////////////////////////////



अधिक