Новые функции для запроса данных

31 мая, 2022

Новые функции в Pine Script™, request.security_lower_tf() и request.economic(), а также улучшения функции request.security() позволяют вашим скриптам получить доступ к большему объёму данных.

request.security_lower_tf()

Новая функция request.security_lower_tf() позволяет запросить данные с временного интервала ниже, чем тот, который открыт на графике в данный момент.

Раньше, чтобы получить доступ ко всем барам минутного интервала с часового графика, нужно было писать сложные функции с использованием request.security(). Новая встроенная функция request.security_lower_tf() упрощает этот процесс: она возвращает массив элементов со значениями за каждый внутренний бар, который входит в одну свечу главного интервала. Значения соответствуют выражению, переданному в параметр expression. Следует отметить, что в двух барах главного интервала может быть разное число внутренних баров (например, если главный и второстепенный интервалы не кратны друг другу, или если включена расширенная сессия).

Приведённый ниже индикатор следит за направлением баров минутного интервала, входящих в каждую свечу главного интервала. Если направление большинства внутренних баров отличается от направления бара с графика, индикатор окрашивает данный бар оранжевым цветом. 

//@version=5
indicator("Polarity Divergences", overlay = true)

// Получаем массив, содержащий значения (+1/0/-1) для каждого 1-минутного внутреннего бара. 
array<float> directionsArray = request.security_lower_tf(syminfo.tickerid, "1", math.sign(close - open))

// Задаём оранжевый цвет для бара, если основное количество внутренних баров не соответствует направлению бара главного чарта.
barcolor(math.sign(array.sum(directionsArray)) != math.sign(close - open) ? color.orange : na)

// Выводим число внутренних баров в индикатор и в окно данных.
plotchar(array.size(directionsArray), "Intrabars", "", location.top)

request.economic()

Функция request.economic() позволяет получить экономические показатели страны или региона. Экономические показатели включают в себя такую информацию как состояние экономики страны (ВВП, уровень инфляции и т.д.) или определённой отрасли (сталелитейная продукция, производство газа и т.д.):

//@version=5
indicator("ВВП России")
plot(request.economic("RU", "GDP"))

В этой статье вы найдёте список всех стран/регионов и доступных показателей. Для каждого показателя также есть дополнительная статья с описанием и со списком стран и регионов, для которых он доступен: например, в этой статье мы рассказываем о ВВП.

Улучшения функции request.security()

Функция request.security() теперь может принимать и возвращать массивы, строки, булевы типы, цвета и наборы элементов с данными типами:

//@version=5
indicator("")

// Создаём массив, содержащий значения OHLC.
array<float> ohlc = array.from(open, high, low, close)

// Запрашиваем кортеж с элементами с символа "NASDAQ:TSLA" с текущим чартовым таймфреймом.
// Кортеж содержит:
//   - Массив с OHLC-значениями.
//   - Строковое представление OHLC-значений с использованием округления до минтика.
//   - Строковое представление валюты символа.
[ohlcArray, ohlcString, curString]  = request.security("NASDAQ:TSLA", timeframe.period, [ohlc, str.tostring(ohlc, format.mintick), syminfo.currency])

if barstate.islastconfirmedhistory

    label.new(bar_index, high, 
      "OHLC values: " + str.tostring(ohlcArray) +
      "\nFormatted OHLC values: " + ohlcString +
      "\nCurrency: " + curString)

Если вы хотите узнавать об обновлениях Pine, следите за разделом Release notes. Учётная запись PineCoders также транслирует новости об обновлениях в своем Telegram-канале Squawk Box и в публичном чате Pine Script™ Q&A на TradingView.

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

Look first Then leap

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