Прошёл уже почти год с тех пор, как мы добавили в Pine Script™ таблицы, и за это время они приобрели широкую популярность среди Pine-программистов. Сегодня мы расширяем возможности таблиц, добавляя две долгожданные функции: объединение ячеек и всплывающие подсказки.
Заголовки и объединение ячеек
Pine теперь позволяет объединить несколько ячеек в таблице в одну, чтобы создавать заголовки и разделители. Впрочем, объединенная ячейка не обязательно должна быть заголовком, объединять их можно в любом направлении, главное чтобы:
- итоговая ячейка не затрагивала другие уже объединенные ячейки;
- и не выходила за пределы таблицы.
Для создания объединенной ячейки, используйте новую функцию table.merge_cells(). Правила просты: функции нужно передать координаты первой и последней ячейки из тех, которые нужно объединить. Всё, что находится между ними, и будет объединено. Размер итоговой ячейки автоматически определяется размерами соседних строк и столбцов.
В приведенном ниже примере скрипта можно увидеть три объединенных ячейки: первая создаёт заголовок таблицы, группируя все ячейки в строке 0, и содержит текст «SMA Table», две другие создают подзаголовки.
//@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)
Всплывающие подсказки
Второе улучшение таблиц — всплывающие подсказки, которые появляются при наведении курсора на ячейку таблицы. С их помощью можно удобно предоставить дополнительную информацию о содержимом ячейки, не перегружая саму таблицу.
Для создания ячейки с всплывающей подсказкой, просто передайте строку в новый аргумент tooltip функции table.cell(). Всплывающие подсказки можно увидеть в действии на примере нашего скрипта выше: мы используем tooltip = CELL_TOOLTIP в вызове table.cell() в последних двух строках. Подсказки будут выглядеть так:
Чтобы быть в курсе всех нововведений Pine, смотрите раздел Release notes нашего руководства пользователя Pine. Наши разработчики из команды PineCoders также сообщают об обновлениях в Telegram канале Squawk Box, в Twitter и в публичном чате Pine Script на TradingView.
Мы надеемся, что этот функционал окажется вам полезным. Пожалуйста, продолжайте оставлять нам свои отзывы и предложения по улучшению. Мы создаем TradingView для вас, и всегда рады услышать ваше мнение.