По просьбам наших пользователей мы добавили встроенные переменные языка Pine, которые позволяют определять состояние бара, на котором производится вычисление.
Для определения состояния бара в момент вычисления используйте следующие логические переменные:
- barstate.isfirst — истина, если текущий бар первый в множестве баров, иначе — ложь
- barstate.islast — истина, если текущий бар последний в множестве баров, иначе — ложь
- barstate.ishistory — истина, если текущий бар исторический, иначе — ложь
- barstate.isrealtime — истина, если текущий бар является баром реального времени, иначе — ложь
- barstate.isnew — истина, если текущий бар является новым баром, иначе — ложь.
Из-за особенности просчитывания Pine кодов, все исторические бары считаются «новыми». Что касается баров, которые обновляются в реальном времени, то такие бары считаются новыми исключительно при просчете кода на открытии бара. Все внутрибаровые просчеты на барах, обновляющихся в реальном времени, не возвращают статус «новый».
Следующий пример продемонстрирует работу с новыми переменными.
//@version=2 study("My Script", overlay = true) first = barstate.isfirst last = barstate.islast hist = barstate.ishistory rt = barstate.isrealtime new = barstate.isnew plotchar(close, color = first ? red : na, location = location.belowbar) plotchar(close, color = last ? blue : na, location = location.belowbar) plotchar(close, color = hist ? gray : na, char='h') bgcolor(color = new ? green : na) barcolor(color = rt ? black: na)
Введите данный скрипт в редактор скриптов и нажмите “Добавить на график”.
Скрипт нарисует под первым и последним барами красный и синий символы, проставит символ ‘h’ над всеми историческими барами, фон новых баров подсветит зеленым, а бары реального времени окрасит черным.