
IQFeed (Legacy) Market Data Connector
DTN IQFeed Legacy Data Connector based on IQFeed Protocol v5.1. Requires the IQFeed Client (IQConnect.exe) on Windows; the connector launches it automatically if it is not already running.
For the current IQFeed connector (Protocol v6.0), see IQFeed Market Data Connector.
Features
iqfeed_legacyConnector KeyConfiguration
The connector behaviour depends on the Aggregator process type and the message types selected in the output model:
| Process type | Supported data |
|---|---|
| Live | Real-time Level 1 (BBO) and trades via Main Port (5009) |
| Batch | Historical ticks, intraday bars (Bar Size), or daily bars via History Port (9100) |
| Hybrid | Real-time streaming with backfill; Override Timestamps With Original Timestamps helps avoid missed or duplicated messages during recovery after an unexpected disconnect |
The historical data type (ticks vs intraday bars vs daily bars) is determined by the message types in the output model, not by a separate connector mode parameter.
Data Connector Parameters
| Parameter | Default Value | Description |
|---|---|---|
| IQFeed Login | N/A | IQFeed account login ID. |
| IQFeed Password | N/A | IQFeed account password. |
| Bar Size | 1I | Time interval of the bar. Sets the length of each time bar. The interval size of the intraday bars can be set to as low as one second and to as high as one hour (60 minutes). The interval size of the daily bars can be set to one day. Valid intraday values: 1S–3600S, 1I–60I, or 1H. Valid daily value: 1D.Default value is "1 Minute". |
| Rate Limit For Historical Requests | 50 | Rate limit for historical data requests (number of requests per second). Currently IQFeed has a rate limit for historical data requests - 50 requests per second. In certain configurations Aggregator process can be configured in a way, when it will use several historical threads to get data. In these configurations rate limit for each historical thread should be set properly, the total amount of historical data requests per second should not exceed global IQFeed limit. Rate Limit For Historical Requests = Math.Floor(50 / Number Of Historical Threads) Default value is 50 requests per second. |
| Skip Out Of Order Messages | true | Select this option if you want to skip messages with a timestamp which is older than the latest preceding message timestamp by more than allowed queue depth. If this option is selected, such messages will be skipped with an appropriate notification. Otherwise, the process will be halted in case of getting such invalid data message. Default value for this option is true. |
| IQ Connect Executable File | C:\Program Files\DTN\IQFeed\IQConnect.exe | A path to the IQ Connect executable file (IQConnect.exe). Default value is "C:\Program Files\DTN\IQFeed\IQConnect.exe". |
| Main Port | 5009 | Main port number for connecting to IQ Connect. Change this value only if you have changed it in the Windows Registry when installing IQFeed Client. Default value is "5009". |
| History Port | 9100 | History port number for connecting to IQ Connect. Change this value only if you have changed it in the Windows Registry when installing IQFeed Client. Default value is "9100". |
| Admin Port | 9300 | Admin port number for getting current status of the feed and client connection statistics from IQ Connect. Change this value only if you have changed it in the Windows Registry when installing IQFeed Client. Default value is "9300". |
| Show Advanced Options | false | Show/hide advanced options. |
| Override Timestamps With Original Timestamps | false | This option allows to override timestamps of data messages using original timestamps of these messages in Real-time Mode. This feature can be useful in certain configurations. Also, it can help to avoid missed or duplicated data messages when using Hybrid Mode, at the moment of data recovery after unexpected disconnect. Default value for this option is false. |
| Predefined Bid/Ask Size For Currencies | 1 | Predefined value for bid/ask size in case, when bid/ask price exists, but bid/ask size is not available. This value can be applied to currencies only (Instrument Type is FX). Default value is "1". |
| Filter Out "Extended" Trades | false | This option allows you to filter out "Extended" trades. Trades of this type will not be recorded in TimeBase. Currently, the following types of trades can be received from IQFeed:
Default value for this option is false. |
| Filter Out "Other" Trades | false | This option allows you to filter out "Other" trades. Trades of this type will not be recorded in TimeBase. Currently, the following types of trades can be received from IQFeed:
Default value for this option is false. |
| Response Timeout | 60 | Response timeout (in seconds). Default value is 60 seconds. |
| Historical Connection Timeout | 60 | Historical connection timeout (in seconds). Default value is 60 seconds. |
| Long Waiting For A Response | true | Enables long waiting for a response from the server in the Historical Mode. In certain configurations, when the historical request has been sent, waiting time of the first response from the server may exceed specified Historical Connection Timeout. This option allows to turn on long waiting for a response (applies to the first response only). Default value for this option is true. |
| Ignore Errors In Historical Mode | false | Select this option if you want to ignore errors, which could happen during getting historical data from IQFeed in Historical Mode. If this option is selected, any errors which could happen during getting historical data from IQFeed for a specific symbol will be ignored. If it happens, the symbol will be skipped with an appropriate notification. The process of getting data for other symbols will not be halted. Note that if this option is turned on, the process can be completed successfully even if in fact historical data for all symbols were not downloaded at all or were downloaded with errors. Default value for this option is false. |
Message Types
In addition to the classic TimeBase market-data message types (BestBidOfferMessage, TradeMessage, BarMessage), the connector defines vendor-extended message types (IQFeedBBOMessage, IQFeedTradeMessage, IQFeedHistoricalIntradayBarMessage, IQFeedHistoricalDailyBarMessage).
IQFeedBBOMessage
Extends BestBidOfferMessage with IQFeed UPDATE/SUMMARY metadata from the Level 1 feed.
| Field | Type | Description |
|---|---|---|
| (inherits standard BBO fields) | bid/ask price, size, exchange IDs | |
| Message Type | string | UPDATE indicates an Update message; SUMMARY indicates a Summary message. |
| Symbol ID | string | The Symbol ID to match with watch request. |
| Spread | Decimal64 | The difference between Bid and Ask prices. |
| Bid Change | Decimal64 | Change in Bid since last offer. |
| Ask Change | Decimal64 | Change in Ask since last offer. |
IQFeedTradeMessage
Extends TradeMessage with extended trade and summary statistics from IQFeed.
| Field | Type | Description |
|---|---|---|
| (inherits standard trade fields) | price, size, exchange ID, condition | |
| Message Type | string | UPDATE indicates an Update message; SUMMARY indicates a Summary message. |
| Symbol ID | string | The Symbol ID to match with watch request. |
| Trade Type | enum | LAST_QUALIFIED (IQFeed C), EXTENDED (Form T, E), OTHER (O), or SETTLEMENT (S). |
| Last | Decimal64 | Last trade price from the regular trading session. |
| Change | Decimal64 | Today's change (Last − Close). |
| Percent Change | float | Change / Close. |
| Open | Decimal64 | The opening price of the day. |
| Change From Open | Decimal64 | Change in last since open. |
| High | Decimal64 | Today's highest trade price. |
| Low | Decimal64 | Today's lowest trade price. |
| Range | Decimal64 | Trading range for the current day (High − Low). |
| Number Of Trades Today | int | The number of trades for the current day. |
| Total Volume | long | Cumulative volume in number of shares. |
| Previous Day Volume | int | Previous day's volume. |
| Percent Off Average Volume | float | Current Total Volume divided by average daily volume (4 week average). |
| Volatility | float | Real-time calculated volatility (Today's High − Today's Low) / Last. |
| Price-Earnings Ratio | float | Real-time calculated PE (Today's Last / Earnings Per Share). |
| VWAP | Decimal64 | Volume Weighted Average Price. |
IQFeedHistoricalIntradayBarMessage
Extends BarMessage with an additional volume field. Used in Historical Mode when intraday bars are requested; bar interval is controlled by Bar Size.
| Field | Type | Description |
|---|---|---|
| (inherits standard bar fields) | OHLCV, timestamp | |
| Total Volume | long | Cumulative volume in number of shares. |
IQFeedHistoricalDailyBarMessage
Extends BarMessage with open interest. Used in Historical Mode when daily bars are requested.
| Field | Type | Description |
|---|---|---|
| (inherits standard bar fields) | OHLCV, timestamp | |
| Open Interest | int | Open interest. |
Advanced Options
These parameters are not exposed in the connector UI. They are passed as Java system properties (-D<name>=<value>) to the QuantServer process. Do not change these values unless you clearly understand what they do.
| Property | Type | Default | Description |
|---|---|---|---|
DC.IQFeedLegacy.useMillisecondTimestampEncoding | boolean | false | When true, timestamps use millisecond encoding instead of the default nanosecond encoding. |
Symbology
Subscribe using native DTN IQFeed symbols.
Supported symbol notations:
| Symbol Notation | Examples |
|---|---|
| Equities: TICKER | AAPL MSFT IBM |
| Futures: [ROOT][MONTH][YY] or @[ROOT][MONTH][YY] | EBJ17 @ESU14 |
| Options: underlying + expiration + put/call month code + strike | BAC1422B15 BAC1422B17 |
| FX: PAIR.PROVIDER (upper case) | EURUSD.FXCM USDJPY.FXCM |
Full symbol formats: DTN IQFeed Symbol Guide.
Logging
To enable detailed logging, use these lines in the <QSHOME>/config/gflog.xml file:
<logger name="deltix.qsrv.hf.plugins.data.iqfeed_legacy" level="TRACE">
<appender-ref ref="safeAppender"/>
</logger>
