OPEN-SOURCE SCRIPT
BTC Spot CVD (Daily Reset) - Multi Exchange

This indicator plots intraday Cumulative Volume Delta (CVD) for BTC spot markets across multiple major exchanges in a single pane, allowing quick comparison of relative buying/selling pressure throughout the day.
Exchanges / Pairs included
COINBASE:BTCUSD
OKX:BTCUSDT
BINANCE:BTCUSDT
BITFINEX:BTCUSD
KUCOIN:BTCUSDT
KRAKEN:BTCUSD
BYBIT:BTCUSDT
Each exchange is drawn as its own colored CVD line, and the right edge shows a live label with full symbol name + current CVD value.
How CVD is calculated (important)
TradingView spot feeds generally do not provide true aggressor-side trade data (buy vs sell).
This script uses a tick-rule estimate based on bar-to-bar price change:
If close > close[1] → bar volume is treated as buying (+)
If close < close[1] → bar volume is treated as selling (−)
If unchanged → 0
That signed volume is accumulated over time to form CVD.
Intraday reset
CVD resets at the start of each new trading day (based on the symbol’s daily session/day boundary on TradingView). This makes it easy to compare “today’s” flow across venues without long-term drift.
Units toggle: BTC vs USD
In settings you can switch:
BTC mode: CVD in BTC (base units)
USD mode: CVD converted to quote value using the bar’s price (BTC delta × price).
For USDT pairs, USD mode treats USDT as USD-like.
How to use
Add the indicator to any chart/timeframe.
Use the Inputs panel to show/hide specific exchanges.
Compare which venues lead/lag and where delta is strongest/weakest intraday.
Use the zero line as a quick reference for net positive vs net negative delta for the day.
Notes / limitations
This is an approximation of volume delta using OHLCV data, not true order-flow delta from trade prints.
Results can vary by timeframe because the tick-rule sign is derived from the bar close.
Exchanges / Pairs included
COINBASE:BTCUSD
OKX:BTCUSDT
BINANCE:BTCUSDT
BITFINEX:BTCUSD
KUCOIN:BTCUSDT
KRAKEN:BTCUSD
BYBIT:BTCUSDT
Each exchange is drawn as its own colored CVD line, and the right edge shows a live label with full symbol name + current CVD value.
How CVD is calculated (important)
TradingView spot feeds generally do not provide true aggressor-side trade data (buy vs sell).
This script uses a tick-rule estimate based on bar-to-bar price change:
If close > close[1] → bar volume is treated as buying (+)
If close < close[1] → bar volume is treated as selling (−)
If unchanged → 0
That signed volume is accumulated over time to form CVD.
Intraday reset
CVD resets at the start of each new trading day (based on the symbol’s daily session/day boundary on TradingView). This makes it easy to compare “today’s” flow across venues without long-term drift.
Units toggle: BTC vs USD
In settings you can switch:
BTC mode: CVD in BTC (base units)
USD mode: CVD converted to quote value using the bar’s price (BTC delta × price).
For USDT pairs, USD mode treats USDT as USD-like.
How to use
Add the indicator to any chart/timeframe.
Use the Inputs panel to show/hide specific exchanges.
Compare which venues lead/lag and where delta is strongest/weakest intraday.
Use the zero line as a quick reference for net positive vs net negative delta for the day.
Notes / limitations
This is an approximation of volume delta using OHLCV data, not true order-flow delta from trade prints.
Results can vary by timeframe because the tick-rule sign is derived from the bar close.
오픈 소스 스크립트
트레이딩뷰의 진정한 정신에 따라, 이 스크립트의 작성자는 이를 오픈소스로 공개하여 트레이더들이 기능을 검토하고 검증할 수 있도록 했습니다. 작성자에게 찬사를 보냅니다! 이 코드는 무료로 사용할 수 있지만, 코드를 재게시하는 경우 하우스 룰이 적용된다는 점을 기억하세요.
면책사항
해당 정보와 게시물은 금융, 투자, 트레이딩 또는 기타 유형의 조언이나 권장 사항으로 간주되지 않으며, 트레이딩뷰에서 제공하거나 보증하는 것이 아닙니다. 자세한 내용은 이용 약관을 참조하세요.
오픈 소스 스크립트
트레이딩뷰의 진정한 정신에 따라, 이 스크립트의 작성자는 이를 오픈소스로 공개하여 트레이더들이 기능을 검토하고 검증할 수 있도록 했습니다. 작성자에게 찬사를 보냅니다! 이 코드는 무료로 사용할 수 있지만, 코드를 재게시하는 경우 하우스 룰이 적용된다는 점을 기억하세요.
면책사항
해당 정보와 게시물은 금융, 투자, 트레이딩 또는 기타 유형의 조언이나 권장 사항으로 간주되지 않으며, 트레이딩뷰에서 제공하거나 보증하는 것이 아닙니다. 자세한 내용은 이용 약관을 참조하세요.