Обзор языка
Зачем нужен Loot, как выглядит скрипт и чем он отличается от привычных языков индикаторов.
Loot — небольшой язык для расчётов по рыночным сериям. Скрипт выполняется на каждой новой свече и возвращает то, что нужно нарисовать или сделать.
// Импульсный уровень: свеча с объёмом выше среднего в N раз
study("Impulse Levels", overlay = true)
input mult = 2.5 // во сколько раз объём выше среднего
input len = 20 // длина окна
let avgVol = sma(volume, len)
let impulse = volume > avgVol * mult
plot(impulse ? high : na, color = colors.teal, style = "cross")
alert(impulse, "Импульсная свеча по {symbol}")Чем он отличается
| Loot | Привычные языки индикаторов | |
|---|---|---|
| Переменные | let, изменяемые явно |
часто неявные серии |
| Типы | проверяются до запуска | в основном во время |
| Отсутствующее значение | отдельный na, не 0 |
часто 0 или NaN |
| Доступ к истории | close[1] |
как правило так же |
| Исполнение | локально, в вашем терминале | на сервере сервиса |
Устройство скрипта
Объявление
study(...) для индикатора или strategy(...) для торгового правила. Ровно одно на файл.
Входные параметры
input создаёт поле в настройках индикатора — пользователь меняет значение, не трогая код.
Расчёты
Обычные выражения над сериями. Серия — это значение на каждой свече; close[1] — предыдущее.
Вывод
plot, fill, label, alert — то, что попадёт на график и в уведомления.
Торговое правило
strategy("Пересечение средних", overlay = true)
input fast = 9
input slow = 21
let f = ema(close, fast)
let s = ema(close, slow)
plot(f, color = colors.teal)
plot(s, color = colors.blue)
when crossover(f, s) {
signal.long(qty = risk.byStop(stop = low[1]), comment = "ema cross up")
}
when crossunder(f, s) {
signal.close(comment = "ema cross down")
}Дальше
FAQ
Можно ли торговать из скрипта на Loot?
Да, через блок strategy. Скрипт не отправляет ордера напрямую на биржу: он формирует сигнал, а исполнением занимается терминал с вашими правилами риска.
Страница была полезной?
Спасибо — мы это прочитаем.