Таблицы в PineScript предназначены для позиционирования информации в окне индикатора. В отличии от других графических элементов в PineScript, таких как метки и линии, таблицы располагаются без привязки к барам, а относительно границ области видимости (окна) где расположен индикатор или стратегия с вашим скриптом. При этом позиционирование не зависит от overlay=true|false , стратегия это или индикатор, от масштаба и типа графика.

Этот текст в значительной степени вольная адаптация официальной документации к PineScript Tables. За одним исключением — текст по ссылку написан под четвертую версию, а я свои примеры писал уже под PineScript v5.

Очевидно что в PineScript таблица также состоит из колонок, строк и ячеек. Принцип отображения информации идентичен любым другим таблицам.

Видео по таблицам в PineScript

Как обычно я снял видео для своего канала Azzrael Code, где подробнее чем это можно сделать в тексте рассказал что я понял про таблицы в PineScript:

Позиционирование таблиц в PineScript

Как я написал выше, таблицы в PineScript позиционируются через привязку к окну индикатора. Мы можем привязаться к углам, сторонам и центру окна индикатора. При этом при заполнении таблицы её расширение будет происходить в зависимости от привязки.

Режимы размерности ячеек таблиц в PineScript

Существует всего два режима:

  • Полностью автоматический размер ячеек, когда размеры ячеек определяются контентом и ширина / высота каждой ячейки зависит от размеров контента в текущей или соседних ячейка.
  • Явное указание размера ячейки, когда мы можем прямо в коде указать размер ячейки в процентах к размерам окна индикатора

Содержимое таблицы по последнему бару

Как вам известно из других моих видео про PineScript — скрипт отрабатывает на каждом баре и таблица отображает результаты последнего выполнения нашего индикатора или стратегии. Содержимое таблицы не будет меняться при перемещении по графику цены курсором и масштабировании.

Поэтому эффективно в скриптах использовать:

  • var  для инициализации таблицы
  • заполнять таблицу данным внутри области видимости if barstate.islast

Это снизит нагрузку на сервера TradingView и ускорит ваш скрипт.

Несколько таблиц в одном индикаторе

Это возможно, если вы будете их привязывать к разным точкам. Явного ограничения на количество таблиц в PineScript нет, однако все зависит от количества ячеек в каждой из таблиц.

Создание таблиц в Pine Script

Для создания таблиц в PineScript нужно:

  • Создать экземпляр таблицы с методом table.new() , кот. указываются основные параметры таблицы и кот. возвращает указатель на таблицу. Но table.new() НЕ ОТОБРАЖАЕТ таблицу на экране
  • Для отображения таблицы её нужно наполнить используя метод table.cell() . При этом в ячейке не обязательно должен быть текст. Это может быть ячейка заданного размера с заливкой, например.

При создании таблицы через метод table.new в PineScript обязательны три аргумента — позиция и количество строк и столбцов. Остальные параметры указывать при создании таблицы можно но не обязательно.

Все параметры таблицы можно задать/изменить и после создания таблицы через table.set_*() , за исключением количества строк и столбцов!

Наполнение таблиц

Для наполнения ранее созданной таблицы мы используем метод table.cell где обязательны три аргумента — идентификатор таблицы и координаты ячейки (номер столбца и колонки начиная с 0). Текст указывать не обязательно.

При использовании table.cell вы переопределяете ВСЕ свойства ячейки с этими координатами, которые, возможно, были определены выше в коде скрипта PineScript.

Большинство параметров ячейки можно изменить после создания через table.cell_set_*() .

Примеры использования таблиц в PineScript

Ниже несколько примеров с исходным кодом для PineScript v5. Обратите внимание что вы в статье есть видео в котором я каждый из примеров разобрал куда более подробно чем в тексте. В том же видео есть и примеры кот в тексте оформлять было не эффективно. Поэтому посмотрите видео, а также остальные видео в моем плейлисте про PineScript и TradingView.

Пример: Одно значение в углу окна

PineScript Tables - простая таблица в углу окна индикатора

PineScript Tables — простая таблица в верхнем правом углу окна индикатора


Обратите внимание что отображаемое в таблице значение мы рассчитываем за пределами if barstate.islast.

Пример: Окраска условное ячеек таблиц и текста

Пример:  Таблица значений  осциляторов  высших таймфремов

Отображение в таблице данные с разных таймфреймов

Здесь немного массивов и широкий простор для оптимизации, но как пример использования таблиц сойдет. Подробности смотри в видео.

Пример: Таблица heatmap

Таблица heatmap


Если ты интересуешься PineScript то больше контента у меня на канале в плейлисте PineScript. Я практически живу в комментах на ютюбе, поэтому если тебе есть что сказать по теме, спросить или дополнить, то прошу в комментарии. Я только разбираюсь с PineScript, поэтому вполне возможно что ты лучше меня знаешь то о чем я рассказываю, если так, то смело поправляй меня и пиши как все должно было быть на самом деле…