To start streaming real-time stock prices from the QUODD TMX QuantumFeed® and TSX Venture Level 1 data feed via WebSocket, use one of our Real-Time SDKs:

Example SDK Code

Here is a brief example of how to stream real-time stock prices from the QUODD TMX QuantumFeed® and TSX Venture Level 1 data feed using our NodeJS Real-Time SDK:

'use strict';
var IntrinioRealtime = require('intrinio-realtime')

// Create an IntrinioRealtime instance
var ir = new IntrinioRealtime({
  api_key: "INTRINIO_API_KEY",
  provider: "quodd"
})

// Listen for quotes
ir.onQuote(quote => {
  var { ticker, type, price, size, timestamp } = quote
  console.log("QUOTE: ", ticker, type, price, size, timestamp)
})

// Join channels
ir.join("DXZ.T", "AVE.V")

Channels

In order to stream real-time stock prices, you must "join" a channel. The channels you join will determine which stock price quotes our SDK will send to you. A channel corresponds to a traded security on a stock exchange, using the pattern below:

  • Securities traded on the Toronto Stock Exchange (TSX) exchange use the pattern {ticker}.T , for example DXZ.T .
  • Securities traded on the TSX Venture Exchange use the pattern {ticker}.V , for example AVE.V .

Leaving Channels

In order to remain under your concurrent connection limit, you may have to "leave" channels you no longer want to receive stock price quotes from.

Limits

Depending on your subscription, the following limits may apply to your usage of our Real-Time SDKs for streaming stock price quotes from the QUODD TMX QuantumFeed® and TSX Venture Level 1 data feed:

Limit Type Example Explanation
Concurrent Connections 1 You may have 1 WebSocket connection open at a time.
Ticker Limit 50 You may join up to 50 unique channels at any time.

Message Format

QUODD provides two kinds of quote messages:

  • Trade Message - contains information about a specific stock trade
  • Quote Message - contains information about changes to the current bid/ask spread

Important: Quote messages from QUOOD reflect changes in market data. Not all fields will be present in every message. Upon subscribing to a channel, you will receive one quote and one trade message containing all fields of the latest data available.

Trade Message

Here is a sample trade message and the corresponding field definitions.


                  
  • ticker - The QUODD Stock Symbol for the security
  • root_ticker - Underlying symbol for a particular contract
  • last_price_4d - The price at which the security most recently traded
  • trade_volume - The number of shares that that were traded on the last trade
  • trade_exchange - The market center where the last trade occurred
  • trade_time - The time at which the security last traded in milliseconds
  • up_down - Tick indicator - up or down - indicating if the last trade was up or down from the previous trade
  • change_price_4d - The difference between the closing price of a security on the current trading day and the previous day's closing price.
  • percent_change_4d - The percentage at which the security is up or down since the previous day's trading
  • total_volume - The accumulated total amount of shares traded
  • volume_plus - Nasdaq volume plus the volumes from other market centers to more accurately match composite volume. Used for TMX QuantumFeed® and TSX Venture Level 1
  • vwap_4d - Volume weighted Average Price. VWAP is calculated by adding up the dollars traded for every transaction (price multiplied by number of shares traded) and then dividing by the total shares traded for the day.
  • day_high_4d - A security's intra-day high trading price.
  • day_high_time - Time that the security reached a new high
  • day_low_4d - A security's intra-day low trading price.
  • day_low_time - Time that the security reached a new low
  • ext_last_price_4d - Extended hours last price (pre or post market)
  • ext_trade_volume - The amount of shares traded for a single extended hours trade
  • ext_trade_exchange - Extended hours exchange where last trade took place (Pre or post market)
  • ext_trade_time - Time of the extended hours trade in milliseconds
  • ext_up_down - Extended hours tick indicator - up or down
  • ext_change_price_4d - Extended hours change price (pre or post market)
  • ext_percent_change_4d - Extended hours percent change (pre or post market)
  • is_halted - A flag indicating that the stock is halted and not currently trading
  • is_short_restricted - A flag indicating the stock is current short sale restricted - meaning you can not short sale the stock when true
  • open_price_4d - The price at which a security first trades upon the opening of an exchange on a given trading day
  • open_time - The time at which the security opened in milliseconds
  • open_volume - The number of shares that that were traded on the opening trade
  • prev_close_4d - The security's closing price on the preceding day of trading
  • protocol_id - Internal QUODD ID defining Source of Data
  • rtl - Record Transaction Level - number of records published that day

Quote Message

Here is a sample quote message and the corresponding field definitions.


                  
  • ticker - The QUODD Stock Symbol for the security
  • root_ticker - Underlying symbol for a particular contract
  • ask_price_4d - The price a seller is willing to accept for a security
  • ask_size - The amount of a security that a market maker is offering to sell at the ask price
  • ask_exchange - The market center from which the ask is being quoted
  • bid_price_4d - A bid price is the price a buyer is willing to pay for a security.
  • bid_size - The bid size number of shares being offered for purchase at a specified bid price
  • bid_exchange - The market center from which the bid is being quoted
  • quote_time - Time of the quote in milliseconds
  • rtl - Record Transaction Level - number of records published that day
  • protocol_id - Internal QUODD ID defining Source of Data

Handling Large Numbers of Quotes

Each Real-Time SDK has a method for handling large numbers of quotes, typically by using a queue pattern. This is to prevent your system's memory from being overloaded by quotes not yet handled by your code. For more details, refer to the specific documentation for your chosen Real-Time SDK.