← До документації
LootX

Налаштування та відображення

Зібрано: 2026-10-01 docs.lootx.trade
Основы

1Налаштування та відображення

Налаштування input.* у вікні індикатора, лінії plot та їхні стилі, рівні hline, заливки fill, фон і колір свічок, маркери, підписи, відрізки, прямокутники, таблиці, кольори та прозорість. Межі: три лінії plot і 500 об’єктів кожного виду.

Ця сторінка про те, що користувач бачить і може змінювати. Тут описано налаштування, які скрипт виносить у вікно індикатора, лінії та їхні стилі, рівні й заливки, фон і колір свічок, маркери, підписи, відрізки, прямокутники та таблиці, а також кольори та прозорість. Наприкінці є розділ про межі, які варто знати заздалегідь.

Налаштування: input.*

Кожен виклик input.* стає рядком на вкладці Вхідні дані у вікні налаштувань індикатора. Рядки йдуть у тому порядку, в якому виклики написані в скрипті. Перший аргумент задає значення за замовчуванням, другий — підпис рядка.

Виклик Що з’явиться у вікні налаштувань
input.int Поле для цілого числа
input.float Поле для дробового числа
input.bool Прапорець
input.color Вибір кольору
input.string Спадний список, якщо задано options; без нього — текстове поле
input.source Спадний список рядів: open, high, low, close, hl2, hlc3, ohlc4, hlcc4, volume
input.enum Спадний список із підписів переліку
input.timeframe Текстове поле; з options — спадний список
input.symbol Текстове поле

Приклад нижче збирає в одному скрипті п’ять видів налаштувань:

Loot
indicator("Средняя на выбор", overlay = true)

enum Basis {
    sma = "Простая"
    ema = "Экспоненциальная"
    wma = "Взвешенная"
}

basis     = input.enum(Basis.ema, "Тип средней")
length    = input.int(50, "Период", minval = 1, maxval = 500)
src       = input.source(close, "Источник")
lineColor = input.color(color.orange, "Цвет линии")
showBg    = input.bool(false, "Подсвечивать фон")

avg = switch basis {
    Basis.sma => ta.sma(src, length)
    Basis.ema => ta.ema(src, length)
    =>           ta.wma(src, length)
}

plot(avg, "Средняя", color = lineColor, linewidth = 2)
bgcolor(showBg and close > avg ? color.new(color.teal, 40) : na, title = "Фон")

У вікні налаштувань вийде спадний список «Тип средней» із пунктами «Простая», «Экспоненциальная» і «Взвешенная». Нижче будуть поле періоду, список джерел, вибір кольору та прапорець. Як оголошувати переліки, розказано в розділі Свої типи та переліки.

Параметри чисел і рядків

  • minval і maxval задають межі: поле не прийме період менший за minval або більший за maxval.
  • step у input.float задає, скільки знаків після коми показує поле: при step = 0.1 видно один знак. Стрілок біля поля немає, значення вводиться з клавіатури.
  • options у input.string і input.timeframe перетворює поле на спадний список. Значення за замовчуванням мусить бути одним із пунктів, інакше компілятор видасть помилку.
  • tooltip, group та inline компілятор приймає, але на вигляд вікна налаштувань вони поки не впливають.
Loot
indicator("Цена для расчёта")

mode  = input.string("Закрытие", "Считать по", options = ["Закрытие", "Середина свечи"])
price = mode == "Закрытие" ? close : hl2

plot(ta.rsi(price, 14), "RSI", color = color.purple)

У input.source за замовчуванням може бути й ряд ринкових даних, наприклад delta.cum. Такий ряд стане першим пунктом списку, перед ціновими рядами. Якщо ж за замовчуванням стоїть вираз на зразок (high + low) / 2, рядка у вікні налаштувань не буде: вибирати нема з чого.

Окремих налаштувань для часу, торгової сесії та ціни, яку вибирають клацанням на графіку, у мові поки немає.

