Unir y anotar: Las Tablas de Pine ahora admiten cabeceras e información sobre herramientas

Mar 18, 2022

Encabezados y fusión de celdas

Ahora es posible fusionar varias celdas de una tabla para crear cabeceras y separadores de lujo. Sin embargo, una celda fusionada no tiene por qué ser una cabecera: puede fusionar celdas en cualquier dirección, siempre que la celda resultante no afecte a ninguna celda ya fusionada y no se aleje de los límites de la tabla.

Para crear una celda fusionada, utilice la nueva función table.merge_cells(). Las reglas son sencillas. Debe pasar las coordenadas de la primera y la última celda que desee fusionar. Todo lo que haya entre ellas se fusionará en una sola celda. El tamaño de la celda fusionada se determina automáticamente por las dimensiones de sus filas y columnas vecinas.

En el script de ejemplo que aparece a continuación, puede ver tres celdas fusionadas: la primera fusiona todas las celdas de la fila cero y contiene el título, las otras crean las subcabeceras en la siguiente fila.

//@version=5
indicator("MA Ratings", overlay = true)

TRANSP = 80
TABLE_WIDTH = 6
var CELL_TOOLTIP = "Cell color depends on the SMA direction: green for rising SMAs, red for falling ones"

var smaLengths = array.from(10, 20, 50, 100, 200, 500)

smaValues = array.new_float()
for i = 0 to array.size(smaLengths) - 1
    array.push(smaValues, ta.sma(close, array.get(smaLengths, i)))

var maTable = table.new(position.top_right, TABLE_WIDTH, 4, border_width = 2)

if barstate.isfirst
    headerColor = color.new(color.blue, TRANSP)
    table.cell(maTable, 0, 0, text = "SMA Table", bgcolor = headerColor)
    table.cell(maTable, 0, 1, text = "Short-term", bgcolor = headerColor)
    table.cell(maTable, 2, 1, text = "Long-term", bgcolor = headerColor)
    table.merge_cells(maTable, 0, 0, 5, 0)
    table.merge_cells(maTable, 0, 1, 1, 1)
    table.merge_cells(maTable, 2, 1, 5, 1)

if barstate.islast
    for i = 0 to TABLE_WIDTH - 1
        cellTitle = str.format("SMA {0}", array.get(smaLengths, i))
        cellValue = array.get(smaValues, i)
        cellColor = color.new(array.get(smaValues, i) >= array.get(smaValues[1], i) ? color.green : color.red, TRANSP)
        table.cell(maTable, i, 2, bgcolor = cellColor, text = cellTitle, text_color = color.gray, tooltip = CELL_TOOLTIP)
        table.cell(maTable, i, 3, bgcolor = cellColor, text = str.tostring(cellValue,  format.mintick), tooltip = CELL_TOOLTIP)

Información sobre herramientas (tooltip)

La segunda mejora de las tablas es la información sobre las herramientas. Los tooltips son etiquetas de texto flotantes que aparecen cuando se pasa el ratón por encima de una celda de la tabla. Son útiles para proporcionar información sobre el contenido de una celda sin abarrotar la tabla.

Para crear una celda con una información sobre herramientas, basta con pasar una cadena al nuevo argumento tooltip de la función table.cell(). Vea los tooltips en acción en nuestro script de ejemplo, donde utilizamos tooltip = CELL_TOOLTIP en la llamada table.cell() de las dos últimas líneas. La información sobre herramientas tendrá el siguiente aspecto:

Para mantenerse informado de las nuevas características de Pine, esté atento a las Notas de Publicación de nuestro Manual de Usuario de Pine. La cuenta de PineCoders también difunde actualizaciones desde su SquawkBox en Telegram, su cuenta de Twitter y desde el chat público de Pine Script en TradingView.

Esperamos que encuentre útil esta característica tan solicitada. Por favor, siga enviándonos sus comentarios y sugerencias de mejora. Construimos TradingView para usted, y siempre estamos dispuestos a escuchar sus comentarios.

Look first Then leap

TradingView está hecho para usted, asegúrese de aprovechar al máximo nuestras increíbles funciones
Abrir gráfico