Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //@version=4
- //https://discord.gg/85GkC9Uk6z
- // https://discord.gg/McQAZQzwgH
- // bps https://discord.gg/fpnD4mTvUv
- study(title = 'Market Cipher B [WEA] Beta + Divergeces', shorttitle = 'WEACipher_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(13, title = 'WT Average Length', type = input.integer)
- wtMASource = input(ohlc4, 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')
- // 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')
- // } ALERTS
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement