Indicator · Pine Script v6 · On the chart

PriceCatch Intraday Volume

by PriceCatch

PriceCatch Intraday Volume tracks and compares intraday buying and selling volume, total traded value, and candle counts directly on the chart.

View on GitHub

GitHub stars2on the repository
Pine versionv6current
Lines of code106
Settings8inputs
LicenceMPL-2.0
Last update1 year ago24 Apr 2025

Add It to Your TradingView Chart

  1. 1Copy the scriptPress Copy script above, or the copy button on the code below.
  2. 2Open the Pine EditorOpen a TradingView chart and choose Pine Editor at the bottom of the screen.
  3. 3Paste over the templateCreate a new indicator, select all of the template text and paste. Press Save and give it a name.
  4. 4Add it to the chartPress Add to chart, then adjust the settings with the gear icon next to its name.

Source Code

106 lines of Pine Script v6 from Pinescripts/PriceCatch Intraday Volume.pinescript, published under MPL-2.0. Keep the author's credit and licence lines when you reuse it.

PriceCatch Intraday Volume.pinescript
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © PriceCatch
// You must credit PriceCatch if you modify this code or use it in your scripts.

//@version=6
indicator(title = 'PriceCatch-Intraday Volume', shorttitle = 'PriceCatch-Intraday Volume', overlay = true)
if not timeframe.isintraday
    runtime.error('Please change to intraday time-frame chart')

var float _bullVol = na
var int _bullCandles = na
var float _bullttv = na


var float _bearVol = na
var int _bearCandles = na
var float _bearttv = na


_newDay = timeframe.change('D')

if _newDay

    _bearVol := 0
    _bearCandles := 0
    _bearttv := 0

    _bullVol := 0
    _bullCandles := 0
    _bullttv := 0
    _bullttv

//

if barstate.isconfirmed

    buy_distance = high - low
    sell_distance = open - low + high - close
    tot_distance = buy_distance + sell_distance
    buy_volume = buy_distance / tot_distance * volume
    sell_volume = sell_distance / tot_distance * volume

    _bullttv := _bullttv + close * buy_volume
    _bullVol := _bullVol + buy_volume
    _bearttv := _bearttv + close * sell_volume
    _bearVol := _bearVol + sell_volume

    if close > open
        _bullCandles := _bullCandles + 1
        _bullCandles
    else //if open >= close   
        _bearCandles := _bearCandles + 1
        _bearCandles

var string _suffix = na
// convert trade value to crores
if syminfo.country == 'IN'
    _bullttv := _bullttv / 10000000
    _bearttv := _bearttv / 10000000
    _suffix := 'Cr.'
    _suffix
else
    _bullttv := _bullttv / 1000000000
    _bearttv := _bearttv / 1000000000
    _suffix := 'B.'
    _suffix
    // 


// print results
// Volume Info Panel Section
tblPos = input.string(title = 'Position on Chart', defval = 'Bottom Center', options = ['Top Left', 'Top Right', 'Bottom Left', 'Bottom Center', 'Bottom Right', 'Middle Left', 'Middle Right'], group = 'Information Panel')
tblposition = tblPos == 'Top Left' ? position.top_left : tblPos == 'Top Right' ? position.top_right : tblPos == 'Bottom Left' ? position.bottom_left : tblPos == 'Bottom Center' ? position.bottom_center : tblPos == 'Bottom Right' ? position.bottom_right : tblPos == 'Middle Left' ? position.middle_left : position.middle_right

