On Balance Volume (OBV)
For a list of all members of this type, see OBV Members.
System.Object
RQuant.Indicator.TTimeArray
RQuant.Indicator.TDoubleArray
RQuant.Indicator.TIndicator
RQuant.Indicator.OBV
Public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread-safe.
The OBV shows in a simple manner whether capital is flowing into or out of a market and/or instrument. Based on Granville?s principle, changing trends in the price of the underlying instrument are anticipated by trend changes in the OBV. The theory is that you can see the flow of smart money into an instrument by an increase in the OBV.
The OBV shows an upward trend whenever a new high or low exceeds the previous one. In the reverse case, a lower high or low indicates a downtrend. The changing in the OBV from an upward to a downward trend is called a breakout. In the OBV analysis, it is started from the assumption that OBV breakouts precede the instrument breakouts, but that there is very little time to act. This study is not a timing tool. Rather, it monitors market sentiment for you, and it can alert you to a changing situation. This alert may be used as a signal to taking a long position on upside breakouts, and selling short when the OBV makes a downside breakout. Investors usually hold the position until the trend changes. Once a trend has been established, it remains until it is broken. This happens when a downward trend changes to an upward trend and vice versa, or when a trend changes to a choppy, sideways movement for more than three days. If an instrument changes from an uptrend to a sideways trend, and remains nontrending for two days only and then reverses to an uptrend again, the market is considered being in an uptrend as before.
The On Balance Volume indicator 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:
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","OBV DEMO",600,400);
Canvas.Divide(1,2);
OBV OBV = new OBV(Daily);
Canvas.cd(1);
Daily.Draw("c");
Canvas.cd(2);
OBV.Draw(Color.Red);
Namespace: RQuant.Indicator
Assembly: RQuant.Indicator (in RQuant.Indicator.dll)
OBV Members | RQuant.Indicator Namespace