Pine теперь поддерживает заливку пространства между линиями

11 янв, 2022

Когда речь заходит об отрисовке индикаторов, те программисты, которые пишут на 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 наглядно демонстрируют функционал по заливке пространства:

Веер Гана от LonesomeThe Blue

Средние линии от fikira

Автоматические периоды Фибоначчи и Периоды Фибоначчи, основанные на тренде, от DGT (…от dgtrd)

Чтобы быть в курсе нововведений Pine, смотрите раздел Release notes нашего руководства пользователя Pine. Наши программисты из команды PineCoders также транслируют обновления в телеграмм-канале Squawk Box, в Twitter и в публичном чате Pine Script на TradingView.

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

Look first Then leap

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