US Equity algoseek Daily OHLC Adjusted Guide                                                                


US Equity algoseek Daily OHLC Adjusted Guide

Version 1.0.0 (Jun 2024)

CONTACT US

We are here to help you do great things with our market and reference data. For questions, feedback, and other concerns, you may reach our team of experts using the following contact information:

 

algoseek customer support

support@algoseek.com

(+1) 646 583 1832

algoseek sales

sales@algoseek.com

(+1) 646 583 1832

TABLE OF CONTENTS

REVISION SUMMARY        4

INTRODUCTION        5

EXCHANGE MARKET HOURS        5

DATA ORGANIZATION AND FILE FORMAT        6

CORPORATE EVENTS        8

APPENDIX A. OHLCV CALCULATIONS FROM TRADE EVENTS        9

APPENDIX B. ALGOSEEK VS INDUSTRY STANDARD LOGIC        13


REVISION SUMMARY

Effective Date

Version

Revision Type

Description

Jun 10, 2024

1.0.0

Release

An initial version of the dataset

INTRODUCTION

This guide describes the Daily OHLC Adjusted data calculated using algoseek logic for US Equities.

The dataset is based on sophisticated algoseek logic for extracting accurate Open/High/Low/Close trades from the Trades of the Securities Information Processor (SIP) data, also known as the “Consolidated Feed” for all listed stocks, ETNs, ETFs, ADRs, and funds. This dataset contains OHLCV data adjusted by corporate events along with raw data.

For all information about corporate events applied to adjust the data and implemented logic for adjusting, see the ‘Corporate Events’ section.

There are two data aggregation options for this dataset that provide exactly the same data fields:

tradedate: one CSV file with data for all symbols per trading day

secid: one CSV file with data for all trading days per Security ID - a unique security identifier used by algoseek that remains unchanged when the ticker changes

EXCHANGE MARKET HOURS

The US Stock Market trading hours are split into the pre-market, market, and post-market hours.

Pre-Market Hours: 04:00:00 to 09:30:00 (excluding)

Market Hours: 09:30:00 to 16:00:00 (excluding)

Post-Market Hours: 16:00:00 to 20:00:00

Note: Occasionally, trade events are recorded several minutes after 20:00.

Market Holidays and Early Closes

The stock market is closed for trading on most US holidays. For reference, algoseek publishes a list of historical holidays, which is available at s3://us-equity-market-holidays/holidays.csv (direct download link: https://us-equity-market-holidays.s3.amazonaws.com/holidays.csv).

Markets sometimes close early at 13:00:00 on the day before holidays such as Independence Day and Thanksgiving. You can download algoseek’s early close date and time list from AWS S3 storage at s3://us-equity-market-holidays/earlycloses.csv (or use a direct link us-equity-market-holidays.s3.amazonaws.com/earlycloses.csv).

DATA ORGANIZATION AND FILE FORMAT

algoseek provides Equity market data in plain-text CSV files. The first row of the CSV file is a fixed header, and then rows of data corresponding to individual events (see Table 1). By default, the dataset is organized either by trading day or by secid.  It means, for example, that all daily Open/Close data for Mar 3, 2020, are stored in a separate CSV file under a tradedate aggregation. For the secid-based aggregation, all data for the security with an ID 33449 (AAPL) for a single year is stored in a separate CSV file.

Table 1 below summarizes the name,  description, and data type for each data field (column). The Field order below is for SecId-based aggregation. For tradedate-based data aggregation the “TradeDate” is the first column and “SecId” is the second.

Table 1: CSV File Fields Schema

Field

Type (Format)

Description

TradeDate

string (yyyymmdd)

Trading date in yyyymmdd format

Ticker

string

Symbol name

SecId

integer

algoseek unique Security ID

Open

decimal

Primary exchange opening trade (see section “Opening Trade”)

High

decimal

Highest trade price from any exchange excluding FINRA

Low

decimal

Lowest trade price from any exchange excluding FINRA

Close

decimal

Primary exchange closing trade (see section “Closing Trade”)

MarketHoursVolume

integer

Total trading volume during regular market hours only

MarketHoursFinraVolume

integer

FINRA/TRF trading volume during regular market hours only (normal trade day is 09:30:00 to 16:00:00 ET).  FINRA/TRF represents off-exchange trading.

DailyVolume

integer

Total trading volume for the whole day (includes pre, regular, and post-market)

DailyFinraVolume

integer

FINRA/TRF trading volume for the whole day (includes pre-, regular, and post-market)

MarketHoursVWAP

decimal

Volume weighted average price during regular market hours, normally between 09:30:00 and 16:00:00 ET plus the Opening and Closing Cross (which may be after 16:00:00 ET).

DailyVWAP

decimal

Volume weighted average price for the whole day including pre-, regular, and post-market trades.

OpenAdj

decimal

Backward adjusted price of opening trade

HighAdj

decimal

Backward adjusted trade with the highest price

LowAdj

decimal

Backward adjusted trade with the lowest price

CloseAdj

decimal

Backward adjusted price of closing trade

MarketHoursVolumeAdj

integer

Backward adjusted total trading volume during regular market hours only

MarketHoursFinraVolumeAdj

integer

Backward adjusted FINRA/TRF trading volume during regular market hours only

DailyVolumeAdj

integer

Backward adjusted total trading volume for the whole day

DailyFinraVolumeAdj

integer

Backward adjusted FINRA/TRF trading volume for the whole day

MarketHoursVWAPAdj

decimal

Backward adjusted volume weighted average price during regular market hours

DailyVWAPAdj

decimal

Backward adjusted volume weighted average price for the whole trading day

Bar Notes

MarketHoursVWAP and DailyVWAP: Market hours volume weighted average price (VWAP) is calculated as

sum(TradePrice x TradeSize) / sum(TradeSize)

where

sum(TradeSize) = MarketHoursVolume

FINRA/TRF vs Exchange Trades

FINRA Trade Reporting Facility (TRF) allows for reporting of trades that do not take place on an exchange, this includes Dark Pools, Broker-Dealer internal trading, Over the Counter (OTC), etc.

CORPORATE EVENTS

Table 2: Corporate Event’s effect on Price and/or Volume

Corporate Event

Affects Price

Affects Volume

Bonus issue in the same class

Yes

Yes

Bonus issue in a different class

Yes

No

Capital Reduction

Yes

Yes

Consolidation

Yes

Yes

Distribution

Yes

No

Cash Dividend

Yes

No

Script dividend in the same class

Yes

Yes

Script dividend in a different class

Yes

No

De-merger

Yes

No

Entitlement in the same class

Yes

No

Entitlement in a different class

Yes

No

Capital Return

Yes

No

Rights in the same class

Yes

No

Rights in a different class

Yes

No

Security Swap

Yes

Yes

Reclassification

Yes

Yes

Any subdivision (by any stock split, stock dividend, reclassification, recapitalization, or otherwise) or combination (by the reverse stock split, reclassification, recapitalization, or otherwise) of the Class A Common Stock.

Yes

Yes


APPENDIX A. OHLCV CALCULATIONS FROM TRADE EVENTS

This section describes algoseek logic for daily bar calculations based on events from the Trade Only dataset. The logic is based on sophisticated Equity Primary Daily OHLC dataset logic for extracting accurate official opening and closing cross prices. Please also refer to Equity Trade Only Guide for more details on data fields and condition flags used.

In this section Market hours refer to 9:30:00 (including) - 16:00:00 (excluding) for regular trading days and to 9:30:00 (including) - 13:00:00 (excluding) when there was an early close.

Filtering

Opening Trade

The Opening Trade is selected from the following priority order list:

Regular Open

The Regular Open corresponds to the first event satisfying all the conditions below:

Regular First

Regular First is the first event satisfying all the conditions below:

Closing Trade

The Closing Trade is selected from the following priority order list:

Regular Close

The Regular Close is the first event satisfying all the conditions below:

Regular Last

Regular Last is the last event satisfying all the conditions below:

Daily High

Daily High is the first event satisfying all the conditions below:

Daily Low

Daily Low corresponds to the first event satisfying all the conditions below:

Volume

All events are accounted for unless any of the flags from Table 3 are present. For ListedMarketHoursVolume, events with the tExtendedHours flag are also excluded. Among the events containing the flag from Table 3 only one selected opening/closing trade volume per exchange is accounted for. For ListedMarketHoursVolume and ListedTotalVolume columns, only events from Public Listed exchanges are accounted for. For the FinraMarketHoursVolume and FinraTotalVolume columns, only events from the FINRA Exchange are accounted for.

Table 3: Flags for Trade Events to be Excluded During Volume Calculations

Bit Mask Position

Flags

24

tOfficialClose

26

tOfficialOpen

6

tOpeningPrints

7

tClosingPrints


APPENDIX B. ALGOSEEK VS INDUSTRY STANDARD LOGIC

