Skip to main content

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 Key
Instrument Types
EQUITYFUTUREOPTIONFX
Technology
Custom API
Feed Mode
Real-TimeHistoricalHybrid
Message Types
Level 1
Level 2
Level 3
Trades
Funding Rates
Custom Message Types
IQFeed BBO
IQFeed Historical Daily Bar
IQFeed Historical Intraday Bar
IQFeed Trade

Configuration

The connector behaviour depends on the Aggregator process type and the message types selected in the output model:

Process typeSupported data
LiveReal-time Level 1 (BBO) and trades via Main Port (5009)
BatchHistorical ticks, intraday bars (Bar Size), or daily bars via History Port (9100)
HybridReal-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

ParameterDefault ValueDescription
IQFeed LoginN/AIQFeed account login ID.
IQFeed PasswordN/AIQFeed account password.
Bar Size1ITime 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: 1S3600S, 1I60I, or 1H. Valid daily value: 1D.

Default value is "1 Minute".
Rate Limit For Historical Requests50Rate 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 MessagestrueSelect 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 FileC:\Program Files\DTN\IQFeed\IQConnect.exeA path to the IQ Connect executable file (IQConnect.exe).

Default value is "C:\Program Files\DTN\IQFeed\IQConnect.exe".
Main Port5009Main 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 Port9100History 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 Port9300Admin 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 OptionsfalseShow/hide advanced options.
Override Timestamps With Original TimestampsfalseThis 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 Currencies1Predefined 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" TradesfalseThis 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:
  • C - Last Qualified trade
  • E - Extended trade (Form T trade)
  • O - Other trade (any trade not covered by "C" or "E")

Default value for this option is false.
Filter Out "Other" TradesfalseThis 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:
  • C - Last Qualified trade
  • E - Extended trade (Form T trade)
  • O - Other trade (any trade not covered by "C" or "E")

Default value for this option is false.
Response Timeout60Response timeout (in seconds).

Default value is 60 seconds.
Historical Connection Timeout60Historical connection timeout (in seconds).

Default value is 60 seconds.
Long Waiting For A ResponsetrueEnables 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 ModefalseSelect 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.

FieldTypeDescription
(inherits standard BBO fields)bid/ask price, size, exchange IDs
Message TypestringUPDATE indicates an Update message; SUMMARY indicates a Summary message.
Symbol IDstringThe Symbol ID to match with watch request.
SpreadDecimal64The difference between Bid and Ask prices.
Bid ChangeDecimal64Change in Bid since last offer.
Ask ChangeDecimal64Change in Ask since last offer.

IQFeedTradeMessage

Extends TradeMessage with extended trade and summary statistics from IQFeed.

FieldTypeDescription
(inherits standard trade fields)price, size, exchange ID, condition
Message TypestringUPDATE indicates an Update message; SUMMARY indicates a Summary message.
Symbol IDstringThe Symbol ID to match with watch request.
Trade TypeenumLAST_QUALIFIED (IQFeed C), EXTENDED (Form T, E), OTHER (O), or SETTLEMENT (S).
LastDecimal64Last trade price from the regular trading session.
ChangeDecimal64Today's change (Last − Close).
Percent ChangefloatChange / Close.
OpenDecimal64The opening price of the day.
Change From OpenDecimal64Change in last since open.
HighDecimal64Today's highest trade price.
LowDecimal64Today's lowest trade price.
RangeDecimal64Trading range for the current day (High − Low).
Number Of Trades TodayintThe number of trades for the current day.
Total VolumelongCumulative volume in number of shares.
Previous Day VolumeintPrevious day's volume.
Percent Off Average VolumefloatCurrent Total Volume divided by average daily volume (4 week average).
VolatilityfloatReal-time calculated volatility (Today's High − Today's Low) / Last.
Price-Earnings RatiofloatReal-time calculated PE (Today's Last / Earnings Per Share).
VWAPDecimal64Volume 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.

FieldTypeDescription
(inherits standard bar fields)OHLCV, timestamp
Total VolumelongCumulative volume in number of shares.

IQFeedHistoricalDailyBarMessage

Extends BarMessage with open interest. Used in Historical Mode when daily bars are requested.

FieldTypeDescription
(inherits standard bar fields)OHLCV, timestamp
Open InterestintOpen 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.

PropertyTypeDefaultDescription
DC.IQFeedLegacy.useMillisecondTimestampEncodingbooleanfalseWhen true, timestamps use millisecond encoding instead of the default nanosecond encoding.

Symbology

Subscribe using native DTN IQFeed symbols.

Supported symbol notations:

Symbol NotationExamples
Equities: TICKERAAPL
MSFT
IBM
Futures: [ROOT][MONTH][YY] or @[ROOT][MONTH][YY]EBJ17
@ESU14
Options: underlying + expiration + put/call month code + strikeBAC1422B15
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>