IntrinioRealTimeClient 4.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package IntrinioRealTimeClient --version 4.0.0
NuGet\Install-Package IntrinioRealTimeClient -Version 4.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="IntrinioRealTimeClient" Version="4.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add IntrinioRealTimeClient --version 4.0.0
#r "nuget: IntrinioRealTimeClient, 4.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install IntrinioRealTimeClient as a Cake Addin
#addin nuget:?package=IntrinioRealTimeClient&version=4.0.0

// Install IntrinioRealTimeClient as a Cake Tool
#tool nuget:?package=IntrinioRealTimeClient&version=4.0.0

intrinio-realtime-options-dotnet-sdk

SDK for working with Intrinio's realtime Multi-Exchange prices feed. Intrinio’s Multi-Exchange feed bridges the gap by merging real-time equity pricing from the IEX and MEMX exchanges. Get a comprehensive view with increased market volume and enjoy no exchange fees, no per-user requirements, no permissions or authorizations, and little to no paperwork.

Intrinio provides real-time stock prices via a two-way WebSocket connection. To get started, subscribe to a real-time data feed and follow the instructions below.

Documentation for our legacy realtime client

Requirements

  • .NET 5+

Installation

Go to Release, download the DLLs, reference it in your project. The DLLs contains dependencies necessary to the SDK.

Sample Project

For a sample .NET project see: intrinio-realtime-options-dotnet-sdk

Features

  • Receive streaming, real-time price quotes (last trade, bid, ask)
  • Subscribe to updates from individual securities
  • Subscribe to updates for all securities

Example Usage

static void Main(string[] _)
{
	Client.Log("Starting sample app");
	client = new Client(OnTrade, OnQuote);
	timer = new Timer(TimerCallback, client, 10000, 10000);
	client.Join(); //Load symbols from config.json
	//client.Join(new string[] { "AAPL", "GOOG", "MSFT" }, false); //Specify symbols at runtime
	Console.CancelKeyPress += new ConsoleCancelEventHandler(Cancel);
}

Handling Quotes

There are thousands of securities, each with their own feed of activity. We highly encourage you to make your trade and quote handlers has short as possible and follow a queue pattern so your app can handle the volume of activity.

Data Format

Trade Message

type [<Struct>] Trade =
    {
        Symbol : string
        Price : float
        Size : uint32
        TotalVolume : uint64
        Timestamp : DateTime
    }
  • Symbol - Ticker symbol.
  • Price - the price in USD
  • Size - the size of the last trade.
  • TotalVolume - The number of stocks traded so far today for this symbol.
  • Timestamp - a Unix timestamp

Quote Message

type [<Struct>] Quote =
    {
        Type : QuoteType 
        Symbol : string
        Price : float
        Size : uint32
        Timestamp : DateTime
    }
  • Type - the quote type
    • Ask - represents an ask type
    • Bid - represents a bid type
  • Symbol - Ticker symbol.
  • Price - the price in USD
  • Size - the size of the last ask or bid.
  • Timestamp - a Unix timestamp

API Keys

You will receive your Intrinio API Key after creating an account. You will need a subscription to a realtime data feed as well.

Methods

Client client = new Client(OnTrade, OnQuote); - Creates a new instance of the Intrinio Real-Time client. The provided actions implement OnTrade and OnQuote, which handle what happens when the associated event happens.

  • Parameter onTrade: The Action accepting trades. This function will be invoked when a 'trade' has been received. The trade will be passed as an argument to the callback.
  • Parameter onQuote: Optional. The Action accepting quotes. This function will be invoked when a 'quote' has been received. The quote will be passed as an argument to the callback. If 'onQuote' is not provided, the client will NOT request to receive quote updates from the server.

client.Join(symbols, tradesOnly); - Joins the given channels. This can be called at any time. The client will automatically register joined channels and establish the proper subscriptions with the WebSocket connection. If no arguments are provided, this function joins channel(s) configured in config.json.

  • Parameter symbols - Optional. A string representing a single ticker symbol (e.g. "AAPL") or an array of ticker symbols (e.g. ["AAPL", "MSFT", "GOOG"]) to join. You can also use the special symbol, "lobby" to join the firehose channel and recieved updates for all ticker symbols. You must have a valid "firehose" subscription.
  • Parameter tradesOnly - Optional (default: false). A boolean value indicating whether the server should return trade data only (as opposed to trade and quote data).
client.Join(["AAPL", "MSFT", "GOOG"])
client.Join("GE", true)
client.Join("lobby") //must have a valid 'firehose' subscription

client.Leave(symbols) - Leaves the given channels.

  • Parameter symbols - Optional (default = all channels). A string representing a single ticker symbol (e.g. "AAPL") or an array of ticker symbols (e.g. ["AAPL", "MSFT", "GOOG"]) to leave. If not provided, all subscribed channels will be unsubscribed.
client.Leave(["AAPL", "MSFT", "GOOG"])
client.Leave("GE")
client.Leave("lobby")
client.Leave()

client.Stop() - Closes the WebSocket, stops the self-healing and heartbeat intervals. Call this to properly dispose of the client.

Configuration

config.json

{
	"Config": {
		"ApiKey": "", //Your Intrinio API key.
		"NumThreads": 2, //The number of threads to use for processing events.
		"Provider": "REALTIME",
		"Symbols": [ "AAPL", "MSFT", "GOOG" ], //This is a list of individual tickers to subscribe to, or "lobby" to subscribe to all at once (firehose).
		"TradesOnly": true //This indicates whether you only want trade events (true) or you want trade, ask, and bid events (false).
	},
	"Serilog": {
		"Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],
		"MinimumLevel": {
			"Default": "Information",
			"Override": {
				"Microsoft": "Warning",
				"System": "Warning"
			}
		},
		"WriteTo": [
			{ "Name": "Console" }
		]
	}
}
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
9.2.0 95 3/14/2024
9.1.1 102 3/9/2024
9.1.0 89 3/9/2024
9.0.0 102 2/20/2024
8.3.2 209 10/30/2023
8.3.1 114 10/30/2023
8.3.0 118 10/30/2023
8.2.0 88 10/27/2023
8.1.2 99 10/16/2023
8.1.1 178 8/16/2023
8.0.1 142 7/23/2023
8.0.0 150 7/14/2023
7.0.0 125 5/25/2023
7.0.0-beta 174 5/9/2023
7.0.0-alpha 96 5/9/2023
6.2.1 151 4/20/2023
6.1.1 194 4/17/2023
6.0.1 214 3/10/2023
5.0.0 216 3/5/2023
4.3.1 230 3/4/2023
4.2.0 215 3/2/2023
4.1.1 267 1/25/2023
4.1.0 259 1/24/2023
4.0.0 447 4/25/2022
3.0.0 461 10/22/2021
2.2.0-rc 682 2/13/2019
2.1.0-rc 626 11/30/2018
2.0.0-rc 832 10/18/2017
1.0.0-rc 872 9/21/2017

Version 4.0.0 release.