Stock Prices & Trading Volumes

Overview

Trading volumes, pre-market opening prices, after hours closing prices, and high/low prices of all US equities and ETFs executed on the Nasdaq.

Key Attributes

Geographic Coverage

United States

Entity Level

Ticker

Time Granularity

Daily

Release Frequency

Daily, 6am ET

History

May 1, 2018

Description

Cybersyn publishes daily prices & trading volumes of all US equities and ETFs executed on the Nasdaq. Trading volumes, open/close, and high/low prices are based on full day trading, inclusive of pre-market, regular trading, and after hours sessions. Open prices represent the pre-market opening prices and close prices represent the after hours closing prices. The trading volume reflects the total number of trades executed on the Nasdaq throughout all sessions.

The data is sourced from Databento, a market data provider that connects directly with Nasdaq TotalView. Cybersyn makes data from the previous trading day available around 6am ET.

Note: Unlike SIP (Securities Information Processor) feeds, Nasdaq TotalView reports open/close prices and volume for all trading sessions. If you see discrepancies between prices and volumes from other sources, it is likely because these sources are connected to SIP feeds and only report data from regular market hours. Cybersyn plans to add trading volume and prices for regular trading hours in the near future.

EAV Model: All Cybersyn products follow the EAV (entity, attributes, value) model with a unified schema. Entities are tangible objects (e.g. geography, company) that Cybersyn provides data on. All timeseries' dates and values that refer to the entity are included in a timeseries table. Descriptors of the timeseries are included in an attributes table. Data is joinable across all Cybersyn products that have a GEO_ID. Refer to Cybersyn Concepts for more details.

Tables & Source

Table(s)Source(s)

STOCK_PRICE_TIMESERIES

Data provided by Databento

Sample Queries

Find YTD performance of a select group of stocks

YTD performance of the Magnificent 7

WITH ytd_performance AS (
  SELECT
    ticker,
    MIN(date) OVER (PARTITION BY ticker) AS start_of_year_date,
    FIRST_VALUE(value) OVER (PARTITION BY ticker ORDER BY date ASC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS start_of_year_price,
    MAX(date) OVER (PARTITION BY ticker) AS latest_date,
    LAST_VALUE(value) OVER (PARTITION BY ticker ORDER BY date ASC ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS latest_price
  FROM cybersyn.stock_price_timeseries
  WHERE
    ticker IN ('AAPL', 'MSFT', 'AMZN', 'GOOGL', 'META', 'TSLA', 'NVDA')
    AND date >= DATE_TRUNC('YEAR', CURRENT_DATE()) -- Truncates the current date to the start of the year
    AND variable_name = 'Post-Market Close'
)
SELECT
  ticker,
  start_of_year_date,
  start_of_year_price,
  latest_date,
  latest_price,
  (latest_price - start_of_year_price) / start_of_year_price * 100 AS percentage_change_ytd
FROM
  ytd_performance
GROUP BY
  ticker, start_of_year_date, start_of_year_price, latest_date, latest_price
ORDER BY percentage_change_ytd DESC;

Find daily stock price movement for a specific company

Daily percent change of the Hershey Company (HSY)

WITH close_data AS (
    SELECT
      date,
      value AS post_market_close_price,
      LAG(value) OVER (ORDER BY date) AS previous_close,
      (value / LAG(value) OVER (ORDER BY date) - 1) * 100 AS daily_pct_change
    FROM cybersyn.stock_price_timeseries
    WHERE
      ticker = 'HSY'
      AND variable_name = 'Post-Market Close'
)

SELECT *
FROM close_data
WHERE date >= DATEADD('MONTH', -3, CURRENT_DATE())
ORDER BY date;

Identify the most volatile stocks in the last trading day

Top 50 most volatile stocks, above a volume threshold, in the last trading day

WITH pivoted_data AS (
    SELECT *
    FROM (
        SELECT
            ticker,
            asset_class,
            primary_exchange_code,
            primary_exchange_name,
            date,
            variable,
            value
        FROM cybersyn.stock_price_timeseries
    )
    PIVOT (
        MAX(value) FOR variable IN ('nasdaq_volume', 'post-market_close', 'all-day_high', 'all-day_low', 'pre-market_open')
    ) AS pvt (ticker, asset_class, primary_exchange_code, primary_exchange_name, date, nasdaq_volume, post_market_close, all_day_high, all_day_low, pre_market_open)
),

rankedvolatility AS (
    SELECT
        ticker,
        date,
        nasdaq_volume,
        all_day_high,
        all_day_low,
        (all_day_high - all_day_low) / all_day_low * 100 AS volatility_percentage,
        ROW_NUMBER() OVER (ORDER BY date DESC)           AS rn
    FROM pivoted_data
    WHERE
        nasdaq_volume > 1000000 -- Example threshold for significant trading volume
        AND all_day_low > 5
        AND date = (SELECT MAX(date) FROM pivoted_data)
)

SELECT
    ticker,
    date,
    nasdaq_volume,
    all_day_high,
    all_day_low,
    volatility_percentage
FROM rankedvolatility
ORDER BY volatility_percentage DESC
LIMIT 50;

Cybersyn Products

Tables above are available in the following Cybersyn data products:

Disclaimers

The data in this product is sourced from Databento.

Cybersyn is not endorsed by or affiliated with any of these providers. Contact support@cybersyn.com for questions.

Last updated

Copyright © 2024 Cybersyn