Skip to content

IQFeed.CSharpApiClient is fastest and the most well-designed C# DTN IQFeed socket API connector available

License

Notifications You must be signed in to change notification settings

mathpaquette/IQFeed.CSharpApiClient

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IQFeed CSharp Api Client

Join slack

IQFeed.CSharpApiClient is fastest and the most well designed C# DTN IQFeed socket API connector available to the open source community! Currently supporting the latest stable IQFeed protocol version 6.2.

IQFeed is an affordable and reputable Internet market data provider. For more info.
SPECIAL OFFER (Save $50 - No Startup Fee) Get Free Trial Now

If you appreciate this project, please star ⭐ it now!

Features

  • Designed completely non-blocking from bottom-up with nice async/await interfaces
  • Streaming events are distributed in a consistent way using Action delegates
  • Handle multiple socket connections for at least 50% performance increase when requesting lookup data
  • Sockets are using SocketAsyncEventArgs for maximum performance and trying to reduce pressure on GC
  • Support for .NET Core
  • No 3rd party dependency
  • Python support 🆕

Usage

Compatibility

IQFeed.CSharpApiClient does support only one real-time protocol at the time but remains backward compatible with historical data.

IQFeed.CSharpApiClient IQFeed Protocol
v2.8.x 6.2
v2.7.x 6.1
v2.6.x 6.0

Packages

MyGet Pre-release feed: https://www.myget.org/gallery/iqfeedcsharpapiclient

Package NuGet Stable MyGet Pre-release Downloads
IQFeed.CSharpApiClient IQFeed.CSharpApiClient IQFeed.CSharpApiClient IQFeed.CSharpApiClient
IQFeed.CSharpApiClient.Extensions IQFeed.CSharpApiClient.Extensions IQFeed.CSharpApiClient.Extensions IQFeed.CSharpApiClient.Extensions

Installation

Install-Package IQFeed.CSharpApiClient

Configuration

Now, you need to set your API credentials and product id somewhere. You have 2 options, in your user environment variables or app.config.

User environment variables

  • Run rundll32 sysdm.cpl,EditEnvironmentVariables to open the Environment Variables
  • In your User variables, create 4 new ones:
    • IQCONNECT_LOGIN
    • IQCONNECT_PASSWORD
    • IQCONNECT_PRODUCT_ID
    • IQCONNECT_PRODUCT_VERSION (not mandatory, will fallback to 1.0.0.0)

app.config

In your appSettings section, assign values to these key:

<appSettings>
     <add key="IQConnect:login" value=""/>
     <add key="IQConnect:password" value=""/>
     <add key="IQConnect:product_id" value=""/>
     <add key="IQConnect:product_version" value=""/>
</appSettings>

Examples

Check IQFeed.CSharpApiClient.Examples for more examples.

IQFeedLauncher.Start();
var lookupClient = LookupClientFactory.CreateNew();
lookupClient.Connect();
var tickMessages = await lookupClient.Historical.GetHistoryTickDatapointsAsync("AAPL", 100);

IQFeed API support status

Streaming data

  • Level 1 data
  • Level 2 data
  • Derivative data
  • Admin data

Lookup data

  • Historical data
  • News data
  • Symbol Lookup data
  • Chains Lookup data
  • Market Summary Data

Support

For support request, you can create an issue on GitHub or join our Slack community.

Sponsors

DTN IQFeed

JetBrains

Contributing

Pull requests are welcome! Don't hesitate to open an issue if something goes wrong.