Я хочу узнать больше о логах Pine

Для включения логов можно использовать одну из трёх новых функций: 

  • log.error() создает сообщение типа "Ошибка", отображаемое красным цветом.
  • log.info() создает сообщение типа "Информация", отображаемое серым цветом.
  • log.warning() создает сообщение типа "Предупреждение", отображаемое оранжевым цветом. 

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

  • в Редакторе 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 сообщений; к ним добавляются  сообщения в реальном времени.

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

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

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