Де зберігаються вибрані значення

Значення запам’ятовуються для кожного індикатора на кожному графіку окремо: дві копії одного скрипта на різних панелях можуть стояти з різними періодами. Кнопка За замовчуванням у вікні налаштувань повертає значення, написані в коді.

Значення прив’язане до імені змінної, в яку записано виклик input.*. Підпис рядка можна змінювати вільно, вибране значення збережеться. Рядки можна й переставляти. А якщо перейменувати змінну (length на period), налаштування повернеться до значення з коду.

Вікно налаштувань відкривається подвійним клацанням по рядку індикатора в легенді графіка або значком налаштувань у цьому рядку. Крім вкладки Вхідні дані в ньому є Стиль і Видимість — про них нижче.

Лінії: plot

plot малює ряд, по одному значенню на кожен бар. Обов’язковий лише перший аргумент — сам ряд. Решта параметрів задаються за іменем:

  • title — ім’я лінії в легенді та у вікні налаштувань;
  • color — колір, постійний або обчислюваний на кожному барі;
  • linewidth — товщина;
  • style — спосіб відображення, див. таблицю;
  • offset — зсув на задану кількість барів: додатний праворуч, від’ємний ліворуч;
  • show_last — малювати лише останні N барів;
  • join = true — з’єднати лінією точки стилів circles і cross;
  • editable = false — прибрати лінію з вікна налаштувань;
  • display = display.none — сховати лінію при додаванні; увімкнути її можна на вкладці Видимість.
Стиль Як виглядає
plot.style_line Ламана лінія, стиль за замовчуванням
plot.style_linebr Те саме, що line
plot.style_stepline Сходинки
plot.style_stepline_diamond Сходинки з ромбами
plot.style_histogram Тонкі стовпчики від нуля завтовшки в лінію
plot.style_columns Стовпчики від нуля завширшки у свічку
plot.style_area Область, зафарбована до нуля
plot.style_areabr Те саме, що area
plot.style_circles Точки
plot.style_cross Хрестики

Лінія завжди переривається там, де в ряду немає значення (na), і не перестрибує пропуск прямим відрізком. Тому пари line/linebr та area/areabr малюються однаково.

Loot
indicator("Стили линий")

d = close - open

plot(d, "Тело свечи", style = plot.style_histogram, color = d >= 0 ? color.teal : color.red)
plot(ta.sma(d, 10), "Средняя 10", style = plot.style_stepline, color = color.orange, linewidth = 2)
plot(ta.sma(d, 30), "Средняя 30", style = plot.style_circles, color = color.gray)

Колір по барах

Колір може бути виразом: тоді він обчислюється на кожному барі заново. Колір na означає, що на цьому барі лінії немає:

Loot
indicator("Средняя только над ценой", overlay = true)

m = ta.sma(close, 50)
plot(m, "Средняя", color = close > m ? color.teal : na)

Що лінія отримує у вікні налаштувань

  • На вкладці Стиль налаштовується товщина кожної лінії. Рядок кольору з’являється лише в лінії з постійним кольором: якщо колір вибирає скрипт на кожному барі, міняти у вікні нічого.
  • На вкладці Видимість у кожної лінії є прапорець показу. Він з’являється, якщо ліній більше однієї або якщо лінію сховано через display.
  • Лінія з editable = false не отримує рядків на жодній вкладці.

Рівні та заливки

hline малює горизонтальну лінію на постійній ціні — наприклад, межі зон RSI. Ціна має бути числом або налаштуванням input.*: ряд, що змінюється від бара до бара, сюди не підходить. Для такої лінії потрібен plot. Стиль лінії задають hline.style_solid, hline.style_dashed та hline.style_dotted.

fill зафарбовує область між двома межами. Щоб отримати межу, результат hline або plot записують у змінну:

Loot
indicator("RSI с зонами")

length = input.int(14, "Период", minval = 1)
r = ta.rsi(close, length)

