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
等级
(803)
项目
1374
72%
仲裁
113
28% / 48%
逾期
342
25%
工作中
2
开发者 2
等级
(82)
项目
86
57%
仲裁
25
0% / 84%
逾期
19
22%
空闲
3
开发者 3
等级
(409)
项目
537
75%
仲裁
9
44% / 0%
逾期
24
4%
空闲
4
开发者 4
等级
(563)
项目
932
47%
仲裁
302
59% / 25%
逾期
124
13%
已载入
相似订单
CTRADER 30+ USD
can you help me with this project? Retrieve US30 asset price data from Ctrader Convert it to YM futures data Display the converted data on TradingView The reason why I need to convert US30 cfd prices from Ctrader into YM future prices is because all of my trading signals are from ctrader, and i need to trade on tradingview. Thanks
I need help with a small project. Basically I need to convert us30 asset price on Ctrader platform into YM futures on tradingview. Can you do it? It should be quite straight forward this is an example of what my trade signals look like
I have an Expert Advisor in ex4 and mq4 file formats that I would like to recreate with its original strategy. I believe the file have a bug or one error inside or maybe also is a Decomp file , and as a result, I am unable to understand the rules it follows to evaluate the market and open orders. I am looking for a developer who can help me reconstruct the strategy accurately. The mql4 format file would need to be
Skarito98 30 - 100 USD
Always stay winning and survive....we all want a better life now this is a chance someone can take,to change their lives for the better.No one is supposed to suffer in this world,we create and invert new things and come up with ideas to solve situations we come across especially when it comes to finance. We all need better things in life and God want good things for us
hello i need a professional to convert a fully functioning buy and sell signal strategy on tradingview to EA mt4 , the signals trigger when the bar closed match all conditions , it has a specific calculation for strength of each pair
Attached is a ThinkScript Strategy. I would like to convert it into an Expert Advisor for MQL4. Here is a link of a PineScript code for a similar indicator. This is just to give you additional info about the indicator, hence helping you to convert it from Thinkscript to MQL4
Only with feedbacks 30 - 100 USD
PINESCRIPT->MQL4 i need a exactly conversion of the file attached to mql4 with source code (i need the source code), obviously as indicator for mt4 let me know your bid and timeline
C onversion from Ninjatrader to Tradingview. This includes thorough testing and debugging to guarantee that the script functions as intended on Tradingview...If you are in for this job kindly bid
Hi, i have a tos script i need converted to Ninja script, but someone who knows both coding. Cant be someone who is just going to paste into chat gpt, it requires more understanding for compatibility
Hi, i have a tos script i need converted to Ninja script, but someone who knows both coding. Cant be someone who is just going to paste into chat gpt, it requires more understanding for compatibility

项目信息

预算
30 - 200 USD
开发人员
27 - 180 USD