Convert tradingview pine script to mt5

MQL5 Scripts Conversão

Termos de Referência

Need to following tradingview pint script converted into mt5, all items should have option to enable / disable individually.  Numbers should be edible , Back testing in mt5 should also work.

If you need more info, search on google for trading view VuManChu B-Divergences

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

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

Respondido

1
Desenvolvedor 1
Classificação
(807)
Projetos
1382
72%
Arbitragem
113
29% / 48%
Expirado
343
25%
Livre
2
Desenvolvedor 2
Classificação
(82)
Projetos
86
57%
Arbitragem
25
0% / 84%
Expirado
19
22%
Livre
3
Desenvolvedor 3
Classificação
(409)
Projetos
537
75%
Arbitragem
9
44% / 0%
Expirado
24
4%
Livre
4
Desenvolvedor 4
Classificação
(564)
Projetos
933
47%
Arbitragem
302
59% / 25%
Expirado
125
13%
Carregado

Informações sobre o projeto

Orçamento
30 - 200 USD
Desenvolvedor
27 - 180 USD