top    = hline(70, "Перекупленность", color = color.gray, linestyle = hline.style_dashed)
bottom = hline(30, "Перепроданность", color = color.gray, linestyle = hline.style_dashed)
fill(top, bottom, color = color.new(color.purple, 30), title = "Зона")

plot(r, "RSI", color = r > 70 ? color.red : r < 30 ? color.teal : color.purple)

Обидві межі мають бути одного роду: два рівні hline або дві лінії plot. Заливку між лінією та рівнем компілятор не прийме.

Колір заливки між двома лініями може змінюватися від бара до бара. Так виходить «хмара» з двох середніх:

Loot
indicator("Облако", overlay = true)

fast = ta.ema(close, 9)
slow = ta.ema(close, 21)

pf = plot(fast, "Быстрая", color = color.teal)
ps = plot(slow, "Медленная", color = color.orange)
fill(pf, ps, color = fast > slow ? color.new(color.teal, 50) : color.new(color.red, 50), title = "Облако")

Є й градієнтна заливка. Задайте top_value і bottom_value, щоб указати висоти, де колір дорівнює top_color та bottom_color; між ними колір плавно переходить. Ці висоти мають бути постійними числами. Якщо потрібна заливка до постійного рівня, зробіть його лінією, plot(50). Але пам’ятайте, що це одна з трьох ліній, які малюються.

Loot
indicator("RSI с градиентом")

r  = ta.rsi(close, 14)
pr = plot(r, "RSI", color = color.purple)
pm = plot(50, "Середина", color = color.gray)
fill(pr, pm, top_value = 80, bottom_value = 50,
     top_color = color.new(color.teal, 160), bottom_color = color.new(color.teal, 0))

Фон і колір свічок

bgcolor зафарбовує фон під баром, barcolor перефарбовує саму свічку. Обидва приймають колір, обчислюваний на кожному барі; на барах із кольором na нічого не змінюється.

Loot
indicator("Подсветка объёма", overlay = true)

avgVol = ta.sma(volume, 20)
spike  = volume > avgVol * 2

bgcolor(spike ? color.new(color.orange, 40) : na, title = "Всплеск объёма")
barcolor(close > open ? color.teal : color.red, title = "Цвет свечей")

Маркери: plotshape і plotchar

plotshape ставить значок на тих барах, де умова істинна. plotchar робить те саме з будь-яким символом.

Loot
indicator("Пересечения", overlay = true)

fast = ta.ema(close, 9)
slow = ta.ema(close, 21)

plotshape(ta.crossover(fast, slow), "Вверх", style = shape.triangleup,
          location = location.belowbar, color = color.teal, size = size.small)
plotshape(ta.crossunder(fast, slow), "Вниз", style = shape.triangledown,
          location = location.abovebar, color = color.red, size = size.small)
plotchar(volume > ta.sma(volume, 20) * 3, "Объём", char = "●", location = location.top, color = color.orange)
  • Форма, shape.*: triangleup, triangledown, arrowup, arrowdown, circle, square, diamond, cross, xcross, flag, labelup, labeldown.
  • Місце, location.*: abovebar — над свічкою, belowbar — під свічкою, top і bottom — біля верхнього та нижнього краю панелі. В окремій панелі під графіком «над свічкою» і «під свічкою» теж означають верхній і нижній край: у такої панелі своя шкала, і ціни свічок на ній не відкладені.
  • Розмір, size.*: auto, tiny, small, normal, large, huge.
  • text додає до значка короткий підпис. Коли графік сильно віддалений і свічки вузькі, підписи ховаються, а значки залишаються.

Графічні об’єкти

Крім рядів, скрипт може малювати окремі об’єкти: підписи label.new, відрізки line.new, прямокутники box.new і таблиці table.new. Кожен виклик *.new повертає об’єкт. Його можна пересунути функціями set_* (label.set_xy, line.set_x2, box.set_top і так далі), прочитати через get_*, скопіювати через copy або видалити через delete.

