Movatterモバイル変換


[0]ホーム

URL:


VSI Indicator: Volume Strength

Introduction

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.

How VSI Works

The VSI consists of two main components:

  1. Price-based RSI: Measures the relative strength of price over a chosen period.
  2. Volume-based RSI (customized): Instead of price, it applies RSI to one of the selected volume indicators.

Additionally, VSI features avolume histogram, which normalizes volume fluctuations and provides a visual representation of buying and selling pressure in the market.

Understanding VSI Components

1. RSI Calculation on Price

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.

2. RSI on Volume-Based Metrics

VSI allows traders to choose different volume indicators as the base for the RSI calculation:

  • OBV (On-Balance Volume): Measures cumulative volume flow by adding volume on up days and subtracting volume on down days.
  • ADL (Accumulation/Distribution Line): Uses price and volume to assess buying or selling pressure.
  • EFI (Elder’s Force Index): Combines price change and volume to measure the strength of buyers and sellers.
  • PVT (Price Volume Trend): Similar to OBV but incorporates percentage price changes.

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.

3. Volume Histogram Calculation

The VSI also includes avolume histogram that helps visualize market activity. This histogram is calculated by:

  1. Comparing current volume to theaverage volume over the same period.
  2. Normalizing the volume fluctuations relative to the historical average.
  3. Assigning colors based on volume strength and price direction.

Additionally, users can choose between:

  • Volume Oscillator: Compares short-term and long-term volume averages.
  • Simple Moving Average (SMA) of Volume: A smoother approach to tracking volume trends.

Trading with VSI: How to Interpret Signals

The VSI provides multiple ways to identifytrend strength, reversals, and divergences:

  • Overbought & Oversold Conditions:
    • Above 75 → Overbought (potential selling pressure).
    • Below 25 → Oversold (potential buying pressure).
  • Mid-Level Confirmation:
    • 50 level → Acts as a neutral zone.
  • Divergences:
    • IfPrice RSI andVolume RSI move in opposite directions, it may signal an upcoming trend reversal.
    • Astrong volume RSI breakout with price stagnation could indicate hidden buying/selling pressure.

Configuring VSI in ProRealTime

VSI allows traders tocustomize parameters based on their trading style:

ParameterDescriptionDefault Value
lengthRSI period length13
addRsiXVolume-based RSI source (1=OBV, 2=ADL, 3=EFI, 4=PVT)1
smoothSmoothing factor for RSI2
sizeHistogram scaling factor10
volCompHistogram type (1=Volume Oscillator, 0=SMA)1

Adjusting these values helps traders fine-tune VSI to match different market conditions and asset volatility.

VSI Code in ProRealTime

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)

Conclusion & Best Practices

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.

Share this

Risk disclosure:

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 :How to import ITF files into ProRealTime platform?

Find other exclusive trading pro-tools onProRealCode Marketplace

PRC is also on YouTube, subscribe to our channel for exclusive content and tutorials

avatar
142 days ago

88 posts • 163 Followers
avatar
142 days ago

88 posts • 163 Followers
  1. avatar
    MARTINALA CARTINA• 140 days ago#

    fantastico,

avatar
Register orLogin

Likes

avataravataravataravataravatar
Related users ' posts
avatar
lkiklkikthanks for the hard work and sharing
avatar
LucasBestThanks for the translation. This one can be compared to dynamic zone RSI
avatar
sam00075Accuracy is on point.
avatar
Mubin1308Bonjour à tous,J'ai importé le fichier mais ça ne marche pas, rien qui s'affiche. Pourriez...
avatar
foufurieux
6 months ago
avatar
atlantegood morning the indicatordoes not display the photo you postes only upload nessages appear ...
avatar
foufurieuxPlease find a new image of the indicator
avatar
foufurieuxSorry impossible adding a new image
avatar
luxrungrazie Ivàn!
avatar
leeThank you. Is it possible to convert this to a screener that displays instruments when bulli...
avatar
Iván//---------------------------------------------------------------////PRC_Pollan Indicator/...
avatar
FaisalxChatGPTHola Iván. Gracias por tu excelente trabajo.Te agradecería si pudieras echarle un...
avatar
Ivánok, perfecto! me pongo con ello
avatar
sam00075Tried it the last two days, accuracy is impressive.
avatar
oliTRVery good Iván ! However what would be the modification to add to the code in order to dis...
avatar
MARTINALA CARTINAgrazie mille magnifico,si in effetti se ci fosse la possibilta di impostare orai predefiniti...
avatar
effegiVery good! A nice job
avatar
IvánHi,Sorry, but what do you mean?
avatar
luiskohnenHola, queria saber si el indicador repinta, porque a mi me parecio que si. Saludos y gracias...
avatar
DiamantBonsoir,L'un d'entre vous peut-il me donner les définissions de LL-HH-LH et HL. Merci d'av...
avatar
Bernard13(Je réécris mon commentaire -français- en français car certains mots ne correspondaient pas ...
avatar
Iván1000 indicateurs !!! brutaux
avatar
IvánGracias! Para el screener sólo tienes que copiar el indicador y poner como condición de búsq...
avatar
LeanMuchas gracias Iván, ya lo he podido crear.
avatar
bertoluceHello Ivan, thank you very much for the indicator. An observation: would it be possible (and...
avatar
oliTRYes, I am sure it should work perfectly, but I found very strange vehavior like this one:...
avatar
oliTRwell,it seems that the issue came from my backTest period which was not long enough.sorry
avatar
oliTRDear Ivan,why, in line 86, there is "currentsuperTrend[i]" and not "currentsuperTrend" only?
avatar
RazzBonjourJe pense que votre indicateur est très bon. Serait-il possible d'afficher la heatma...
avatar
philippe59139if marketEtHeamap=1 thendrawtext("#touch#",barindex+10,checkprice,SansSerif,Standard,10) c...
avatar
philippe59139voici pour toi RAZZ il te faut simplement ajouter les drawtexthttps://www.prorealcode.com...
avatar
Bateson
2 years ago
avatar
MatricielVery nice job !Is it possible to do the opposite because what interests me is to have the ...
avatar
YvesRobertHi Matriciel, how can we do this, because stochastic is limited between 0 and 100 but price ...
avatar
Traderfox06Dear zeiiermantrading,I really like your approach combining adaptive averages with MACD in...

Top
Trading on leveraged financial instrumentsmay expose you to risk of loss greater than your deposits and is only suitable for experienced clients with the financial means to bear such risk.Trading on foreign exchange instruments (Forex) and contracts for difference (CFDs) is highly speculative and particularly complex and comes with a high level of risk due to leverage. You must ensure that you understand how these instruments work and that you can afford to take the high risk of losing your money. No information on this site is investment advice or a solicitation to buy or sell any financial instruments.
|contact@prorealcode.com | Copyright © 2016-2025 ProRealCodeprorealcode icon
 contact@prorealcode.com
We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.Ok

[8]ページ先頭

©2009-2025 Movatter.jp