Open, High, Low, Close Prices and Volume indicators (OHLCV)
are generated for Session Start (7:00 AM EST) to Session End (8:00 PM EST)
at a certain Tick Period. The OHLCV indicators are generated:
- For both buy and sell sides of the book
- For both buy and sell displayed order executions (regular trades)
- For both buy and sell non-displayed order executions (hidden trades)
For each buy-side indicator, there is a sell-side indicator.
OHLCV File Format
The OHLCV files are in the character-separated-value (CSV) text format,
with columns separated by comma ",". The first row is always the header row.
An empty line is added at the end of the table to indicate the end of file.
Column |
Value |
Description |
Tick |
Timestamp |
Timestamp of the end of the tick period in the HH:MM:SS format |
Top-Of-The-Book Prices |
Bid.PriceOpen Ask.PriceOpen |
Price |
Bid Price (for buy-side of the book) or Ask Price (for sell-side of the book) at the beginning of the tick period |
Bid.PriceHigh Ask.PriceHigh |
Price |
The highest Bid Price (for buy-side of the book) or Ask Price (for sell-side of the book) during the tick period |
Bid.PriceLow Ask.PriceLow |
Price |
The lowest Bid Price (for buy-side of the book) or Ask Price (for sell-side of the book) during the tick period |
Bid.PriceClose Ask.PriceClose |
Price |
Bid Price (for buy-side of the book) or Ask Price (for sell-side of the book) at the end of the tick period |
Traded Volume |
Bid.Volume Ask.Volume |
Number of shares |
Total volume of executed orders during the tick period for buy and sell sides of the book |
Bid.NVolume Ask.NVolume |
Number of shares |
Total volume of executed non-displayed orders during the tick period for buy and sell sides of the book |
Traded Volume Prices (Displayed Orders) |
Bid.Volume.PriceOpen Ask.Volume.PriceOpen |
Price |
The last price of buy-side (Bid) or sell-side (Ask) displayed orders traded as of the beginning of the tick period |
Bid.Volume.PriceHigh Ask.Volume.PriceHigh |
Price |
The highest price of buy-side (Bid) or sell-side (Ask) displayed orders traded during the tick period |
Bid.Volume.PriceLow Ask.Volume.PriceLow |
Price |
The lowest price of buy-side (Bid) or sell-side (Ask) displayed orders traded during the tick period |
Bid.Volume.PriceClose Ask.Volume.PriceClose |
Price |
The last price of buy-side (Bid) or sell-side (Ask) displayed orders traded at the end of the tick period |
Bid.Volume.PriceAvg Ask.Volume.PriceAvg |
Price |
The volume-weighted average price of buy-side (Bid) or sell-side (Ask) displayed orders traded during the tick period.
If there were no orders traded during this tick period (Volume = 0), the value is set to zero. |
Traded Volume Prices (Non-Displayed Orders) |
Bid.NVolume.PriceOpen Ask.NVolume.PriceOpen |
Price |
The last price of buy-side (Bid) or sell-side (Ask) non-displayed orders traded as of the beginning of the tick period |
Bid.NVolume.PriceHigh Ask.NVolume.PriceHigh |
Price |
The highest price of buy-side (Bid) or sell-side (Ask) non-displayed orders traded during the tick period |
Bid.NVolume.PriceLow Ask.NVolume.PriceLow |
Price |
The lowest price of buy-side (Bid) or sell-side (Ask) non-displayed orders traded during the tick period |
Bid.NVolume.PriceClose Ask.NVolume.PriceClose |
Price |
The last price of buy-side (Bid) or sell-side (Ask) non-displayed orders traded at the end of the tick period |
Bid.NVolume.PriceAvg Ask.NVolume.PriceAvg |
Price |
The volume-weighted average price of buy-side (Bid) or sell-side (Ask) non-displayed orders traded during the tick period.
If there were no orders traded during this tick period (NVolume = 0), the value is set to zero. |
Relation To Indicators
OHLCV data sets are just user-friendly names for a selection of the most popular
Market Indicators.
The table below establishes the relationship between OHLCV and Market Indicators.
OHLCV Indicator |
Equals |
Market Indicator |
Bid.PriceOpen |
= |
MarketIndicator.Buy.Outstanding.PriceOpen |
Ask.PriceOpen |
= |
MarketIndicator.Sell.Outstanding.PriceOpen |
Bid.PriceHigh |
= |
MarketIndicator.Buy.Outstanding.PriceHigh |
Ask.PriceHigh |
= |
MarketIndicator.Sell.Outstanding.PriceHigh |
Bid.PriceLow |
= |
MarketIndicator.Buy.Outstanding.PriceLow |
Ask.PriceLow |
= |
MarketIndicator.Sell.Outstanding.PriceLow |
Bid.PriceClose |
= |
MarketIndicator.Buy.Outstanding.PriceClose |
Ask.PriceClose |
= |
MarketIndicator.Sell.Outstanding.PriceClose |
Bid.Volume |
= |
MarketIndicator.Buy.Executed.VolumeA |
Ask.Volume |
= |
MarketIndicator.Sell.Executed.VolumeA |
Bid.NVolume |
= |
MarketIndicator.Buy.Executed.NVolumeA |
Ask.NVolume |
= |
MarketIndicator.Sell.Executed.NVolumeA |
Bid.Volume.PriceOpen |
= |
MarketIndicator.Buy.Executed.PriceOpen |
Ask.Volume.PriceOpen |
= |
MarketIndicator.Sell.Executed.PriceOpen |
Bid.Volume.PriceHigh |
= |
MarketIndicator.Buy.Executed.PriceHigh |
Ask.Volume.PriceHigh |
= |
MarketIndicator.Sell.Executed.PriceHigh |
Bid.Volume.PriceLow |
= |
MarketIndicator.Buy.Executed.PriceLow |
Ask.Volume.PriceLow |
= |
MarketIndicator.Sell.Executed.PriceLow |
Bid.Volume.PriceClose |
= |
MarketIndicator.Buy.Executed.PriceClose |
Ask.Volume.PriceClose |
= |
MarketIndicator.Sell.Executed.PriceClose |
Bid.Volume.PriceAvg |
= |
MarketIndicator.Buy.Executed.PriceAvg |
Ask.Volume.PriceAvg |
= |
MarketIndicator.Sell.Executed.PriceAvg |
Bid.NVolume.PriceOpen |
= |
MarketIndicator.Buy.Executed.NPriceOpen |
Ask.NVolume.PriceOpen |
= |
MarketIndicator.Sell.Executed.NPriceOpen |
Bid.NVolume.PriceHigh |
= |
MarketIndicator.Buy.Executed.NPriceHigh |
Ask.NVolume.PriceHigh |
= |
MarketIndicator.Sell.Executed.NPriceHigh |
Bid.NVolume.PriceLow |
= |
MarketIndicator.Buy.Executed.NPriceLow |
Ask.NVolume.PriceLow |
= |
MarketIndicator.Sell.Executed.NPriceLow |
Bid.NVolume.PriceClose |
= |
MarketIndicator.Buy.Executed.NPriceClose |
Ask.NVolume.PriceClose |
= |
MarketIndicator.Sell.Executed.NPriceClose |
Bid.NVolume.PriceAvg |
= |
MarketIndicator.Buy.Executed.NPriceAvg |
Ask.NVolume.PriceAvg |
= |
MarketIndicator.Sell.Executed.NPriceAvg |
OHLCV Calculation Algorithm
- All fields are initialized to zero at the beginning of the session
- At the beginning of the new tick period, the Open, High, and Low Prices are set to the previous tick period's Close price.
The Low and High Prices will be updated throughout the tick period to reflect the minimum or maximum price within this period, correspondingly.
- If the buy or sell side of the book becomes empty at the end of the tick period, the Top-Of-The-Book Close Price (i.e. Bid.PriceClose or Ask.PriceClose) becomes zero
- If either side of the book becomes empty inside of the tick period (i.e. after the tick period start and before the tick period end),
it has no effect on any top-of-the-book prices (Open, Low, High, and Close Prices will not be zero'ed).