QuantStudio Financial Data Analysis and Trading Framework

VOSC Class

Volume Oscillator (VOSC)

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

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

[Visual Basic]
Public Class VOSC
    Inherits TIndicator
[C#]
public class VOSC : 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 Volume Oscillator displays the difference between two moving averages of a security's volume . The difference between the moving averages can be expressed in either points or percentages.

You can use the difference between two moving averages of volume to determine if the overall volume trend is increasing or decreasing. When the Volume Oscillator rises above zero, it signifies that the shorter-term volume moving average has risen above the longer-term volume moving average, and thus, that the short-term volume trend is higher (i.e., more volume) than the longer-term volume trend.
There are many ways to interpret changes in volume trends. One common belief is that rising prices coupled with increased volume, and falling prices coupled with decreased volume, is bullish. Conversely, if volume increases when prices fall, and volume decreases when prices rise, the market is showing signs of underlying weakness.
The theory behind this is straight forward. Rising prices coupled with increased volume signifies increased upside participation (more buyers) that should lead to a continued move. Conversely, falling prices coupled with increased volume (more sellers) signifies decreased upside participation.

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","VOSC DEMO",600,400);

VOSC VOSC = new VOSC(Daily, 14, 10);

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

Canvas.cd(2);
VOSC.Draw();    

Requirements

Namespace: RQuant.Indicator

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

See Also

VOSC Members | RQuant.Indicator Namespace