VuManChu Cipher indicator conversion from Tradingview

Forums ProRealTime English forum ProBuilder support VuManChu Cipher indicator conversion from Tradingview

  • This topic has 0 replies, 1 voice, and was last updated 1 year ago by avatarMary.
Viewing 1 post (of 1 total)
  • #196505

    Could someone please help convert VuManChu Cipher B + Divergences  Indicator from TradingView to Prorealtime:

    // © vumanchu

    //@version=4

    // CIRCLES & TRIANGLES:
    // – LITTLE CIRCLE: They appear at all WaveTrend wave crossings.
    // – GREEN CIRCLE: The wavetrend waves are at the oversold level and have crossed up (bullish).
    // – RED CIRCLE: The wavetrend waves are at the overbought level and have crossed down (bearish).
    // – GOLD/ORANGE CIRCLE: When RSI is below 20, WaveTrend waves are below or equal to -80 and have crossed up after good bullish divergence (DONT BUY WHEN GOLD CIRCLE APPEAR).
    // – None of these circles are certain signs to trade. It is only information that can help you.
    // – PURPLE TRIANGLE: Appear when a bullish or bearish divergence is formed and WaveTrend waves crosses at overbought and oversold points.
    //
    // NOTES:
    // – I am not an expert trader or know how to program pine script as such, in fact it is my first indicator only to study and all the code is copied and modified from other codes that are published in TradingView.
    // – I am very grateful to the entire TV community that publishes codes so that other newbies like me can learn and present their results. This is an attempt to imitate Market Cipher B.
    // – Settings by default are for 4h timeframe, divergences are more stronger and accurate. Haven’t tested in all timeframes, only 2h and 4h.
    // – If you get an interesting result in other timeframes I would be very grateful if you would comment your configuration to implement it or at least check it.
    //
    // CONTRIBUTIONS:
    // – Tip/Idea: Add higher timeframe analysis for bearish/bullish patterns at the current timeframe.
    // + Bearish/Bullish FLAG:
    // – MFI+RSI Area are RED (Below 0).
    // – Wavetrend waves are above 0 and crosses down.
    // – VWAP Area are below 0 on higher timeframe.
    // – This pattern reversed becomes bullish.
    // – Tip/Idea: Check the last heikinashi candle from 2 higher timeframe
    // + Bearish/Bullish DIAMOND:
    // – HT Candle is red
    // – WT > 0 and crossed down

    study(title = ‘VuManChu B Divergences’, shorttitle = ‘VMC Cipher_B_Divergences’)

    // PARAMETERS {

    // WaveTrend
    wtShow = input(true, title = ‘Show WaveTrend’, type = input.bool)
    wtBuyShow = input(true, title = ‘Show Buy dots’, type = input.bool)
    wtGoldShow = input(true, title = ‘Show Gold dots’, type = input.bool)
    wtSellShow = input(true, title = ‘Show Sell dots’, type = input.bool)
    wtDivShow = input(true, title = ‘Show Div. dots’, type = input.bool)
    vwapShow = input(true, title = ‘Show Fast WT’, type = input.bool)
    wtChannelLen = input(9, title = ‘WT Channel Length’, type = input.integer)
    wtAverageLen = input(12, title = ‘WT Average Length’, type = input.integer)
    wtMASource = input(hlc3, title = ‘WT MA Source’, type = input.source)
    wtMALen = input(3, title = ‘WT MA Length’, type = input.integer)

    // WaveTrend Overbought & Oversold lines
    obLevel = input(53, title = ‘WT Overbought Level 1’, type = input.integer)
    obLevel2 = input(60, title = ‘WT Overbought Level 2’, type = input.integer)
    obLevel3 = input(100, title = ‘WT Overbought Level 3’, type = input.integer)
    osLevel = input(-53, title = ‘WT Oversold Level 1’, type = input.integer)
    osLevel2 = input(-60, title = ‘WT Oversold Level 2’, type = input.integer)
    osLevel3 = input(-75, title = ‘WT Oversold Level 3’, type = input.integer)

    // Divergence WT
    wtShowDiv = input(true, title = ‘Show WT Regular Divergences’, type = input.bool)
    wtShowHiddenDiv = input(false, title = ‘Show WT Hidden Divergences’, type = input.bool)
    showHiddenDiv_nl = input(true, title = ‘Not apply OB/OS Limits on Hidden Divergences’, type = input.bool)
    wtDivOBLevel = input(45, title = ‘WT Bearish Divergence min’, type = input.integer)
    wtDivOSLevel = input(-65, title = ‘WT Bullish Divergence min’, type = input.integer)

    // Divergence extra range
    wtDivOBLevel_addshow = input(true, title = ‘Show 2nd WT Regular Divergences’, type = input.bool)
    wtDivOBLevel_add = input(15, title = ‘WT 2nd Bearish Divergence’, type = input.integer)
    wtDivOSLevel_add = input(-40, title = ‘WT 2nd Bullish Divergence 15 min’, type = input.integer)

    // RSI+MFI
    rsiMFIShow = input(true, title = ‘Show MFI’, type = input.bool)
    rsiMFIperiod = input(60,title = ‘MFI Period’, type = input.integer)
    rsiMFIMultiplier = input(150, title = ‘MFI Area multiplier’, type = input.float)
    rsiMFIPosY = input(2.5, title = ‘MFI Area Y Pos’, type = input.float)

    // RSI
    rsiShow = input(false, title = ‘Show RSI’, type = input.bool)
    rsiSRC = input(close, title = ‘RSI Source’, type = input.source)
    rsiLen = input(14, title = ‘RSI Length’, type = input.integer)
    rsiOversold = input(30, title = ‘RSI Oversold’, minval = 50, maxval = 100, type = input.integer)
    rsiOverbought = input(60, title = ‘RSI Overbought’, minval = 0, maxval = 50, type = input.integer)

    // Divergence RSI
    rsiShowDiv = input(false, title = ‘Show RSI Regular Divergences’, type = input.bool)
    rsiShowHiddenDiv = input(false, title = ‘Show RSI Hidden Divergences’, type = input.bool)
    rsiDivOBLevel = input(60, title = ‘RSI Bearish Divergence min’, type = input.integer)
    rsiDivOSLevel = input(30, title = ‘RSI Bullish Divergence min’, type = input.integer)

    // RSI Stochastic
    stochShow = input(true, title = ‘Show Stochastic RSI’, type = input.bool)
    stochUseLog = input(true, title=’ Use Log?’, type = input.bool)
    stochAvg = input(false, title=’Use Average of both K & D’, type = input.bool)
    stochSRC = input(close, title = ‘Stochastic RSI Source’, type = input.source)
    stochLen = input(14, title = ‘Stochastic RSI Length’, type = input.integer)
    stochRsiLen = input(14, title = ‘RSI Length ‘, type = input.integer)
    stochKSmooth = input(3, title = ‘Stochastic RSI K Smooth’, type = input.integer)
    stochDSmooth = input(3, title = ‘Stochastic RSI D Smooth’, type = input.integer)

    // Divergence stoch
    stochShowDiv = input(false, title = ‘Show Stoch Regular Divergences’, type = input.bool)
    stochShowHiddenDiv = input(false, title = ‘Show Stoch Hidden Divergences’, type = input.bool)

    // Schaff Trend Cycle
    tcLine = input(false, title=”Show Schaff TC line”, type=input.bool)
    tcSRC = input(close, title = ‘Schaff TC Source’, type = input.source)
    tclength = input(10, title=”Schaff TC”, type=input.integer)
    tcfastLength = input(23, title=”Schaff TC Fast Lenght”, type=input.integer)
    tcslowLength = input(50, title=”Schaff TC Slow Length”, type=input.integer)
    tcfactor = input(0.5, title=”Schaff TC Factor”, type=input.float)

    // Sommi Flag
    sommiFlagShow = input(false, title = ‘Show Sommi flag’, type = input.bool)
    sommiShowVwap = input(false, title = ‘Show Sommi F. Wave’, type = input.bool)
    sommiVwapTF = input(‘720’, title = ‘Sommi F. Wave timeframe’, type = input.string)
    sommiVwapBearLevel = input(0, title = ‘F. Wave Bear Level (less than)’, type = input.integer)
    sommiVwapBullLevel = input(0, title = ‘F. Wave Bull Level (more than)’, type = input.integer)
    soomiFlagWTBearLevel = input(0, title = ‘WT Bear Level (more than)’, type = input.integer)
    soomiFlagWTBullLevel = input(0, title = ‘WT Bull Level (less than)’, type = input.integer)
    soomiRSIMFIBearLevel = input(0, title = ‘Money flow Bear Level (less than)’, type = input.integer)
    soomiRSIMFIBullLevel = input(0, title = ‘Money flow Bull Level (more than)’, type = input.integer)

    // Sommi Diamond
    sommiDiamondShow = input(false, title = ‘Show Sommi diamond’, type = input.bool)
    sommiHTCRes = input(’60’, title = ‘HTF Candle Res. 1’, type = input.string)
    sommiHTCRes2 = input(‘240’, title = ‘HTF Candle Res. 2’, type = input.string)
    soomiDiamondWTBearLevel = input(0, title = ‘WT Bear Level (More than)’, type = input.integer)
    soomiDiamondWTBullLevel = input(0, title = ‘WT Bull Level (Less than)’, type = input.integer)

    // macd Colors
    macdWTColorsShow = input(false, title = ‘Show MACD Colors’, type = input.bool)
    macdWTColorsTF = input(‘240’, title = ‘MACD Colors MACD TF’, type = input.string)

    darkMode = input(false, title = ‘Dark mode’, type = input.bool)

    // Colors
    colorRed = #ff0000
    colorPurple = #e600e6
    colorGreen = #3fff00
    colorOrange = #e2a400
    colorYellow = #ffe500
    colorWhite = #ffffff
    colorPink = #ff00f0
    colorBluelight = #31c0ff

    colorWT1 = #90caf9
    colorWT2 = #0d47a1

    colorWT2_ = #131722

    colormacdWT1a = #4caf58
    colormacdWT1b = #af4c4c
    colormacdWT1c = #7ee57e
    colormacdWT1d = #ff3535

    colormacdWT2a = #305630
    colormacdWT2b = #310101
    colormacdWT2c = #132213
    colormacdWT2d = #770000

    // } PARAMETERS

    // FUNCTIONS {

    // Divergences
    f_top_fractal(src) => src[4] < src[2] and src[3] < src[2] and src[2] > src[1] and src[2] > src[0]
    f_bot_fractal(src) => src[4] > src[2] and src[3] > src[2] and src[2] < src[1] and src[2] < src[0]
    f_fractalize(src) => f_top_fractal(src) ? 1 : f_bot_fractal(src) ? -1 : 0

    f_findDivs(src, topLimit, botLimit, useLimits) =>
    fractalTop = f_fractalize(src) > 0 and (useLimits ? src[2] >= topLimit : true) ? src[2] : na
    fractalBot = f_fractalize(src) < 0 and (useLimits ? src[2] <= botLimit : true) ? src[2] : na
    highPrev = valuewhen(fractalTop, src[2], 0)[2]
    highPrice = valuewhen(fractalTop, high[2], 0)[2]
    lowPrev = valuewhen(fractalBot, src[2], 0)[2]
    lowPrice = valuewhen(fractalBot, low[2], 0)[2]
    bearSignal = fractalTop and high[2] > highPrice and src[2] < highPrev
    bullSignal = fractalBot and low[2] < lowPrice and src[2] > lowPrev
    bearDivHidden = fractalTop and high[2] < highPrice and src[2] > highPrev
    bullDivHidden = fractalBot and low[2] > lowPrice and src[2] < lowPrev
    [fractalTop, fractalBot, lowPrev, bearSignal, bullSignal, bearDivHidden, bullDivHidden]

    // RSI+MFI
    f_rsimfi(_period, _multiplier, _tf) => security(syminfo.tickerid, _tf, sma(((close – open) / (high – low)) * _multiplier, _period) – rsiMFIPosY)

    // WaveTrend
    f_wavetrend(src, chlen, avg, malen, tf) =>
    tfsrc = security(syminfo.tickerid, tf, src)
    esa = ema(tfsrc, chlen)
    de = ema(abs(tfsrc – esa), chlen)
    ci = (tfsrc – esa) / (0.015 * de)
    wt1 = security(syminfo.tickerid, tf, ema(ci, avg))
    wt2 = security(syminfo.tickerid, tf, sma(wt1, malen))
    wtVwap = wt1 – wt2
    wtOversold = wt2 <= osLevel
    wtOverbought = wt2 >= obLevel
    wtCross = cross(wt1, wt2)
    wtCrossUp = wt2 – wt1 <= 0
    wtCrossDown = wt2 – wt1 >= 0
    wtCrosslast = cross(wt1[2], wt2[2])
    wtCrossUplast = wt2[2] – wt1[2] <= 0
    wtCrossDownlast = wt2[2] – wt1[2] >= 0
    [wt1, wt2, wtOversold, wtOverbought, wtCross, wtCrossUp, wtCrossDown, wtCrosslast, wtCrossUplast, wtCrossDownlast, wtVwap]

    // Schaff Trend Cycle
    f_tc(src, length, fastLength, slowLength) =>
    ema1 = ema(src, fastLength)
    ema2 = ema(src, slowLength)
    macdVal = ema1 – ema2
    alpha = lowest(macdVal, length)
    beta = highest(macdVal, length) – alpha
    gamma = (macdVal – alpha) / beta * 100
    gamma := beta > 0 ? gamma : nz(gamma[1])
    delta = gamma
    delta := na(delta[1]) ? delta : delta[1] + tcfactor * (gamma – delta[1])
    epsilon = lowest(delta, length)
    zeta = highest(delta, length) – epsilon
    eta = (delta – epsilon) / zeta * 100
    eta := zeta > 0 ? eta : nz(eta[1])
    stcReturn = eta
    stcReturn := na(stcReturn[1]) ? stcReturn : stcReturn[1] + tcfactor * (eta – stcReturn[1])
    stcReturn

    // Stochastic RSI
    f_stochrsi(_src, _stochlen, _rsilen, _smoothk, _smoothd, _log, _avg) =>
    src = _log ? log(_src) : _src
    rsi = rsi(src, _rsilen)
    kk = sma(stoch(rsi, rsi, rsi, _stochlen), _smoothk)
    d1 = sma(kk, _smoothd)
    avg_1 = avg(kk, d1)
    k = _avg ? avg_1 : kk
    [k, d1]

    // MACD
    f_macd(src, fastlen, slowlen, sigsmooth, tf) =>
    fast_ma = security(syminfo.tickerid, tf, ema(src, fastlen))
    slow_ma = security(syminfo.tickerid, tf, ema(src, slowlen))
    macd = fast_ma – slow_ma,
    signal = security(syminfo.tickerid, tf, sma(macd, sigsmooth))
    hist = macd – signal
    [macd, signal, hist]

    // MACD Colors on WT
    f_macdWTColors(tf) =>
    hrsimfi = f_rsimfi(rsiMFIperiod, rsiMFIMultiplier, tf)
    [macd, signal, hist] = f_macd(close, 28, 42, 9, macdWTColorsTF)
    macdup = macd >= signal
    macddown = macd <= signal
    macdWT1Color = macdup ? hrsimfi > 0 ? colormacdWT1c : colormacdWT1a : macddown ? hrsimfi < 0 ? colormacdWT1d : colormacdWT1b : na
    macdWT2Color = macdup ? hrsimfi < 0 ? colormacdWT2c : colormacdWT2a : macddown ? hrsimfi < 0 ? colormacdWT2d : colormacdWT2b : na
    [macdWT1Color, macdWT2Color]

    // Get higher timeframe candle
    f_getTFCandle(_tf) =>
    _open = security(heikinashi(syminfo.tickerid), _tf, open, barmerge.gaps_off, barmerge.lookahead_on)
    _close = security(heikinashi(syminfo.tickerid), _tf, close, barmerge.gaps_off, barmerge.lookahead_on)
    _high = security(heikinashi(syminfo.tickerid), _tf, high, barmerge.gaps_off, barmerge.lookahead_on)
    _low = security(heikinashi(syminfo.tickerid), _tf, low, barmerge.gaps_off, barmerge.lookahead_on)
    hl2 = (_high + _low) / 2.0
    newBar = change(_open)
    candleBodyDir = _close > _open
    [candleBodyDir, newBar]

    // Sommi flag
    f_findSommiFlag(tf, wt1, wt2, rsimfi, wtCross, wtCrossUp, wtCrossDown) =>
    [hwt1, hwt2, hwtOversold, hwtOverbought, hwtCross, hwtCrossUp, hwtCrossDown, hwtCrosslast, hwtCrossUplast, hwtCrossDownlast, hwtVwap] = f_wavetrend(wtMASource, wtChannelLen, wtAverageLen, wtMALen, tf)

    bearPattern = rsimfi < soomiRSIMFIBearLevel and
    wt2 > soomiFlagWTBearLevel and
    wtCross and
    wtCrossDown and
    hwtVwap < sommiVwapBearLevel

    bullPattern = rsimfi > soomiRSIMFIBullLevel and
    wt2 < soomiFlagWTBullLevel and
    wtCross and
    wtCrossUp and
    hwtVwap > sommiVwapBullLevel

    [bearPattern, bullPattern, hwtVwap]

    f_findSommiDiamond(tf, tf2, wt1, wt2, wtCross, wtCrossUp, wtCrossDown) =>
    [candleBodyDir, newBar] = f_getTFCandle(tf)
    [candleBodyDir2, newBar2] = f_getTFCandle(tf2)
    bearPattern = wt2 >= soomiDiamondWTBearLevel and
    wtCross and
    wtCrossDown and
    not candleBodyDir and
    not candleBodyDir2
    bullPattern = wt2 <= soomiDiamondWTBullLevel and
    wtCross and
    wtCrossUp and
    candleBodyDir and
    candleBodyDir2
    [bearPattern, bullPattern]

    // } FUNCTIONS

    // CALCULATE INDICATORS {

    // RSI
    rsi = rsi(rsiSRC, rsiLen)
    rsiColor = rsi <= rsiOversold ? colorGreen : rsi >= rsiOverbought ? colorRed : colorPurple

    // RSI + MFI Area
    rsiMFI = f_rsimfi(rsiMFIperiod, rsiMFIMultiplier, timeframe.period)
    rsiMFIColor = rsiMFI > 0 ? #3ee145 : #ff3d2e

    // Calculates WaveTrend
    [wt1, wt2, wtOversold, wtOverbought, wtCross, wtCrossUp, wtCrossDown, wtCross_last, wtCrossUp_last, wtCrossDown_last, wtVwap] = f_wavetrend(wtMASource, wtChannelLen, wtAverageLen, wtMALen, timeframe.period)

    // Stochastic RSI
    [stochK, stochD] = f_stochrsi(stochSRC, stochLen, stochRsiLen, stochKSmooth, stochDSmooth, stochUseLog, stochAvg)

    // Schaff Trend Cycle
    tcVal = f_tc(tcSRC, tclength, tcfastLength, tcslowLength)

    // Sommi flag
    [sommiBearish, sommiBullish, hvwap] = f_findSommiFlag(sommiVwapTF, wt1, wt2, rsiMFI, wtCross, wtCrossUp, wtCrossDown)

    //Sommi diamond
    [sommiBearishDiamond, sommiBullishDiamond] = f_findSommiDiamond(sommiHTCRes, sommiHTCRes2, wt1, wt2, wtCross, wtCrossUp, wtCrossDown)

    // macd colors
    [macdWT1Color, macdWT2Color] = f_macdWTColors(macdWTColorsTF)

    // WT Divergences
    [wtFractalTop, wtFractalBot, wtLow_prev, wtBearDiv, wtBullDiv, wtBearDivHidden, wtBullDivHidden] = f_findDivs(wt2, wtDivOBLevel, wtDivOSLevel, true)

    [wtFractalTop_add, wtFractalBot_add, wtLow_prev_add, wtBearDiv_add, wtBullDiv_add, wtBearDivHidden_add, wtBullDivHidden_add] = f_findDivs(wt2, wtDivOBLevel_add, wtDivOSLevel_add, true)
    [wtFractalTop_nl, wtFractalBot_nl, wtLow_prev_nl, wtBearDiv_nl, wtBullDiv_nl, wtBearDivHidden_nl, wtBullDivHidden_nl] = f_findDivs(wt2, 0, 0, false)

    wtBearDivHidden_ = showHiddenDiv_nl ? wtBearDivHidden_nl : wtBearDivHidden
    wtBullDivHidden_ = showHiddenDiv_nl ? wtBullDivHidden_nl : wtBullDivHidden

    wtBearDivColor = (wtShowDiv and wtBearDiv) or (wtShowHiddenDiv and wtBearDivHidden_) ? colorRed : na
    wtBullDivColor = (wtShowDiv and wtBullDiv) or (wtShowHiddenDiv and wtBullDivHidden_) ? colorGreen : na

    wtBearDivColor_add = (wtShowDiv and (wtDivOBLevel_addshow and wtBearDiv_add)) or (wtShowHiddenDiv and (wtDivOBLevel_addshow and wtBearDivHidden_add)) ? #9a0202 : na
    wtBullDivColor_add = (wtShowDiv and (wtDivOBLevel_addshow and wtBullDiv_add)) or (wtShowHiddenDiv and (wtDivOBLevel_addshow and wtBullDivHidden_add)) ? #1b5e20 : na

    // RSI Divergences
    [rsiFractalTop, rsiFractalBot, rsiLow_prev, rsiBearDiv, rsiBullDiv, rsiBearDivHidden, rsiBullDivHidden] = f_findDivs(rsi, rsiDivOBLevel, rsiDivOSLevel, true)
    [rsiFractalTop_nl, rsiFractalBot_nl, rsiLow_prev_nl, rsiBearDiv_nl, rsiBullDiv_nl, rsiBearDivHidden_nl, rsiBullDivHidden_nl] = f_findDivs(rsi, 0, 0, false)

    rsiBearDivHidden_ = showHiddenDiv_nl ? rsiBearDivHidden_nl : rsiBearDivHidden
    rsiBullDivHidden_ = showHiddenDiv_nl ? rsiBullDivHidden_nl : rsiBullDivHidden

    rsiBearDivColor = (rsiShowDiv and rsiBearDiv) or (rsiShowHiddenDiv and rsiBearDivHidden_) ? colorRed : na
    rsiBullDivColor = (rsiShowDiv and rsiBullDiv) or (rsiShowHiddenDiv and rsiBullDivHidden_) ? colorGreen : na

    // Stoch Divergences
    [stochFractalTop, stochFractalBot, stochLow_prev, stochBearDiv, stochBullDiv, stochBearDivHidden, stochBullDivHidden] = f_findDivs(stochK, 0, 0, false)

    stochBearDivColor = (stochShowDiv and stochBearDiv) or (stochShowHiddenDiv and stochBearDivHidden) ? colorRed : na
    stochBullDivColor = (stochShowDiv and stochBullDiv) or (stochShowHiddenDiv and stochBullDivHidden) ? colorGreen : na

    // Small Circles WT Cross
    signalColor = wt2 – wt1 > 0 ? color.red : color.lime

    // Buy signal.
    buySignal = wtCross and wtCrossUp and wtOversold

    buySignalDiv = (wtShowDiv and wtBullDiv) or
    (wtShowDiv and wtBullDiv_add) or
    (stochShowDiv and stochBullDiv) or
    (rsiShowDiv and rsiBullDiv)

    buySignalDiv_color = wtBullDiv ? colorGreen :
    wtBullDiv_add ? color.new(colorGreen, 60) :
    rsiShowDiv ? colorGreen : na

    // Sell signal
    sellSignal = wtCross and wtCrossDown and wtOverbought

    sellSignalDiv = (wtShowDiv and wtBearDiv) or
    (wtShowDiv and wtBearDiv_add) or
    (stochShowDiv and stochBearDiv) or
    (rsiShowDiv and rsiBearDiv)

    sellSignalDiv_color = wtBearDiv ? colorRed :
    wtBearDiv_add ? color.new(colorRed, 60) :
    rsiBearDiv ? colorRed : na

    // Gold Buy
    lastRsi = valuewhen(wtFractalBot, rsi[2], 0)[2]
    wtGoldBuy = ((wtShowDiv and wtBullDiv) or (rsiShowDiv and rsiBullDiv)) and
    wtLow_prev <= osLevel3 and
    wt2 > osLevel3 and
    wtLow_prev – wt2 <= -5 and
    lastRsi < 30

    // } CALCULATE INDICATORS

    // DRAW {
    bgcolor(darkMode ? color.new(#000000, 80) : na)
    zLine = plot(0, color = color.new(colorWhite, 50))

    // MFI BAR
    rsiMfiBarTopLine = plot(rsiMFIShow ? -95 : na, title = ‘MFI Bar TOP Line’, transp = 100)
    rsiMfiBarBottomLine = plot(rsiMFIShow ? -99 : na, title = ‘MFI Bar BOTTOM Line’, transp = 100)
    fill(rsiMfiBarTopLine, rsiMfiBarBottomLine, title = ‘MFI Bar Colors’, color = rsiMFIColor, transp = 75)

    // WT Areas
    plot(wtShow ? wt1 : na, style = plot.style_area, title = ‘WT Wave 1’, color = macdWTColorsShow ? macdWT1Color : colorWT1, transp = 0)
    plot(wtShow ? wt2 : na, style = plot.style_area, title = ‘WT Wave 2’, color = macdWTColorsShow ? macdWT2Color : darkMode ? colorWT2_ : colorWT2 , transp = 20)

    // VWAP
    plot(vwapShow ? wtVwap : na, title = ‘VWAP’, color = colorYellow, style = plot.style_area, linewidth = 2, transp = 45)

    // MFI AREA
    rsiMFIplot = plot(rsiMFIShow ? rsiMFI: na, title = ‘RSI+MFI Area’, color = rsiMFIColor, transp = 20)
    fill(rsiMFIplot, zLine, rsiMFIColor, transp = 40)

    // WT Div

    plot(series = wtFractalTop ? wt2[2] : na, title = ‘WT Bearish Divergence’, color = wtBearDivColor, linewidth = 2, offset = -2)
    plot(series = wtFractalBot ? wt2[2] : na, title = ‘WT Bullish Divergence’, color = wtBullDivColor, linewidth = 2, offset = -2)

    // WT 2nd Div
    plot(series = wtFractalTop_add ? wt2[2] : na, title = ‘WT 2nd Bearish Divergence’, color = wtBearDivColor_add, linewidth = 2, offset = -2)
    plot(series = wtFractalBot_add ? wt2[2] : na, title = ‘WT 2nd Bullish Divergence’, color = wtBullDivColor_add, linewidth = 2, offset = -2)

    // RSI
    plot(rsiShow ? rsi : na, title = ‘RSI’, color = rsiColor, linewidth = 2, transp = 25)

    // RSI Div
    plot(series = rsiFractalTop ? rsi[2] : na, title=’RSI Bearish Divergence’, color = rsiBearDivColor, linewidth = 1, offset = -2)
    plot(series = rsiFractalBot ? rsi[2] : na, title=’RSI Bullish Divergence’, color = rsiBullDivColor, linewidth = 1, offset = -2)

    // Stochastic RSI
    stochKplot = plot(stochShow ? stochK : na, title = ‘Stoch K’, color = color.new(#21baf3, 0), linewidth = 2)
    stochDplot = plot(stochShow ? stochD : na, title = ‘Stoch D’, color = color.new(#673ab7, 60), linewidth = 1)
    stochFillColor = stochK >= stochD ? color.new(#21baf3, 75) : color.new(#673ab7, 60)
    fill(stochKplot, stochDplot, title=’KD Fill’, color=stochFillColor)

    // Stoch Div
    plot(series = stochFractalTop ? stochK[2] : na, title=’Stoch Bearish Divergence’, color = stochBearDivColor, linewidth = 1, offset = -2)
    plot(series = stochFractalBot ? stochK[2] : na, title=’Stoch Bullish Divergence’, color = stochBullDivColor, linewidth = 1, offset = -2)

    // Schaff Trend Cycle
    plot(tcLine ? tcVal : na, color = color.new(#673ab7, 25), linewidth = 2, title = “Schaff Trend Cycle 1”)
    plot(tcLine ? tcVal : na, color = color.new(colorWhite, 50), linewidth = 1, title = “Schaff Trend Cycle 2”)

    // Draw Overbought & Oversold lines
    //plot(obLevel, title = ‘Over Bought Level 1’, color = colorWhite, linewidth = 1, style = plot.style_circles, transp = 85)
    plot(obLevel2, title = ‘Over Bought Level 2’, color = colorWhite, linewidth = 1, style = plot.style_stepline, transp = 85)
    plot(obLevel3, title = ‘Over Bought Level 3’, color = colorWhite, linewidth = 1, style = plot.style_circles, transp = 95)

    //plot(osLevel, title = ‘Over Sold Level 1’, color = colorWhite, linewidth = 1, style = plot.style_circles, transp = 85)
    plot(osLevel2, title = ‘Over Sold Level 2’, color = colorWhite, linewidth = 1, style = plot.style_stepline, transp = 85)

    // Sommi flag
    plotchar(sommiFlagShow and sommiBearish ? 108 : na, title = ‘Sommi bearish flag’, char=’⚑’, color = colorPink, location = location.absolute, size = size.tiny, transp = 0)
    plotchar(sommiFlagShow and sommiBullish ? -108 : na, title = ‘Sommi bullish flag’, char=’⚑’, color = colorBluelight, location = location.absolute, size = size.tiny, transp = 0)
    plot(sommiShowVwap ? ema(hvwap, 3) : na, title = ‘Sommi higher VWAP’, color = colorYellow, linewidth = 2, style = plot.style_line, transp = 15)

    // Sommi diamond
    plotchar(sommiDiamondShow and sommiBearishDiamond ? 108 : na, title = ‘Sommi bearish diamond’, char=’◆’, color = colorPink, location = location.absolute, size = size.tiny, transp = 0)
    plotchar(sommiDiamondShow and sommiBullishDiamond ? -108 : na, title = ‘Sommi bullish diamond’, char=’◆’, color = colorBluelight, location = location.absolute, size = size.tiny, transp = 0)

    // Circles
    plot(wtCross ? wt2 : na, title = ‘Buy and sell circle’, color = signalColor, style = plot.style_circles, linewidth = 3, transp = 15)

    plotchar(wtBuyShow and buySignal ? -107 : na, title = ‘Buy circle’, char=’·’, color = colorGreen, location = location.absolute, size = size.small, transp = 50)
    plotchar(wtSellShow and sellSignal ? 105 : na , title = ‘Sell circle’, char=’·’, color = colorRed, location = location.absolute, size = size.small, transp = 50)

    plotchar(wtDivShow and buySignalDiv ? -106 : na, title = ‘Divergence buy circle’, char=’•’, color = buySignalDiv_color, location = location.absolute, size = size.small, offset = -2, transp = 15)
    plotchar(wtDivShow and sellSignalDiv ? 106 : na, title = ‘Divergence sell circle’, char=’•’, color = sellSignalDiv_color, location = location.absolute, size = size.small, offset = -2, transp = 15)

    plotchar(wtGoldBuy and wtGoldShow ? -106 : na, title = ‘Gold buy gold circle’, char=’•’, color = colorOrange, location = location.absolute, size = size.small, offset = -2, transp = 15)

    // } DRAW

    // ALERTS {

    // BUY
    alertcondition(buySignal, ‘Buy (Big green circle)’, ‘Green circle WaveTrend Oversold’)
    alertcondition(buySignalDiv, ‘Buy (Big green circle + Div)’, ‘Buy & WT Bullish Divergence & WT Overbought’)
    alertcondition(wtGoldBuy, ‘GOLD Buy (Big GOLDEN circle)’, ‘Green & GOLD circle WaveTrend Overbought’)
    alertcondition(sommiBullish or sommiBullishDiamond, ‘Sommi bullish flag/diamond’, ‘Blue flag/diamond’)
    alertcondition(wtCross and wtCrossUp, ‘Buy (Small green dot)’, ‘Buy small circle’)

    // SELL
    alertcondition(sommiBearish or sommiBearishDiamond, ‘Sommi bearish flag/diamond’, ‘Purple flag/diamond’)
    alertcondition(sellSignal, ‘Sell (Big red circle)’, ‘Red Circle WaveTrend Overbought’)
    alertcondition(sellSignalDiv, ‘Sell (Big red circle + Div)’, ‘Buy & WT Bearish Divergence & WT Overbought’)
    alertcondition(wtCross and wtCrossDown, ‘Sell (Small red dot)’, ‘Sell small circle’)

    // } ALERTS

     

     

     

Viewing 1 post (of 1 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login