kaigouthro

matrixautotable

kaigouthro Updated   
Library "matrixautotable"
Automatic Table from Matrixes with pseudo correction for na values and default color override for missing values. uses overloads in cases of cheap float only, with additional addon for strings next, then cell colors, then text colors, and tooltips last.. basic size and location are auto, include the template to speed this up...

TODO : make bools version

var string  group_table    = ' Table'
var int     _tblssizedemo  = input.int    ( 10 )
string      tableYpos      = input.string ( 'middle'    , '↕'               , inline = 'place' , group = group_table, options=['top', 'middle', 'bottom'])
string      tableXpos      = input.string ( 'center'    , '↔'               , inline = 'place' , group = group_table, options=['left', 'center', 'right'], tooltip='Position on the chart.')
int         _textSize      = input.int    ( 1           , 'Table Text Size' , inline = 'place' , group = group_table)

var matrix<float>  _floatmatrix     = matrix.new<float>  (_tblssizedemo, _tblssizedemo,  0            ) 
var matrix<string> _stringmatrix     = matrix.new<string> (_tblssizedemo, _tblssizedemo,  'test'       ) 
var matrix<color>  _bgcolormatrix    = matrix.new<color>  (_tblssizedemo, _tblssizedemo,  color.white  ) 
var matrix<color>  _textcolormatrix  = matrix.new<color>  (_tblssizedemo, _tblssizedemo,  color.black  ) 
var matrix<string> _tooltipmatrix    = matrix.new<string> (_tblssizedemo, _tblssizedemo,  'tool'       ) 


// basic table ready to go with the aboec matrixes (replace in your code)
//   for demo purpose, random colors, random nums, random na vals

if barstate.islast
    varip _xsize = matrix.rows    (_floatmatrix) -1
    varip _ysize = matrix.columns (_floatmatrix) -1
    for _xis = 0  to _xsize  -1  by 1
        for _yis  = 0 to _ysize  -1 by 1
            _randomr = int(math.random(50,250))
            _randomg = int(math.random(50,250))
            _randomb = int(math.random(50,250))
            _randomt = int(math.random(10,90 ))
            bgcolor  = color.rgb(250 - _randomr, 250 - _randomg, 250 - _randomb, 100 - _randomt )
            txtcolor = color.rgb(_randomr, _randomg, _randomb, _randomt                         )
            matrix.set(_bgcolormatrix    ,_yis,_xis, bgcolor )
            matrix.set(_textcolormatrix  ,_yis,_xis, txtcolor)
            matrix.set(_floatmatrix      ,_yis,_xis, _randomr)
            
            // random na
            _ymiss = math.floor(math.random(0, _yis))
            _xmiss = math.floor(math.random(0, _xis))
            matrix.set( _floatmatrix     ,_ymiss,  _xis, na)
            matrix.set( _stringmatrix    ,_ymiss,  _xis, na)
            matrix.set( _bgcolormatrix   ,_ymiss,  _xis, na)
            matrix.set( _textcolormatrix ,_ymiss,  _xis, na)
            matrix.set( _tooltipmatrix   ,_ymiss,  _xis, na)

// import here
import kaigouthro/matrixautotable/1 as mtxtbl

// and render table.. 
mtxtbl.matrixtable(_floatmatrix, _stringmatrix, _bgcolormatrix, _textcolormatrix, _tooltipmatrix, _textSize   ,tableYpos   ,tableXpos)

matrixtable(_floatmatrix, _stringmatrix, _bgcolormatrix, _textcolormatrix, _tooltipmatrix, _textSize, tableYpos, tableXpos) matrixtable
  Parameters:
    _floatmatrix: <matrix> float vals
    _stringmatrix: <matrix> string
    _bgcolormatrix: <matrix> color
    _textcolormatrix: <matrix>color
    _tooltipmatrix: <matrix> string
    _textSize: int
    tableYpos: string
    tableXpos: string

