Логи Pine – новый функционал отладки в Pine Script ®

29 авг, 2023

Мы добавили новые функции 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 в действии, сделайте следующее:

  1. Сохраните приведённый выше пример кода в скрипте и добавьте его на график, когда рынок открыт и инструмент активно торгуется.
  2. Откройте панель Логи Pine в меню Ещё редактора или индикатора на графике

 

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

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

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

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

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

Мы надеемся, это обновление будет вам полезно. Обязательно делитесь с нами своими отзывами и предложениями, так вы помогаете делать платформу лучше.

Команда TradingView

Look first Then leap

Мы создали TradingView, чтобы вы могли пользоваться самыми крутыми функциями.
Открыть график