Unissez et annotez: Les tableaux Pine prennent désormais en charge les en-têtes et les infobulles

Mar 18, 2022

En-têtes et fusion de cellules

Il est désormais possible de fusionner plusieurs cellules dans un tableau pour créer des en-têtes et des séparateurs sophistiqués. Une cellule fusionnée ne doit pas nécessairement être un en-tête: vous pouvez fusionner des cellules dans n’importe quelle direction, tant que la cellule résultante n’affecte pas les cellules déjà fusionnées et ne sort pas des limites du tableau.

Pour créer une cellule fusionnée, utilisez la nouvelle fonction table.merge_cells(). Les règles sont simples. Vous devez transmettre les coordonnées de la première et de la dernière cellule que vous souhaitez fusionner. Tout ce qui se trouve entre elles sera fusionné en une seule cellule. La taille d’une cellule fusionnée est automatiquement déterminée par les dimensions de ses lignes et colonnes voisines.

Dans l’exemple de script ci-dessous, vous pouvez voir trois cellules fusionnées : la première fusionne toutes les cellules de la ligne zéro et contient « SMA Table », les autres en dessous créent les sous-titres.

//@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)

Infobulles

Les infobulles constituent la deuxième amélioration des tableaux. Les infobulles sont des étiquettes de texte flottantes qui apparaissent lorsque vous survolez une cellule d’un tableau. Elles sont très pratiques pour fournir des informations sur le contenu d’une cellule sans encombrer le tableau.

Pour créer une cellule avec une info-bulle, il suffit de passer une chaîne de caractères à l’argument new tooltip de la fonction table.cell(). Vous pouvez voir les infobulles en action dans notre exemple de script, où nous utilisons tooltip = CELL_TOOLTIP  dans l’appel de table.cell() des deux dernières lignes. Les infobulles ressembleront à ceci:

Pour rester informé/e des nouvelles fonctionnalités de Pine, gardez un œil sur les notes de publication de notre manuel d’utilisation de Pine. Le compte PineCoders diffuse également des mises à jour depuis sa Squawk Box sur Telegram, son compte Twitter et le chat public Pine Script sur TradingView.

Nous espérons que vous trouverez cette fonctionnalité très demandée utile. Continuez à nous envoyer vos commentaires et vos suggestions d’amélioration. Nous construisons TradingView pour vous, et sommes toujours heureux d’avoir de vos nouvelles.

Look first Then leap

TradingView est conçu pour vous, assurez-vous donc de profiter au maximum de nos fonctionnalités exceptionnelles
Ouvrir le graphique