По горизонталі об’єкт за замовчуванням прив’язаний до номера бара, bar_index. З параметром xloc = xloc.bar_time координата задається часом бара. Відрізку та прямокутнику параметр extend (extend.right, extend.left, extend.both) продовжує край до межі графіка.

Об’єкт залишається на графіку, поки його не видалять. Скрипт виконується на кожному барі, тому label.new без умови створить по підпису на кожен бар. Щоб тримати один об’єкт і рухати його, зберігайте його у змінній var, а старий видаляйте:

Loot
indicator("Последний пивот", overlay = true, maxLabelsCount = 50)

ph = ta.pivothigh(high, 10, 10)

var line level = na
if not na(ph) {
    label.new(bar_index - 10, ph, str.tostring(ph), style = label.style_label_down,
              color = color.orange, textcolor = color.white, size = size.small)
    line.delete(level)
    level := line.new(bar_index - 10, ph, bar_index, ph, extend = extend.right,
                      color = color.orange, style = line.style_dashed)
}

Скрипт підписує кожен знайдений максимум і тягне пунктир від останнього з них праворуч. Попередній пунктир він при цьому видаляє.

Живих об’єктів кожного виду одночасно буває не більше 500. Коли з’являється п’ятсот перший, найстаріший зникає. Параметри maxLinesCount, maxLabelsCount і maxBoxesCount в indicator() зменшують цю межу. Значення більше за 500 урізається до 500.

Таблиці

Таблиця прив’язана не до барів, а до кута чи краю панелі та не рухається під час прокручування графіка. Місце задає position.*: top_left, top_center, top_right, middle_left, middle_center, middle_right, bottom_left, bottom_center, bottom_right. Комірки заповнює table.cell. Зручно робити це лише на останньому барі, щоб не переписувати таблицю на всій історії:

Loot
indicator("Сводка", overlay = true)

var t = table.new(position.top_right, 2, 2, bgcolor = color.new(color.black, 160))
if barstate.islast {
    table.cell(t, 0, 0, "RSI", text_color = color.white)
    table.cell(t, 1, 0, str.tostring(math.round(ta.rsi(close, 14), 1)), text_color = color.white)
    table.cell(t, 0, 1, "ATR", text_color = color.white)
    table.cell(t, 1, 1, str.tostring(math.round(ta.atr(14), 2)), text_color = color.white)
}

У таблиці не більше 200 стовпців і 200 рядків. Таблиця, в якій понад 2000 комірок, не створюється.

Кольори

Іменовані кольори: color.red, color.green, color.blue, color.teal, color.orange, color.purple, color.yellow, color.white, color.black, color.gray, color.silver, color.maroon, color.navy, color.olive, color.lime, color.aqua, color.fuchsia.

Колір можна записати й кодом: #FF8800 — непрозорий, #FF880040 — із прозорістю. Остання пара цифр задає непрозорість: 00 — повністю прозорий, FF — суцільний.

  • color.rgb(r, g, b) збирає колір зі складників від 0 до 255. Четвертий аргумент — непрозорість, за замовчуванням 255.
  • color.from_gradient(value, bottomValue, topValue, bottomColor, topColor) повертає колір між двома крайніми за положенням value у діапазоні. Зручно розфарбовувати осцилятор від холодного до гарячого.
  • na замість кольору означає «не малювати».
Loot
indicator("RSI в цвете")

r = ta.rsi(close, 14)
heat = color.from_gradient(r, 30, 70, color.rgb(0, 150, 136), color.rgb(244, 67, 54))

plot(r, "RSI", color = heat, linewidth = 2)
bgcolor(r > 70 ? color.new(color.red, 30) : r < 30 ? color.new(color.teal, 30) : na, title = "Зоны")

Далі

https://docs.lootx.trade/uk/loot/inputs-drawing