Теперь кластеры объёма доступны в Pine-скриптах

2 мар

Теперь в Pine-скриптах вам доступны данные кластерного объёма, что позволит детально изучить поток заявок внутри каждого ценового бара.

Это обновление даёт вам возможность настраивать собственные кластерные индикаторы, извлекать точные показатели объёма и анализировать активность внутри бара без необходимости прибегать к обходным путям с меньшими временными интервалами.

Зачем использовать кластеры в Pine?

Запросы кластера позволяют вам мгновенно получить расширенные данные внутри бара и определить структурно важные уровни потока заявок, такие как:

  • Детализированное распределение объёма: точные итоговые значения объёма «покупок» и «продаж» для всего бара и конкретных ценовых уровней.
  • Точная дельта объёма: конкретная разница между давлением со стороны покупателей и со стороны продавцов.
  • Ключевые уровни аукциона: мгновенный доступ к POC, VAH и VAL бара.
  • Дисбаланс: данные о дисбалансе «покупок» и «продаж» на конкретных ценовых уровнях.

Объединив request.footprint() с вашими собственными скриптами, вы сможете автоматически отслеживать подробную информацию о потоке заявок, сохраняя фокус на стратегии и исполнении.

Как работают кластеры и структуры данных

Функция request.footprint() — основной инструмент, используемый для запроса данных кластерного объёма для текущего бара. Когда функция вызывается, она возвращает объект кластера, содержащий всю извлеченную информацию о кластерном объёме для этого конкретного бара.
Информация представлена в виде двух основных структур:

  • Объекты кластера: они позволяют перейти к общим показателям бара. Используя функции footprint.*(), вы можете извлечь такие данные, как общий объём покупок, общий объём продаж и дельта объёма.
  • Объекты volume_row: они представляют конкретные ценовые уровни внутри кластера, такие как точка контроля (POC) или границы зоны стоимости. Используя функции volume_row.*(), вы можете извлечь ценовые уровни конкретной строки, значения объёма, дельту объёма и случаи дисбаланса.

Обратите внимание: если для бара нет доступных кластерных данных, функция request.footprint() вернёт na.

Убедитесь, что ваш скрипт всегда проверяет, не является ли полученное значение na, прежде чем перейти к извлечению конкретных показателей с помощью функций footprint.*() или volume_row.*().

Пример использования

Ниже представлен скрипт, показывающий, как запросить кластер и перейти к конкретным точкам данных:

//@version=6
indicator("Footprint Data Highlight", overlay = true)

// Request the footprint object for the current bar (100 ticks per row, 70% Value Area)
footprint reqFootprint = request.footprint(100, 70)

// We use a block to ensure we only process data when the footprint is available
if not na(reqFootprint)
    // 1. Access overall bar metrics from the `footprint` object
    float totalBuyVol = reqFootprint.buy_volume()
    float totalSellVol = reqFootprint.sell_volume()
    float volumeDelta = reqFootprint.delta()

    // 2. Retrieve a specific `volume_row` object (the Point of Control)
    volume_row pocRow = reqFootprint.poc()

    // 3. Access specific price values from the `volume_row` object
    float pocUpperPrice = pocRow.up_price()
    float pocLowerPrice = pocRow.down_price()

// --- USING THE VARIABLES ---

// Use Buy/Sell Volume and Delta in a label
    if barstate.islast
        label.new(bar_index, high, 
               text = "Buy: " + str.tostring(totalBuyVol, format.volume) + 
               "\nSell: " + str.tostring(totalSellVol, format.volume) + 
               "\nDelta: " + str.tostring(volumeDelta, format.volume),
               color = color.new(color.blue, 20), 
               textcolor = color.white,
               style = label.style_label_down)

    // Use POC prices to highlight the POC area on the chart
    linefill.new(
               line.new(bar_index, pocUpperPrice, bar_index[1], pocUpperPrice, color = color.orange),
               line.new(bar_index, pocLowerPrice, bar_index[1], pocLowerPrice, color = color.orange),
               color.new(color.orange, 80))

// Plotting the volume delta on a separate pane (if moved to non-overlay) 
// or as a reference value in the Data Window
plot(not na(reqFootprint) ? reqFootprint.total_volume() : na, "Volume Delta", display = display.data_window)

Обратите внимание, что для использования этих функций кластера вам необходима подписка Premium или Ultimate.

Следите за разделом «Информация о релизе» нашего Руководства пользователя, чтобы быть в курсе последних улучшений Pine Script®.

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

Look first Then leap

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