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:
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")
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:
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.
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. |
QUODD provides two kinds of quote messages:
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.
Here is a sample trade message and the corresponding field definitions.
Here is a sample quote message and the corresponding field definitions.
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.