Table 4: Flags for Trade Events to be Included During Daily High/Low Calculations for Industry Standard Logic

Bit Mask Position

Flags

0

tRegular

5

tIntermarketSweep

6

tOpeningPrints

7

tClosingPrints

14

tOutOfSequence

21

tCross

29

tTradeThroughExempt

Table 5: Flags for Trade Events to be Excluded During Daily High/Low Calculations for Industry Standard Logic

Bit Mask Position

Flags

1

tCash

2

tNextDay

3

tSeller

9

tDerivativelyPriced

10

tFormT

13

tExtendedHours

18

tStockOption

20

tAveragePrice

22

tPriceVariation

23

tRule155

24

tOfficialClose

25

tPriorReferencePrice

26

tOfficialOpen

27

tCapElection

31

tOddLot

Table 6: algoseek vs Industry Standard Logic

algoseek

Industry Standard

Filtering

  • Exclude any trade with Price = 0
  • Exclude any trade with Quantity = 0
  • Exclude Trade Cancel events
  • Exclude the original trade that was canceled later
  • Exclude any trade with Price = 0
  • Exclude any trade with Quantity = 0
  • Exclude Trade Cancel events
  • Exclude the original trade that was canceled later

Open/Close

By priority:

  • the event with the tOfficialOpen/ tOfficialClose flag with the largest volume from the Primary Exchange
  • the event with the tOpeningPrints/ tClosingPrints flag with the largest volume from the Primary Exchange
  • a Regular Open/Close from the Primary Exchange
  • a Regular First/Last from the Primary Exchange
  • the TRADE NB event with the tOfficialOpen/ tOfficialClose flag and the largest volume among exchanges excluding FINRA
  • the TRADE NB event with the tOpeningPrints/ tClosingPrints flag and the largest volume among exchanges excluding FINRA
  • a Regular Open/Close based on the TRADE NB event selected among exchanges excluding FINRA
  • a Regular First/Last based on the TRADE NB event selected among exchanges excluding FINRA
  • the TRADE event with the  tOfficialOpen/ tOfficialClose flag and the largest volume among exchanges excluding FINRA
  • the TRADE event with the  tOpeningPrints/ tClosingPrints flag and the largest volume among exchanges excluding FINRA
  • a Regular Open/Close based on the TRADE event selected among exchanges excluding FINRA
  • a Regular First/Last based on the TRADE event selected among exchanges excluding FINRA

The Regular Open/Close:

  • not an Open/Close event (tOpeningPrints, tClosingPrints, tOfficialClose and tOfficialOpen flags)
  • not having either of the following flags set: tExtendedHours, tDerivativelyPrices, tStockOption, tAveragePrice, tRule155
  • the largest volume between 09:30:00/16:00:00 (13:00:00 for an Early Close) (including) and 09:40:00/16:05:00 (13:05:00 for an Early Close) (including)

Regular First/Last:

  • not an Open/Close event (tOpeningPrints, tClosingPrints, tOfficialClose and tOfficialOpen flags)
  • not having either of the following flags set: tDerivativelyPrices, tStockOption, tAveragePrice, tRule155
  • not having tOddLot flag set
  • not having tExtendedHours flag set
  • the event time is within market hours

The first/last event starting from 09:30 am with TRADE NB EventType. If no event has TRADE NB type, the first/last event with TRADE EventType is chosen instead.

Note: an event with a zero quantity does apply for Open/Close

High/Low

  • not an Open/Close event (tOpeningPrints, tClosingPrints, tOfficialClose and tOfficialOpen flags)
  • not having either of the following flags set: tDerivativelyPrices, tStockOption, tAveragePrice, tRule155
  • not having tOddLot flag set
  • not having tExtendedHours flag set
  • the exchange is not FINRA
  • the event with the highest/lowest price within market hours

The trade with the highest (lowest) price starting from 09:30 am is chosen for which the following two conditions are met:

  • At least one flag from Table 4 is present
  • None of the flags from Table 5 is present

If no trades apply for the condition above, the largest (smallest) price with TRADE NB (if available) starting from 09:30 am is chosen instead

Note: we take into account Opening/Closing Trade when calculating Highest/Lowest Trade

Volume

  • not having either of the following flags set: tOfficialOpen, tOfficialClose, tOpenindPrints, tClosingPrints
  • additionally included selected one opening/closing event volume per exchange
  • events with the tExtendedHours flag are excluded from MarketHoursVolume
  • not having either of the following flags set: tOfficialOpen, tOfficialClose