Мы добавили новые функции log.*(), которые сделают отладку написанных на Pine Script® скриптов ещё эффективнее: они выводят текст в панель Логи Pine по мере выполнения скрипта. Для ведения логов доступны три новые функции:
- log.error() — создаёт в логах записи уровня Ошибка, написанные красным.
- log.info() — создаёт в логах записи уровня Информация, написанные серым.
- log.warning() — создаёт в логах записи уровня Предупреждение, написанные оранжевым.
Найти логи Pine можно в выпадающем меню Ещё редактора Pine или скрипта, загруженного на ваш график, если тот использует функции log.*().

Логи Pine работают везде: на исторических барах, в режиме реального времени и в режиме Симулятор рынка. Функции логирования можно вызывать из скрипта любого типа (индикатора, стратегии или библиотеки) и из любого места скрипта, включая локальные блоки, циклы, а также из request.security() и подобных функций. С функциями логирования можно работать двумя способами: используя либо один строковый аргумент, либо строку форматирования и список значений в том же формате, в котором работает функция str.format().
Функции логирования работают только в неопубликованных скриптах. Опубликованные скрипты — как приватные, так и общедоступные — не могут генерировать логи, даже если содержат вызовы функций log.*().
Код ниже содержит пример использования всех трёх функций логирования:
//@version=5
indicator("Pine Logs")
if barstate.ishistory
if bar_index % 100 == 0
log.warning("\nBar index: {0,number,#}", bar_index)
else
// Realtime bar processing.
varip lastTime = timenow
varip updateNo = 0
if barstate.isnew
updateNo := 0
log.error("\nNew bar")
else
log.info("\nUpdate no: {0}\nclose: {1}\nSeconds elapsed: {2}", updateNo, close, (timenow - lastTime) / 1000)
updateNo += 1
lastTime := timenow
plot(timenow)
Здесь порядковый номер бара отображается на каждом сотом историческом баре с использованием оранжевого предупреждающего сообщения. В режиме реального времени он отображает сообщение об ошибке красного цвета для каждого нового бара, а для каждого обновления в реальном времени создает информационное сообщение серого цвета, показывающее номер обновления, цену закрытия и время, прошедшее с момента последнего обновления графика.
Чтобы увидеть Логи Pine в действии, сделайте следующее:
- Сохраните приведённый выше пример кода в скрипте и добавьте его на график, когда рынок открыт и инструмент активно торгуется.
- Откройте панель Логи Pine в меню Ещё редактора или индикатора на графике

Перед каждой записью в логе стоит отметка времени. Это либо время открытия бара (для исторических баров), либо текущее время (для сообщений в реальном времени). Новые сообщения появляются в нижней части панели. Для исторических баров будут отображаться только последние 10 000 сообщений; к ним добавляются сообщения реального времени.
В верхней части панели расположены значки, позволяющие запустить/остановить ведение логов, указать дату начала, отфильтровать логи по типу сообщения и выполнить поиск по логам. Поле поиска содержит меню, позволяющее сопоставлять регистр, искать только целые слова и использовать регулярное выражение.
При наведении курсора на сообщение журнала появляются значки, позволяющие просмотреть исходный код, создавший сообщение, или перейти к соответствующему бару на графике:

Когда сразу несколько скриптов на графике используют логи, у каждого из них сохраняется свой набор сообщений. Переключаться между логами разных скриптов можно через выпадающее меню в верхней части панели логов:

Следите за разделом Release notes, чтобы вовремя узнавать об обновлениях Pine. Учётная запись PineCoders также транслирует новости об обновлениях в своём Telegram-канале Squawk Box и в публичном чате Pine Script® Q&A на TradingView.
Мы надеемся, это обновление будет вам полезно. Обязательно делитесь с нами своими отзывами и предложениями, так вы помогаете делать платформу лучше.
Команда TradingView