tblBorderColor = input(title = 'Border Color', defval = #636363, group = 'Information Panel')

title1_bgColor = input(title = 'Title Background', defval = #004074, group = 'Information Panel')
title1_textColor = input(title = 'Title Text', defval = #7AC3ff, group = 'Information Panel')

_downBgColor = input(title = 'Down Background Color', defval = #000000, group = 'Information Panel')
_downTextColor = input(title = 'Down Text Color', defval = color.red, group = 'Information Panel')

_upBgColor = input(title = 'Up Background Color', defval = #000000, group = 'Information Panel')
_upTextColor = input(title = 'Up Text Color', defval = color.blue, group = 'Information Panel')


var table resultsTable = na

resultsTable := table.new(position = tblposition, columns = 4, rows = 3, bgcolor = #ffffff, border_width = 0, frame_color = tblBorderColor, frame_width = 2)


table.cell(resultsTable, column = 0, row = 0, text = '', text_color = title1_textColor, text_halign = text.align_center, text_valign = text.align_center, bgcolor = title1_bgColor, text_size = size.normal)
table.cell(resultsTable, column = 1, row = 0, text = 'Volume', text_color = title1_textColor, text_halign = text.align_center, text_valign = text.align_center, bgcolor = title1_bgColor, text_size = size.normal)
table.cell(resultsTable, column = 2, row = 0, text = 'Candles', text_color = title1_textColor, text_halign = text.align_center, text_valign = text.align_center, bgcolor = title1_bgColor, text_size = size.normal)
table.cell(resultsTable, column = 3, row = 0, text = 'TradeVal', text_color = title1_textColor, text_halign = text.align_center, text_valign = text.align_center, bgcolor = title1_bgColor, text_size = size.normal)

table.cell(resultsTable, column = 0, row = 2, text = 'Up', text_color = _upTextColor, text_halign = text.align_center, text_valign = text.align_center, bgcolor = _upBgColor, text_size = size.normal)
table.cell(resultsTable, column = 1, row = 2, text = str.tostring(_bullVol,format.volume), text_color = _upTextColor, text_halign = text.align_center, text_valign = text.align_center, bgcolor = _upBgColor, text_size = size.normal)
table.cell(resultsTable, column = 2, row = 2, text = str.tostring(_bullCandles), text_color = _upTextColor, text_halign = text.align_center, text_valign = text.align_center, bgcolor = _upBgColor, text_size = size.normal)
table.cell(resultsTable, column = 3, row = 2, text = str.tostring(_bullttv, "#######.##") + _suffix, text_color = _upTextColor, text_halign = text.align_center, text_valign = text.align_center, bgcolor = _upBgColor, text_size = size.normal)


table.cell(resultsTable, column = 0, row = 1, text = 'Down', text_color = _downTextColor, text_halign = text.align_center, text_valign = text.align_center, bgcolor = _downBgColor, text_size = size.normal)
table.cell(resultsTable, column = 1, row = 1, text = str.tostring(_bearVol,format.volume), text_color = _downTextColor, text_halign = text.align_center, text_valign = text.align_center, bgcolor = _downBgColor, text_size = size.normal)
table.cell(resultsTable, column = 2, row = 1, text = str.tostring(_bearCandles), text_color = _downTextColor, text_halign = text.align_center, text_valign = text.align_center, bgcolor = _downBgColor, text_size = size.normal)
table.cell(resultsTable, column = 3, row = 1, text = str.tostring(_bearttv,'#######.##') + _suffix, text_color = _downTextColor, text_halign = text.align_center, text_valign = text.align_center, bgcolor = _downBgColor, text_size = size.normal)

Overview

PriceCatch Intraday Volume allocates confirmed bar volume into buy and sell components using price range ratios, resetting accumulations at each new trading day. The indicator displays cumulative bullish and bearish metrics in an on-screen dashboard table, formatting values in crores for Indian symbols and billions for others. Configurable inputs adjust table alignment and styling colors. It requires an intraday chart timeframe to operate.

Details

Published by

PriceCatch on GitHub

Type

Indicator, Pine Script v6

Draws

On the price chart

Category

Volume, Screeners & dashboards

Markets

Any symbol

Timeframes

M1-M5, M15-H1

Risk Notes

No repainting, lookahead or stacked entries were found in its code or README. That says nothing about how well it works: test it first.

Topics

javascriptlightweight-chartspinescriptpythontrading-strategies

Settings

The inputs you can change from the gear icon on the chart. Defaults are the author's.

SettingTypeDefaultVariable
Position on ChartstringBottom CentertblPos
Border Colorcolor#636363tblBorderColor
Title Backgroundcolor#004074title1_bgColor
Title Textcolor#7AC3fftitle1_textColor
Down Background Colorcolor#000000_downBgColor
Down Text Colorcolorcolor.red_downTextColor
Up Background Colorcolor#000000_upBgColor
Up Text Colorcolorcolor.blue_upTextColor
Third-party code. ForexR did not write, test or endorse this script, and the summary above was generated automatically from its code and README. Indicators describe the past, and a strategy's backtest can look better than live trading, especially when a script repaints. Check it in the Strategy Tester and on a demo account before you rely on it.

Similar Pine Scripts

This overlay indicator screens a pasted list of up to forty symbols and draws a table on the price chart. It classifies bullish or bearish setups from the percent change between the current candle and the candle 250 bars back, then shows RSI with a simple movi

Indicator v5 Oscillators & momentumVolume
Updated 1 year ago · MPL-2.0 GitHub repository of Momentum Setup - Ankush Bajaj Momentum Investing Setup

Daily Volume

by benso87
24 stars

Daily Volume is an overlay indicator that displays current daily volume statistics inside an on-chart table in the top-right corner. It fetches higher-timeframe daily data to report real-time current daily volume, yesterday's total volume, and a simple moving

Indicator v5 VolumeScreeners & dashboards
Updated 4 years ago · MPL-2.0 GitHub repository of Daily Volume

Equity Intraday Analyst

by chris-c-thomas
14 stars

Equity Intraday Analyst is a comprehensive intraday overlay indicator for US equities and ETFs. It evaluates multi-EMA ribbons, session-anchored VWAP bands, OBV trends, momentum oscillators, TTM Squeeze, and optional market breadth indicators like NYSE TICK an

Indicator v6 TrendVolume
Updated 6 months ago · MIT GitHub repository of Equity Intraday Analyst

This daily-timeframe indicator provides futures market context by evaluating open interest and term structure without altering chart price scales. It requests front-month and next-month futures contracts to measure spread relationships like contango or backwar

Indicator v6 VolumeScreeners & dashboards
Updated yesterday · MIT GitHub repository of Futures Context Module [WavesUnchained]

Nexural QWAP

by JasonTeixeira
9 stars

Nexural QWAP calculates a volume-weighted average price combined with a cumulative volume delta order flow engine directly on the main price chart. It analyzes market structure by detecting volume absorption, liquidity sweeps, price-CVD divergence, stacked imb

Indicator v6 SMC / ICT / price actionVolume
Updated 12 days ago · Custom licence GitHub repository of Nexural QWAP

More indicators

Trade Your Charts With a Regulated Broker

Compare brokers that connect to TradingView, with spreads, minimum deposits and leverage side by side.

Compare brokers