QuantStudio Financial Data Analysis and Trading Framework

PVI Class

Positive Volume Index (PVI)

For a list of all members of this type, see PVI Members.

System.Object
   RQuant.Indicator.TTimeArray
      RQuant.Indicator.TDoubleArray
         RQuant.Indicator.TIndicator
            RQuant.Indicator.PVI

[Visual Basic]
Public Class PVI
    Inherits TIndicator
[C#]
public class PVI : TIndicator

Thread Safety

Public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread-safe.

Remarks

The interpretation of the PVI is based on the assumption that on days with increasing trade volumes, the large-scale, crowd-following "uninformed" investors are in the market. On days with decreasing trade volumes, on the other hand, the "smart money" is quietly taking positions. In this way, the PVI is able to show the activity of the "not-so-smart-money".

The PVI is good at suggesting a bull market when it is above its one-year Moving Average, and still good in identifying a bear market when it is below its one-year Moving Average. The Positive Volume Index is not currently applicable for Intraday charts and will never be applicable for Tick charts, due to the nature of the data.

This indicator is described in more details in the Steve Achelis' book "Technical Analysis from A to Z".

Formula:

Example

TDataManager.cd("Demo");

TDailyArray Daily1 = TDataManager.GetStock("YHOO").DailyArray;

DateTime Date1 = DateTime.Parse("1999/02/08"); 
DateTime Date2 = DateTime.Parse("2000/12/29"); 

TDailyArray Daily = Daily1.Clone(Date1, Date2);

TCanvas Canvas = new TCanvas("Canvas","PVI DEMO",600,400);
    
Canvas.Divide(1,2);

PVI PVI = new PVI(Daily);

Canvas.cd(1);
Daily.Draw("c");

Canvas.cd(2);
PVI.Draw(Color.Red);

Requirements

Namespace: RQuant.Indicator

Assembly: RQuant.Indicator (in RQuant.Indicator.dll)

See Also

PVI Members | RQuant.Indicator Namespace