Когда речь заходит об отрисовке индикаторов, те программисты, которые пишут на Pine, предпочитают иметь как можно больше опций, и это вполне понятно. Хорошо оформленным индикатором проще пользоваться, и визуальная составляющая информации не менее важна, чем сама информация.
Наше новейшее дополнение к инструментарию Pine позволяет заполнить пространство между двумя нарисованными в Pine линиями, используя новый тип рисунка «linefill» и связанные с ним функции.
Основы просты: чтобы заполнить пространство между двумя линиями, вызовите функцию linefill.new(), передав в неё ID этих линий и цвет. Каждая уникальная пара линий может иметь только одну заливку, поэтому последовательные вызовы linefill.new() с одной и той же парой линий заменят предыдущую заливку новой.
Поведение заливки зависит от линий, к которым она прикреплена. Если обе линии продлеваются в одном направлении, то и заливка будет продлеваться в том же направлении, как можно увидеть в скрипте ниже.
В данном примере наш индикатор рисует две линии, соединяющие две последние точки разворота максимума и минимума. Мы удлиняем линии вправо, чтобы проецировать краткосрочное движение графика, и заполняем пространство между ними, чтобы усилить видимость канала:
//@version=5 indicator("Channel", overlay = true) LEN_LEFT = 15 LEN_RIGHT = 5 pH = ta.pivothigh(LEN_LEFT, LEN_RIGHT) pL = ta.pivotlow(LEN_LEFT, LEN_RIGHT) // Bar indices of pivot points pH_x1 = ta.valuewhen(pH, bar_index, 1) - LEN_RIGHT pH_x2 = ta.valuewhen(pH, bar_index, 0) - LEN_RIGHT pL_x1 = ta.valuewhen(pL, bar_index, 1) - LEN_RIGHT pL_x2 = ta.valuewhen(pL, bar_index, 0) - LEN_RIGHT // Price values of pivot points pH_y1 = ta.valuewhen(pH, pH, 1) pH_y2 = ta.valuewhen(pH, pH, 0) pL_y1 = ta.valuewhen(pL, pL, 1) pL_y2 = ta.valuewhen(pL, pL, 0) if barstate.islastconfirmedhistory // Lines lH = line.new(pH_x1, pH_y1, pH_x2, pH_y2, extend = extend.right) lL = line.new(pL_x1, pL_y1, pL_x2, pL_y2, extend = extend.right) // Fill fillColor = switch pH_y2 > pH_y1 and pL_y2 > pL_y1 => color.green pH_y2 < pH_y1 and pL_y2 < pL_y1 => color.red => color.silver linefill.new(lH, lL, color.new(fillColor, 90))
Вы можете узнать больше о функциях заливки пространства между линиями в нашем Справочнике по Pine: просто введите «linefill» в поле поиска, чтобы открыть все связанные функции. Или, если вы предпочитаете учиться у великих, обратите внимание на примеры ниже: в них некоторые из программистов из команды PineCoders наглядно демонстрируют функционал по заливке пространства:
Автоматические периоды Фибоначчи и Периоды Фибоначчи, основанные на тренде, от DGT (…от dgtrd)
Чтобы быть в курсе нововведений Pine, смотрите раздел Release notes нашего руководства пользователя Pine. Наши программисты из команды PineCoders также транслируют обновления в телеграмм-канале Squawk Box, в Twitter и в публичном чате Pine Script на TradingView.
Мы надеемся, что этот функционал окажется вам полезным. Пожалуйста, продолжайте оставлять нам свои отзывы и предложения по улучшению. Мы создаем TradingView для вас, и мы всегда рады услышать ваше мнение.