← К документации
LootX

Импорт из Pine Script

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

1Импорт из Pine Script

Как перенести индикатор с Pine Script в LootScript: где кнопка импорта, что конвертер меняет сам, что отмечает для проверки и как довести результат.

Если индикатор уже написан на Pine Script, переписывать его руками не нужно. Терминал конвертирует файл .pine в LootScript: меняет синтаксис и имена, добавляет недостающее и записывает в начало файла заметки — что изменено и где конвертеру пришлось угадывать.

Конвертер — переводчик, а не слой совместимости. Он не обещает тех же чисел, что в исходной среде, и не добавляет в терминал функций, которых там нет. Поэтому после импорта скрипт нужно открыть, прочитать заметки и проверить на графике. LootScript разработан независимо и не связан с TradingView: синтаксис похож намеренно, но языки не совместимы.

Как импортировать

Откройте окно индикаторов

Нажмите ƒ на панели графика — откроется окно Индикаторы.

Нажмите «Импорт…»

Кнопка стоит рядом со строкой поиска. Выберите файл .pine, .loot или .txt. Файл .loot ляжет в библиотеку как есть. Файл .pine — и текстовый файл, похожий на Pine Script, — пройдёт через конвертер.

Прочитайте итог

Под строкой поиска появится одна из строк:

  • «Импортировано «…»» — заметок нет, скрипт готов;
  • «Импортировано «…»: заметок конвертера — N, см. шапку скрипта»;
  • «Импортировано «…», но скрипт не компилируется (ошибок: N)…» — рядом с текстом первой ошибки.

Окно переключится на раздел Мои скрипты, а в поиск подставится имя нового скрипта.

Откройте скрипт в редакторе

Прочитайте шапку с заметками и поправьте то, на что она указывает. Как — ниже.

Импорт не перезаписывает скрипт с тем же именем: новый получит суффикс, например -2. Исходный файл не меняется.

Через папку скриптов

Можно просто положить файл имя.pine в папку скриптов — на Windows это %APPDATA%\TradingTerminal\scripts. При следующем запуске терминал создаст рядом имя.loot. Если имя.loot уже есть, он не трогается — ваши правки не пропадут. Чтобы сконвертировать заново, например после обновления терминала, удалите .loot.

Что делает конвертер

  • Отступы → фигурные скобки. Блоки if, else if, else, циклов и функций получают скобки. Строки-продолжения склеиваются в одну.
  • Функции. f(x) => становится func f(x), а последнее выражение функции — явным return.
  • Циклы. Включительный for i = 0 to 9 становится полуоткрытым for i in 0 .. 10. Направление берётся из шага или из литералов границ; если его не видно, конвертер считает цикл восходящим и пишет об этом.
  • Условия-значения. if с одним выражением в ветках превращается в тернарный оператор, switch получает скобки.
  • Прозрачность → альфа. В Pine Script прозрачность идёт от 0 до 100, где 0 — непрозрачно. В LootScript альфа — от 0 до 255, где 255 — непрозрачно. color.new(c, 50) станет color.new(c, 128), а аргумент transp= превратится в color.new(…) вокруг цвета.
  • Имена. Старые имена без пространства получают его: sma → ta.sma. study → indicator, security → request.security, tostring → str.tostring, syminfo.* → sym.*, timeframe.* → tf.*. Короткая форма input(…) получает тип: input.int, input.source и так далее.
  • Занятые имена. Переменная, чьё имя в LootScript — ключевое слово или пространство (delta, oi, tf, sym, func …), получает подчёркивание в конце везде, где встречается: delta → delta_.
  • Лишние аргументы — те, которых у функции в LootScript нет, — снимаются.
  • Объявление. Если в файле не было indicator(…) или strategy(…), конвертер добавит indicator с именем файла.
  • Комментарии и пустые строки остаются на своих местах.

Конвертер не отказывает ни на каком файле. Строку, которую он не понял, он не выбрасывает, а оставляет комментарием // [не разобрано] … на прежнем месте.

