Mehran Alman (2) - 115400
Mehran Alman (2) - 115400
Mehran Alman (2) - 115400
0 at
https://mozilla.org/MPL/2.0/
// © JuicyWolf
//@version=5
indicator("Multi-Indicators-table", overlay = true)
//###############################################################################//
//############################### USER INPUTS ##############################//
//###############################################################################//
//############################### USER INPUTS ##############################//
//###############################################################################//
//############################### USER INPUTS ##############################//
//###############################################################################//
//############################### USER INPUTS ##############################//
//###############################################################################//
//############################### USER INPUTS ##############################//
//###############################################################################//
groupTable = "Table"
// Volatility indicators //
//---------//
atrLength = input.int(14, "atr length", group="volatility indicators")
// Momentum indicators //
//---------//
rsiLength = input.int(14, "rsi length", group="momentum indicators")
rsiSource = input.source(close, "rsi source", group="momentum indicators")
// Volume indicators //
//---------//
volumeMaLength = input.int(14, "volume ema length", group="volume indicators")
//###############################################################################//
//############################### REVERSAL REVERSAL
##############################//
//###############################################################################//
//############################### REVERSAL REVERSAL
##############################//
//###############################################################################//
//############################### REVERSAL REVERSAL
##############################//
//###############################################################################//
//############################### REVERSAL REVERSAL
##############################//
//###############################################################################//
//############################### REVERSAL REVERSAL
##############################//
//
################################################################################//
// MACD Block //
//---------//
[macdLine, macdSignalLine, macdHistLine] = ta.macd(close, 12, 26, 9) // macdLine :
bullish line, signalLine : bearish line
// PP Supertrend //
//---------//
[supertrend, direction] = ta.supertrend(3, superTrendLength)
//###############################################################################//
//############################### VOLATILITY VOLATILITY
##############################//
//###############################################################################//
//############################### VOLATILITY VOLATILITY
##############################//
//###############################################################################//
//############################### VOLATILITY VOLATILITY
##############################//
//###############################################################################//
//############################### VOLATILITY VOLATILITY
##############################//
//###############################################################################//
//############################### VOLATILITY VOLATILITY
##############################//
//###############################################################################//
// ATR Block //
//---------//
atr = ta.atr(atrLength)
// BOLLINGER Block //
//---------//
[midBollinger, upBollinger, lowBollinger] = ta.bb(bbSource, bbLength, 2)
//###############################################################################//
//############################### TREND TREND TREND
##############################//
//###############################################################################//
//############################### TREND TREND TREND
##############################//
//###############################################################################//
//############################### TREND TREND TREND
##############################//
//###############################################################################//
//############################### TREND TREND TREND
##############################//
//###############################################################################//
//############################### TREND TREND TREND
##############################//
//###############################################################################//
// ADX Block //
//---------//
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
trur = ta.rma(ta.tr, len)
plus = fixnan(100 * ta.rma(plusDM, len) / trur)
minus = fixnan(100 * ta.rma(minusDM, len) / trur)
sum = plus + minus
adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), lensig)
adxMa = ta.sma(adx, 3)
adX = adxMa
adxStatus = adX > 25 ? "strong trend" : adX < 20 ? "weak trend" : "neutral trend"
adxColor = adxStatus == "strong trend" ? bullishColor : adxStatus == "weak trend" ?
bearishColor : neutralColor
// SMA Block //
//---------//
sma = ta.sma(close, 20)
// EMA Block //
//---------//
ema1 = ta.ema(close, ema1Length)
ema1Status = close > ema1 ? "closed above" : "closed below"
ema2 = ta.ema(close, ema2Length)
ema2Status = close > ema2 ? "closed above" : "closed below"
ema3 = ta.ema(close, ema3Length)
ema3Status = close > ema3 ? "closed above" : "closed below"
ema4 = ta.ema(close, ema4Length)
ema4Status = close > ema4 ? "closed above" : "closed below"
emaAboveCount = 0
emaAboveCount += ema1Status == "closed above" ? 1 : 0
emaAboveCount += ema2Status == "closed above" ? 1 : 0
emaAboveCount += ema3Status == "closed above" ? 1 : 0
emaAboveCount += ema4Status == "closed above" ? 1 : 0
// AROON Block //
//---------//
aroonUpper = 100 * (ta.highestbars(high, 14) + 14)/14
aroonLower = 100 * (ta.lowestbars(low, 14) + 14)/14
aroonStatus = aroonUpper > 50 and aroonLower < 50 ? "bullish trend" : aroonLower >
50 and aroonUpper < 50 ? "bearish trend" : "neutral trend"
aroonColor = aroonStatus == "bullish trend" ? bullishColor : aroonStatus ==
"bearish trend" ? bearishColor : neutralColor
// PSAR Block //
//---------//
psarTrendStatus = parabolicSar < close ? "bullish trend" : "bearish trend"
psartrendColor = psarTrendStatus == "bullish trend" ? bullishColor : bearishColor
// Supertrend Block //
//---------//
superTrendStatus = supertrend < close ? "bullish trend" : "bearish trend"
superTrendColor = superTrendStatus == "bullish trend" ? bullishColor : bearishColor
//###############################################################################//
//############################### MOMENTUM MOMENTUM
##############################//
//###############################################################################//
//############################### MOMENTUM MOMENTUM
##############################//
//###############################################################################//
//############################### MOMENTUM MOMENTUM
##############################//
//###############################################################################//
//############################### MOMENTUM MOMENTUM
##############################//
//###############################################################################//
//############################### MOMENTUM MOMENTUM
##############################//
//###############################################################################//
// RSI Block //
//---------//
rsi = ta.rsi(source = rsiSource, length = rsiLength )
rsiStatus = rsi > 85 ? "very overbought" : rsi > 70 ? "overbought" : rsi < 15 ?
"very oversold" : rsi < 30 ? "oversold" : "neutral"
rsiColor = rsiStatus == "very overbought" ? veryBearishColor : rsiStatus ==
"overbought" ? bearishColor : rsiStatus == "very oversold" ? veryBullishColor :
rsiStatus == "oversold" ? bullishColor : neutralColor
// MFI Block //
//---------//
mfi = ta.mfi(mfiSource, mfiLength) // money flow index
mfiStatus = mfi > 90 ? "very overbought" : mfi > 80 ? "overbought" : mfi < 10 ?
"very oversold" : mfi < 20 ? "oversold" : "neutral"
mfiColor = mfiStatus == "very overbought" ? veryBearishColor : mfiStatus ==
"overbought" ? bearishColor : mfiStatus == "very oversold" ? veryBullishColor :
mfiStatus == "oversold" ? bullishColor : neutralColor
// WILLIAM %R Block //
//---------//
// CCI Block //
//---------//
cci = ta.cci(cciSource, cciLength)
cciStatus = cci > 200 ? "very overbought" : cci > 100 ? "overbought" : cci < -200 ?
"very oversold" : cci < -100 ? "oversold" : "neutral"
cciColor = cciStatus == "very overbought" ? veryBearishColor : cciStatus ==
"overbought" ? bearishColor : cciStatus == "oversold" ? bullishColor : cciStatus ==
"very oversold" ? veryBullishColor : neutralColor
// STOCH Block //
//---------//
stoch = ta.stoch(close, high, low, 14)
stochStatus = stoch > 80 ? "overbought" : stoch < 20 ? "oversold" : "neutral"
stochColor = stochStatus == "overbought" ? bearishColor : stochStatus == "oversold"
? bullishColor : neutralColor
// MOMENTUM Block //
//---------//
mom = ta.mom(source = close, length = 10)
//###############################################################################//
//############################### VOLUME VOLUME ##############################//
//###############################################################################//
//############################### VOLUME VOLUME ##############################//
//###############################################################################//
//############################### VOLUME VOLUME ##############################//
//###############################################################################//
//############################### VOLUME VOLUME ##############################//
//###############################################################################//
//############################### VOLUME VOLUME ##############################//
//###############################################################################//
//###############################################################################//
//############################### RISK ASSESSMENT ##############################//
//###############################################################################//
//############################### RISK ASSESSMENT ##############################//
//###############################################################################//
//############################### RISK ASSESSMENT ##############################//
//###############################################################################//
//############################### RISK ASSESSMENT ##############################//
//###############################################################################//
//############################### RISK ASSESSMENT ##############################//
//###############################################################################//
slLong = ta.highest(high, 3) + atr * atrMult
slShort = ta.lowest(low, 3) - atr * atrMult
ph = ta.pivothigh(10, 10)
pl = ta.pivotlow(10, 10)
length = 14
// Calculate the difference between the last 10 pivot highs and pivot lows
var phTotal = array.new_float(length)
var plTotal = array.new_float(length)
for i = 0 to length - 1
array.push(phTotal, ph[i])
array.push(plTotal, pl[i])
//###############################################################################//
//############################### FRONT END ##############################//
//###############################################################################//
//############################### FRONT END ##############################//
//###############################################################################//
//############################### FRONT END ##############################//
//###############################################################################//
//############################### FRONT END ##############################//
//###############################################################################//
//############################### FRONT END ##############################//
//###############################################################################//
n = "\n"
colorRow1 = color.blue
//Populating table
if displayTableVolatility
table.cell(table_id = metricTable, column = 1, row = 1, text = "Volatility" +
n + "⎯⎯⎯⎯⎯⎯⎯⎯" + n + "Value" + n + "⎯⎯⎯⎯⎯⎯" + n + "Status", text_color=colorRow1,
text_halign = text.align_left, text_size=tableTextSize)
table.cell(table_id = metricTable, column = 2, row = 1, text = "ATR" + n +
"⎯⎯⎯⎯" + n + str.tostring(math.round(atr)) + " : " +
str.tostring(math.round((atr/close)*100, 2)) + "%" + n + "⎯⎯⎯⎯" + n + atrStatus,
text_color=color.white, text_halign = text.align_center, bgcolor=atrColor,
text_size=tableTextSize)
table.cell(table_id = metricTable, column = 3, row = 1, text = "Bollinger
Bands" + n + "⎯⎯⎯⎯" + n + bbEcartypeStatus + " : " +
str.tostring(math.round((bbEcartype/close)*100, 2)) + "%" + n + "⎯⎯⎯⎯" + n + "bb
phase" + " : " + marketPhase, text_color=color.white, text_halign =
text.align_center, bgcolor=bbColor, text_size=tableTextSize)
if displayTableReversal
table.cell(table_id = metricTable, column = 1, row = 4, text = "Reversal" + n
+ "⎯⎯⎯⎯⎯⎯⎯⎯" + n + "Value" + n + "⎯⎯⎯⎯⎯⎯" + n + "Status", text_color=colorRow1,
text_halign = text.align_left, text_size=tableTextSize)
table.cell(table_id = metricTable, column = 2, row = 4, text = "PSAR" + n +
"⎯⎯⎯⎯" + n + str.tostring(math.round(parabolicSar)) + n + "⎯⎯⎯⎯" + n + psarStatus,
text_color=color.white, text_halign = text.align_center, bgcolor=psarColor,
text_size=tableTextSize)
table.cell(table_id = metricTable, column = 3, row = 4, text = "MACD" + n +
"⎯⎯⎯⎯" + n + str.tostring(math.round(macdLine)) + n + "⎯⎯⎯⎯" + n + macdStatus,
text_color=color.white, text_halign = text.align_center, bgcolor=macdColor,
text_size=tableTextSize)
table.cell(table_id = metricTable, column = 4, row = 4, text = "Super Trend"
+ n + "⎯⎯⎯⎯" + n + str.tostring(math.round(supertrend)) + n + "⎯⎯⎯⎯" + n +
supertrendStatus, text_color=color.white, text_halign = text.align_center,
bgcolor=supertrendColor, text_size=tableTextSize)
if displayTableTrend
table.cell(table_id = metricTable, column = 1, row = 2, text = "Trend" + n +
"⎯⎯⎯⎯⎯⎯⎯⎯" + n + "Value" + n + "⎯⎯⎯⎯⎯⎯" + n + "Status", text_color=colorRow1,
text_halign = text.align_left, text_size=tableTextSize)
table.cell(table_id = metricTable, column = 2, row = 2, text = "ADX" + n +
"⎯⎯⎯⎯" + n + str.tostring(math.round(adX)) + n + "⎯⎯⎯⎯" + n + adxStatus,
text_color=color.white, text_halign = text.align_center, bgcolor=adxColor,
text_size=tableTextSize)
table.cell(table_id = metricTable, column = 3, row = 2, text = "EMA" + n +
"⎯⎯⎯⎯" + n + str.tostring(ema1Length) + " : "+ str.tostring(ema1Status) + n +
"⎯⎯⎯⎯" + n + str.tostring(ema2Length) + " : "+ str.tostring(ema2Status) + n +
"⎯⎯⎯⎯" + n + str.tostring(ema3Length) + " : "+ str.tostring(ema3Status) + n +
"⎯⎯⎯⎯" + n + str.tostring(ema4Length) + " : "+ str.tostring(ema4Status) + n +
"⎯⎯⎯⎯" + n + emaStatus + " trend", text_color=color.white, text_halign =
text.align_center, bgcolor=emaColor, text_size=tableTextSize)
table.cell(table_id = metricTable, column = 4, row = 2, text = "Aroon" + n +
"⎯⎯⎯⎯" + n + aroonStatus, text_color=color.white, text_halign = text.align_center,
bgcolor=aroonColor, text_size=tableTextSize)
table.cell(table_id = metricTable, column = 5, row = 2, text = "PSAR" + n +
"⎯⎯⎯⎯" + n + str.tostring(math.round(parabolicSar)) + n + "⎯⎯⎯⎯" + n +
psarTrendStatus, text_color=color.white, text_halign = text.align_center,
bgcolor=psartrendColor, text_size=tableTextSize)
table.cell(table_id = metricTable, column = 6, row = 2, text = "Super Trend"
+ n + "⎯⎯⎯⎯" + n + str.tostring(math.round(supertrend)) + n + "⎯⎯⎯⎯" + n +
superTrendStatus, text_color=color.white, text_halign = text.align_center,
bgcolor=superTrendColor, text_size=tableTextSize)
if displayTableMomentum
table.cell(table_id = metricTable, column = 1, row = 3, text = "Momentum" + n
+ "⎯⎯⎯⎯⎯⎯⎯⎯" + n + "Value" + n + "⎯⎯⎯⎯⎯⎯" + n + "Status", text_color=colorRow1,
text_halign = text.align_left, text_size=tableTextSize)
table.cell(table_id = metricTable, column = 2, row = 3, text = "StochRSI" + n
+ "⎯⎯⎯⎯" + n + str.tostring(math.round((stochasticRsi))) + n + "⎯⎯⎯⎯" + n +
stochasticRsiStatus, text_color=color.white, text_halign = text.align_center,
bgcolor=stochasticRsiColor, text_size=tableTextSize)
table.cell(table_id = metricTable, column = 3, row = 3, text = "MFI" + n +
"⎯⎯⎯⎯" + n + str.tostring(math.round((mfi))) + n + "⎯⎯⎯⎯" + n + mfiStatus,
text_color=color.white, text_halign = text.align_center, bgcolor=mfiColor,
text_size=tableTextSize)
table.cell(table_id = metricTable, column = 4, row = 3, text = "William %R" +
n + "⎯⎯⎯⎯" + n + str.tostring(math.round((williamVixFormula))) + n + "⎯⎯⎯⎯" + n +
wvxStatus, text_color=color.white, text_halign = text.align_center,
bgcolor=wvxColor, text_size=tableTextSize)
table.cell(table_id = metricTable, column = 5, row = 3, text = "RSI" + n +
"⎯⎯⎯⎯" + n + str.tostring(math.round(rsi)) + n + "⎯⎯⎯⎯" + n + rsiStatus,
text_color=color.white, text_halign = text.align_center, bgcolor=rsiColor,
text_size=tableTextSize)
table.cell(table_id = metricTable, column = 6, row = 3, text = "CCI" + n +
"⎯⎯⎯⎯" + n + str.tostring(math.round(cci)) + n + "⎯⎯⎯⎯" + n + cciStatus,
text_color=color.white, text_halign = text.align_center, bgcolor=cciColor,
text_size=tableTextSize)
if displayTableVolume
table.cell(table_id = metricTable, column = 1, row = 5, text = "Volume" + n +
"⎯⎯⎯⎯⎯⎯⎯⎯" + n + "Value" + n + "⎯⎯⎯⎯⎯⎯" + n + "Status", text_color=colorRow1,
text_halign = text.align_left, text_size=tableTextSize)
table.cell(table_id = metricTable, column = 2, row = 5, text = "Volume EMA" +
n + "⎯⎯⎯⎯" + n + str.tostring(math.round((volume))) + n + "⎯⎯⎯⎯" + n +
volumeStatus, text_color=color.white, text_halign = text.align_center,
bgcolor=colorVolume, text_size=tableTextSize)
if displayTableRiskAssesment
table.cell(table_id = metricTable, column = 1, row = 6, text = "Risk" + n +
"Assessment", text_color=color.blue, text_halign = text.align_left,
text_size=tableTextSize)
table.cell(table_id = metricTable, column = 2, row = 6, text = "Max Leverage"
+ n + "⎯⎯⎯⎯" + n + str.tostring(math.round(maxLeverage, 1)),
text_color=color.white, text_halign = text.align_center,
bgcolor=color.new(color.blue, 80), text_size=tableTextSize)
table.cell(table_id = metricTable, column = 3, row = 6, text = "ATR Stop
Loss" + n + "⎯⎯⎯⎯" + n + "Long SL: " + str.tostring(math.round(slLong, 2)) + n +
"⎯⎯⎯⎯" + n + "Short SL: " + str.tostring(math.round(slShort, 2)),
text_color=color.white, text_halign = text.align_center,
bgcolor=color.new(color.blue, 80), text_size=tableTextSize)