matrixtable(_floatmatrix, _stringmatrix, _bgcolormatrix, _textcolormatrix, _textSize, tableYpos, tableXpos) matrixtable
  Parameters:
    _floatmatrix: <matrix> float vals
    _stringmatrix: <matrix> string
    _bgcolormatrix: <matrix> color
    _textcolormatrix: <matrix>color
    _textSize: int
    tableYpos: string
    tableXpos: string

matrixtable(_floatmatrix, _stringmatrix, _bgcolormatrix, _txtdefcol, _textSize, tableYpos, tableXpos) matrixtable
  Parameters:
    _floatmatrix: <matrix> float vals
    _stringmatrix: <matrix> string
    _bgcolormatrix: <matrix> color
    _txtdefcol: color
    _textSize: int
    tableYpos: string
    tableXpos: string

matrixtable(_floatmatrix, _stringmatrix, _txtdefcol, _bgdefcol, _textSize, tableYpos, tableXpos) matrixtable
  Parameters:
    _floatmatrix: <matrix> float vals
    _stringmatrix: <matrix> string
    _txtdefcol: color
    _bgdefcol: color
    _textSize: int
    tableYpos: string
    tableXpos: string

matrixtable(_floatmatrix, _txtdefcol, _bgdefcol, _textSize, tableYpos, tableXpos) matrixtable
  Parameters:
    _floatmatrix: <matrix> float vals
    _txtdefcol: color
    _bgdefcol: color
    _textSize: int
    tableYpos: string
    tableXpos: string
Release Notes:
v2

Updated:
matrixtable(_stringmatrix, _textSize, tableYpos, tableXpos) matrixtable
  Parameters:
    _stringmatrix: float vals
    _textSize: int
    tableYpos: string
    tableXpos: string
Release Notes:
v3

Fixed Error allowing for table resizing dynamically.
Release Notes:
v4
minor glitch, fixed table repaint issue
Release Notes:
v5

Updated Glitch problem on varying matrix sizes.
probably,..
Release Notes:
v6

ix! matrixes of differrent sizes will fill to match largest of them with na vals
Release Notes:
v7
Release Notes:
v8
quick lastconfirmedhistory availability and better color invert/default cols
Release Notes:
v9

Now can fit to screen area, change cell sizing, and returns table object for adjusting frame/border/bacckground

Added:
bgcolor(bgcolor)
  Set background or Table
  Parameters:
    bgcolor: New Background Color
  Returns: void

border()

frame()

Updated:
mtable()
  autogenerate table from string matrix

matrixtable(_stringmatrix, _textSize, tableYpos, tableXpos)
  matrixtable
  Parameters:
    _stringmatrix: float vals
    _textSize: int
    tableYpos: string
    tableXpos: string
Release Notes:
v10

oversight - table blanking when live and all mtx's even sized fixed.
Release Notes:
v11
added option for any type for two w/ or without background col
and any single type with plain no colors

Added:
anytwo()
anyone()
Release Notes:
v12
switch dat/titles in anytwo, hide NAN on string convert
Release Notes:
v13

added customizable w/h of cells and library imports updated to latest

Updated:
matrixtable(_stringmatrix, _textSize, tableYpos, tableXpos)
  matrixtable
  Parameters:
    _stringmatrix: float vals
    _textSize: int
    tableYpos: string
    tableXpos: string

anytwo()

anyone()
Release Notes:
v14
minor addition, (total rewrite coming in future)

Updated:
anyone(_colormtx, _textSize, tableYpos, tableXpos, _fit, _shrink, _w, _h, _defaultbg, _defaultxt)
  Parameters:
    _colormtx
    _textSize
    tableYpos
    tableXpos
    _fit
    _shrink
    _w
    _h
    _defaultbg
    _defaultxt
Pine library

In true TradingView spirit, the author has published this Pine code as an open-source library so that other Pine programmers from our community can reuse it. Cheers to the author! You may use this library privately or in other open-source publications, but reuse of this code in a publication is governed by House Rules.

Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this library?

Copy the following line and paste it in your script.