TheVSI (Volume Strength Indicator) is a powerful tool that combinesRelative Strength Index (RSI) calculations with various volume-based metrics to provide a clearer picture of market momentum. Traditional RSI focuses solely on price movements, but VSI enhances this by integratingvolume strength, offering traders deeper insights into price action confirmation and potential reversals.
By incorporating different volume sources such asOn-Balance Volume (OBV), Accumulation/Distribution (ADL), Elder’s Force Index (EFI), and Price Volume Trend (PVT), the VSI indicator provides a multi-dimensional approach to identifying market strength and weakness.
The VSI consists of two main components:
Additionally, VSI features avolume histogram, which normalizes volume fluctuations and provides a visual representation of buying and selling pressure in the market.
The first step in the VSI calculation is applying a standardRSI to the price data. This is done using a defaultlength of 13 periods, but can be adjusted based on user preference. The result is further smoothed using alinear regression filter for better signal clarity.
VSI allows traders to choose different volume indicators as the base for the RSI calculation:
The selected volume-based data is then processed using an RSI calculation, with the samelength parameter as the price RSI. Like the price RSI, it issmoothed using a linear regression function.
The VSI also includes avolume histogram that helps visualize market activity. This histogram is calculated by:
Additionally, users can choose between:
The VSI provides multiple ways to identifytrend strength, reversals, and divergences:
VSI allows traders tocustomize parameters based on their trading style:
Parameter | Description | Default Value |
---|---|---|
length | RSI period length | 13 |
addRsiX | Volume-based RSI source (1=OBV, 2=ADL, 3=EFI, 4=PVT) | 1 |
smooth | Smoothing factor for RSI | 2 |
size | Histogram scaling factor | 10 |
volComp | Histogram type (1=Volume Oscillator, 0=SMA) | 1 |
Adjusting these values helps traders fine-tune VSI to match different market conditions and asset volatility.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | //------------------------------------------------------// //PRC_VSI Volume Strength //version = 0 //21.02.2025 //Iván González @ www.prorealcode.com //Sharing ProRealTime knowledge //------------------------------------------------------// // Input //------------------------------------------------------// length=13// Length addRsiX=1// Relative Strength of 1=On Balance Volume 2=Accumulation/Distribution 3=Elders Force index 4=Price Volume Trend smooth=2// Smooth RSI size=10// Histogram size volComp=1// Histogram companion 1=volume oscillator 0=Moving average //------------------------------------------------------// // RSI //------------------------------------------------------// myrsi=rsi[length](close) sRsi=LinearRegression[smooth](myrsi) ifaddRsiX=1then ifclose=close[1]then src=0 elsifclose>close[1]then src=volume elsifclose<close[1]then src=-volume endif CumSrc=cumsum(src) rsix=rsi[length](CumSrc) elsifaddRsiX=2then// Accumulation/Distribution ifclose=highandclose=loworhigh=lowthen src=0 else src=(2*close-low-high)/(high-low)*volume endif Cumsrc=cumsum(src) rsix=rsi[length](CumSrc) elsifaddRsiX=3then// Elders Force Index src=average[length,1]((close-close[1])*volume) rsix=rsi[length](Src) elsifaddRsiX=4then// Price Volume Trend src=(close-close[1])/close[1]*volume Cumsrc=cumsum(src) rsix=rsi[length](CumSrc) endif sRsix=LinearRegression[smooth](rsix) //------------------------------------------------------// // Volume Histogram //------------------------------------------------------// vAvg=average[length](volume) rvAvg=average[length](volume*size/vAvg) B=volume*(close-low)/(high-low)/vAvg*size S=volume*(high-close)/(high-low)/vAvg*size ifvolCompthen volx=(average[5,1](volume)-average[10,1](volume))/average[10,1](volume)*100 else volx=rvAvg endif //------------------------------------------------------// // Plot //------------------------------------------------------// volHist=volume/vAvg*size ifopen>closethen ifvolume/vAvg*abs(size)>abs(rvAvg)then r=239 g=83 b=80 a=255 else r=120 g=123 b=134 a=25 endif else ifvolume/vAvg*abs(size)>abs(rvAvg)then r=36 g=166 b=154 a=255 else r=120 g=123 b=134 a=55 endif endif //------------------------------------------------------// //Overbougth drawhline(75)coloured("red")style(dottedline3) drawhline(65)coloured("red")style(dottedline3) colorbetween(75,65,"red",40) // Middle drawhline(50)coloured("grey")style(dottedline3) //OverSold drawhline(35)coloured("green")style(dottedline3) drawhline(25)coloured("green")style(dottedline3) colorbetween(35,25,"green",40) //------------------------------------------------------// returnvolHistcoloured(r,g,b,a)style(histogram),volxcoloured("orange"),srsias"Relative Strength of price"coloured(142,21,153)style(line,2),srsixas"Relative Strength of Volume"coloured(0,188,212)style(line,2) |
The VSI indicator is apowerful enhancement over traditional RSI, allowing traders to integratevolume dynamics into their analysis. By using VSI, traders can:
✅ Confirm RSI signals with volume strength.
✅ Identifydivergences that indicate hidden buying or selling pressure.
✅ Adjust settings to adapt to different market conditions.
To maximize its potential, VSI can be combined withtrend indicators like moving averages or Bollinger Bands to improve accuracy. Whether used fortrend-following or reversal trading, VSI providesa deeper, more complete view of market momentum.
No information on this site is investment advice or a solicitation to buy or sell any financial instrument.Past performance is not indicative of future results. Trading may expose you to risk of loss greater than your deposits and is only suitable for experienced investors who have sufficient financial means to bear such risk.
ProRealTime ITF files and other attachments :Find other exclusive trading pro-tools on
PRC is also on YouTube, subscribe to our channel for exclusive content and tutorials