Editors' picksPINE LIBRARY

Cleaner Screeners Library

Updated
Library "cleanscreens"

Screener Panel.
  • This indicator displays a panel with a list of symbols and their indications.
  • It can be used as a screener for multiple timess and symbols
  • in any timeframe and with any indication in any combination.
    #### Features
  • Multiple timeframes
  • Multiple symbols
  • Multiple indications per group
  • Vertical or horizontal layouts
  • Acceepts External Inputs
  • Customizable colors with 170 presets included (dark and light)
  • Customizable icons
  • Customizable text size and font
  • Customizable cell size width and height
  • Customizable frame width and border width
  • Customizable position
  • Customizable strong and weak values
  • Accepts any indicator as input
  • Only 4 functions to call, easy to use
    #### Usage
  • Initialize the panel with _paneel = cleanscreens.init()
  • Add groupd with _screener = cleanscreens.Screener(_paneel, "Group Name")
  • Add indicators to screeener groups with cleanscreens.Indicator(_screener, "Indicator Name", _source)
  • Update the panel with cleanscreens.display(_paneel)


Thanks @ PineCoders , and the Group members for setting the bar high.

# local setup for methods on our script


init(_themein, loc)
  # Panel init
> init a panel for all the screens

  Parameters:
    _themein (string): string: Theme Preset Name
    loc (int): int :
1 = left top,
2 = middle top,
3 = right top,
4 = left middle,
5 = middle middle,
6 = right middle,
7 = left bottom,
8 = middle bottom,
9 = right bottom
  Returns: panel

method Screener(p, _name)
  # Screener - Create a new screener
### Example:


  Namespace types: panel
  Parameters:
    p (panel)
    _name (string)

method Indicator(s, _tf, name, val)
  # Indicator - Create a new Indicator
### Example:


  Namespace types: screener
  Parameters:
    s (screener)
    _tf (string)
    name (string)
    val (float)

method display(p)
  # Display - Display the Panel
### Example:


  Namespace types: panel
  Parameters:
    p (panel)

indication
  single indication for a symbol screener
  Fields:
    name (series string)
    icon (series string)
    rating (series string)
    value (series float)
    col (series color)
    tf (series string)
    tooltip (series string)
    normalized (series float)
    init (series bool)

screener
  single symbol screener
  Fields:
    ticker (series string)
    icon (series string)
    rating (series string)
    value (series float)
    bg (series color)
    fg (series color)
    items (indication[])
    init (series bool)

config
  screener configuration
  Fields:
    strong (series float)
    weak (series float)
    theme (series string)
    vert (series bool)
    cellwidth (series float)
    cellheight (series float)
    textsize (series string)
    font (series int)
    framewidth (series int)
    borders (series int)
    position (series string)

icons
  screener Icons
  Fields:
    buy (series string)
    sell (series string)
    strong (series string)

panel
  screener panel object
  Fields:
    items (screener[])
    table (series table)
    config (config)
    theme (theme type from kaigouthro/theme_engine/1)
    icons (icons)
Release Notes
v2

Quick fixed the markdown shortcuts or local use, and an error in screener descript


Added:
method decorate(p, t)
  Namespace types: panel
  Parameters:
    p (panel)
    t (varient type from kaigouthro/theme_engine/1)

Updated:
init(_themein, loc)
  # Panel init
> init a panel for all the screens


  Parameters:
    _themein (string): string: Theme Preset Name
    loc (int): int :
1 = left top,
2 = middle top,
3 = right top,
4 = left middle,
5 = middle middle,
6 = right middle,
7 = left bottom,
8 = middle bottom,
9 = right bottom
  Returns: panel

method Screener(p, _name)
  # Screener - Create a new screener

Example:

  Namespace types: panel
  Parameters:
    p (panel)
    _name (string)

method Indicator(s, _tf, name, val)
  # Indicator - Create a new Indicator

Example:

  Namespace types: screener
  Parameters:
    s (screener)
    _tf (string)
    name (string)
    val (float)

method display(p)
  # Display - Display the Panel

Example:

  Namespace types: panel
  Parameters:
    p (panel)

indication
  single indication for a symbol screener
  Fields:
    name (series string): name of the indication
    icon (series string): icon name
    rating (series string): rating
    value (series float): value
    col (series color): color of the indication
    tf (series string): timeframe
    tooltip (series string): tooltip text
    normalized (series float): color value
    init (series bool): init

screener
  single symbol screener
  Fields:
    ticker (series string): ticker name
    icon (series string): icon name
    rating (series string): rating
    value (series float): value
    bg (series color): background color
    fg (series color): foreground color
    items (indication[]): list of indications
    init (series bool): init

config
  screener configuration
  Fields:
    strong (series float): strong value
    weak (series float): weak value
    theme (series string): theme name
    vert (series bool): vertical layout
    cellwidth (series float): cell width
    cellheight (series float): cell height
    textsize (series string): text size
    font (series int): font index
    framewidth (series int): frame width
    borders (series int): border width
    position (series string): position

icons
  screener Icons
  Fields:
    buy (series string): buy icon
    sell (series string): sell icon
    strong (series string): strong icon

panel
  screener panel object
  Fields:
    items (screener[]): list of symbols
    table (series table): table object
    config (config): config object
    theme (theme type from kaigouthro/theme_engine/1)
    icons (icons): icons object
Release Notes
v3

Dramatic speed increase.
displaymulti-timeframescreenertables

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