Convert tradingview pine script to mt5

MQL5 スクリプト 変換

指定

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

応答済み

1
開発者 1
評価
(780)
プロジェクト
1344
72%
仲裁
109
28% / 49%
期限切れ
340
25%
取り込み中
2
開発者 2
評価
(82)
プロジェクト
86
57%
仲裁
25
0% / 84%
期限切れ
19
22%
3
開発者 3
評価
(399)
プロジェクト
527
74%
仲裁
9
44% / 0%
期限切れ
24
5%
仕事中
4
開発者 4
評価
(555)
プロジェクト
922
48%
仲裁
300
59% / 25%
期限切れ
123
13%
類似した注文
👋 hello great developer am looking for expert to help me with convert pine script indicator into mt4 indicator? I will be looking for great developer to bid for this project Best regards
Not sure if you’re familiar with the backtesting software (Forex Tester.) They require you to upload experts in DLL format. They won’t accept MQL4. Would you be able to convert my expert advisor (MQ4 format) into DLL? It’s a simple MQ4 to DLL conversion
Hello, I am looking for a developer, that can convert my MQL5 EA to MQL4 EA. The code is simple and not too long, just a little above 300, including comments. I will be willing to communicate for fast and clean partnership. Have a great day everyone! Kind regards, Morka555
I'm creating Orders Alerts via tradingview, that are send to my Metatrader broker AMP, but i want them to copy themselves to my Tradovate account, i need help to create a bridge between those two using the API, so that every trade taken on Metatrader is also taken on my Tradovate account, Thanks
Not sure if you’re familiar with the backtesting software (Forex Tester.) They require you to upload experts in DLL format. They won’t accept MQL4. Would you be able to convert my expert advisor (MQ4 format) into DLL? It’s a simple MQ4 to DLL conversion
I am looking for someone to help me to automate my trading from mt4/5 expert advisors and own trades to tradovate. My trades are generated by my expert in MT5, I want those trades copied to Tradovate's platform using their API to different accounts, that some programmers have suggested is a REST API and should be easily doable
I need someone to convert the 2 Tradingview scripts into MQL5 indicators I NDICATOR INPUTS MOBILE NOTIFICATION ALERT EMAIL NOTIFICATION ALERT *NEEDS TO WORK EXACTLY AS THE INDICATOR ON TRADINGVIEW*(NO LAG & NO REPAINT/ NEEDS TO GIVE SIGNAL AT THE SAME CANDLE AND NOT AFTER THE CANDLE CLOSES ) TRADING MANAGEMENT SYSTEM Trading panel for opening orders in 1 click! To help the trader, sets take profits, stop losses
Good morning i wang a developer to create me a simple software to convert MT4 to MT5 Indicators or EAs or Vice-versa. The software should be installed as .exe(for Windows). If you have idea let me know we start
Hello, looking for an experienced EA coder to convert an existing EA to CBot. Conversion to be ready for test run before London opens on Monday. More details will be provided to the shortlisted developer
Hello First convert luxalgo indicator to mt4 Second create a dash board for inputs support/resistance line input Select pairs (drops down for each) : Risk input Trade mode selection Execution button Rrr Time frame: Third create strategy: Orders will be executed in the condition that the market will break a luxalgo indicator resistance line in the 1 minute below the price line inputed or break a luxalgo indicator

プロジェクト情報

予算
30 - 200 USD
開発者用
27 - 180 USD