Шапка с заметками

Первая строка шапки говорит, откуда файл, — «Импортировано из скрипта на Pine Script (версия 5). Заметки конвертера:». Дальше по строке на каждую правку, по порядку строк исходника: «Строка N: вид: что — подробности». Заметки пишутся на языке интерфейса.

Вид заметки Что значит Проверить?
переименовано Имя заменено на аналог в LootScript нет
пересчитано Прозрачность переведена в альфу нет
переписано Изменилась форма: цикл, return, тип короткого input взглянуть
имя «…» занято в LootScript Переменной добавлено подчёркивание нет
объявления indicator(…) не было Объявление добавлено из имени файла нет
аргумент снят У функции в LootScript нет такого параметра да
допущение Конвертер угадал: направление цикла, тип ввода, который не удалось вывести да
нет в этой сборке Такой функции в терминале нет — скрипт не скомпилируется с ошибкой «неизвестное имя» да
не разобрано Строку не удалось разобрать, она сохранена комментарием да

Когда проверите, шапку можно удалить — это обычные комментарии.

Пример

Небольшой индикатор на Pine Script: столбики размаха бара, подсвеченные, когда размах вдвое больше среднего.

PINE
//@version=5
indicator("Range spike", overlay=false)
len = input.int(20, "Length")
avgRange(n) =>
    r = high - low
    ta.sma(r, n)
base = avgRange(len)
spike = high - low > base * 2
plot(high - low, style=plot.style_columns, color=spike ? color.orange : color.new(color.gray, 60))
plot(base, color=color.blue, trackprice=true)

Так его записывает конвертер:

Loot
// Импортировано из скрипта на Pine Script (версия 5). Заметки конвертера:
//
// Строка 6: переписано: avgRange — неявный возврат последнего оператора записан как return
// Строка 9: пересчитано: transp → alpha — прозрачность 0…100 пересчитана в альфу 0…255
// Строка 10: аргумент снят: plot: trackprice — такого параметра в LootScript нет

indicator("Range spike", overlay = false)
len = input.int(20, "Length")
func avgRange(n) {
    r = high - low
    return ta.sma(r, n)
}
base = avgRange(len)
spike = high - low > base * 2
plot(high - low, color = spike ? color.orange : color.new(color.gray, 102), style = plot.style_columns)
plot(base, color = color.blue)

Функция получила скобки и return, прозрачность 60 стала альфой 102, а trackprice снят — такого параметра нет. Заметка «аргумент снят» просит проверить, не нужен ли этот параметр по смыслу. Здесь он лишь рисовал линию последнего значения, и скрипт работает без него.

Как проверить и доработать

  1. Прочитайте шапку. Начните со строк с видами «аргумент снят», «допущение», «нет в этой сборке» и «не разобрано».
  2. Посмотрите вкладку «Проблемы» в консоли редактора. Скрипт с ошибками на график не добавится.
  3. Добавьте на график и сравните с тем, что показывал оригинал, на нескольких участках истории.
  4. Попросите помощника. Откройте ИИ-помощника и наберите /fix — он скомпилирует скрипт, прогонит его на свечах и исправит ошибки. Можно добавить уточнение: /fix разбери заметки конвертера в шапке. /explain расскажет, что делает скрипт.

Что не переносится

  • Функции, которых нет в терминале. Имя остаётся в коде, заметка «нет в этой сборке» и ошибка компилятора указывают на одно и то же место. Замените вызов вручную или попросите помощника подобрать аналог.
  • Многострочные строки, импорт чужих библиотек, экспорт функций. Конвертер переносит то, что может записать, и отмечает остальное.
  • Больше трёх линий. Панель графика рисует только первые три plot скрипта. Лишние ряды разнесите по отдельным скриптам.
  • Реальная торговля. Объявление strategy(…) переносится, но стратегия LootScript торгует только в тестере стратегий — на симулированном счёте.

Дальше

https://docs.lootx.trade/ru/loot/pine-import