Join the 80,000 other DTN customers who enjoy the fastest, most reliable data available. There is no better value than DTN!

(Move your cursor to this area to pause scrolling)




"I used to have *******, but they are way more money for the same thing. I have had no probs with data from DTN since switching over." - Comment from Public Forum Post
"If someone needs the best quality data and backfill beyond what their broker provides at a rate that is the best in the industry, I highly recommend IQFeed." - Comment from Josh via Public Forum
"Thanks for following up with me. You guys do a great job in tech support." - Comment from Phelps
"I'm satisfied with IQFeed. It's the most reliable and fastest quote feed I have ever used. Although I'm a resident in China, it's still very fast!" - Comment from Xiaofei
"You are either overstaffed or people just don't have problems with your feed because customer support always answers the phone quickly." - Comment from Jay via Email
"Very impressed with the quality of your feed - ******* is a real donkey in comparison." - Comment from A.C. via Email
"My broker in Davenport suggested I give you a try as he uses your service and says its the best." - Comment from Bill via RT Chat
"There is no doubt that IQFeed is the best data provider. I am very satisfied with your services. And IQFeed is the only one that I would recommend to my friends. Now, most of them are using your product in China." - Comment from Zhezhe
"You have an excellent feed. Very few spikes for Spot Forex." - Comment from Public Forum Post
"If you are serious about your trading I would not rely on IB data for serious daytrading. Took me a while to justify the cost of IQ Feed and in the end, it's just a 2 point stop on ES. Better safe than sorry" - Comment from Public Forum
Home  Search  Register  Login  Blogs Recent Posts

Information on DTN's Industries:
DTN Oil & Gas | DTN Trading | DTN Agriculture | DTN Weather
Follow DTNMarkets on Twitter
DTN.IQ/IQFeed on Twitter
DTN News and Analysis on Twitter
Viewing User Profile for: altmany
About Contact
Joined: Jul 30, 2018 05:38 AM
Last Post: Apr 10, 2019 05:11 PM
Last Visit: Apr 15, 2019 02:17 PM
Website: https://UndocumentedMatlab.com/IQML
Location:
Occupation: Consultant
Interests: Matlab, finance, trading
Avatar:
IQML - IQFeed-MATLAB connector
Email: altmany@gmail.com
AIM:
ICQ:
MSN IM:
Yahoo IM:
Post Statistics
altmany has contributed to 24 posts out of 19044 total posts (0.13%) in 264 days (0.09 posts per day).

20 Most recent posts:

Today I spent a few frustrating hours trying to debug a problem when connecting to the Lookup port (for historic data) on a specific machine. For the benefit of others who may encounter a similar problem and search this forum, here's a breakdown of the problem, causes, analysis and solution:

TL/DR: When any other application on the computer uses one of IQFeed's ports, it cannot be used in IQFeed. Solution: either remove the other application, or change IQFeed's default port assignment to some unused port.

Symptoms:
  • Historic data failed to download, displaying errors about invalid data arriving on the Lookup port.
  • The IQConnect.txt file did not display any connection message to the Lookup port (only to other ports).
  • The Diagnostic utility was unable to listen to the Lookup port in the <Port Tester> tab, displaying an error message that "The specified address is already in use."


Diagnosis:
Open DOS Command Window (run as administrator) and run the following command:
netstat -abon

This will display all the active ports and the processes that hold them. For example, in my particular case the relevant line was this:
[lghub_agent.exe]
TCP 127.0.0.1:9100 0.0.0.0:0 LISTENING 2312

This tells us that the culprit is the lghub_agent.exe process (part of Logitec's G-Hub application), process ID=2312

Solutions:
  • Uninstall or disable the problematic other application
  • Configure the other application to use a different port (this is often not possible, but sometimes is)
  • Modify IQFeed's default port to use a different port number that is unused. For example, in the case of the Lookup port, the port number is stored in the registry key
    \\HKEY_CURRENT_USER\Software\DTN\IQFeed\Startup\LookupPort
    which you can modify using the Windows builtin regedit utility.


I hope this helps someone...



Yair Altman
IQML - IQFeed-MATLAB connector
https://UndocumentedMatlab.com/IQML

I am not a DTN employee; my post reflects my personal opinion

Edited by altmany on Apr 10, 2019 at 05:12 PM

IQFeed Developer Support » Developer wanted to build API Apr 4, 2019 09:51 AM (Total replies: 5)

I can do all this in Matlab, using the IQML (IQFeed-Matlab) connector.
I have experience with everything you listed.
If you have Matlab then you'd be able to use/adapt/maintain the code by yourself.
If you don't have Matlab, the program could be compiled as a standalone executable.

Contact me to discuss further, if you're interested.

Yair Altman
IQML - IQFeed-MATLAB connector
https://UndocumentedMatlab.com/IQML

I am not a DTN employee; my post reflects my personal opinion


Data and Content Support » How can I get/use splits info Mar 27, 2019 02:33 PM (Total replies: 2)

Here is an actual example for MSFT (1:2 split on 03/29/1999 and 02/18/2003) - this is reported as part of the fundamental message for a symbol ("F" message):

Split Factor 1: "0.50 02/18/2003"
Split Factor 2: "0.50 03/29/1999"


This correlates with the latest 2 splits for Microsoft, as reported on https://www.stocksplithistory.com/microsoft/

If there is only a single split in recorded history, Split Factor 2 will be empty.
If there is no split history, both strings will be empty.

Note that for some reason IQFeed reports the split rounded only to 2 digits after the decimal. For example, the GOOGL split on 4/3/2014 (https://www.stocksplithistory.com/google/) was 1:1.998 but this is reported as "0.50" (instead of the more accurate 0.5005) by IQFeed:

Split Factor 1: "0.50 04/03/2014"
Split Factor 2: ""


In other words, the split factor is not a full-accuracy float but a float rounded to 2 decimal places. Hopefully IQFeed will improve this in a future release.

In some cases, splits may be missing or different between different data providers. For example, IQFeed reports only a single split for GOOG (1.00 on 04/27/2015) whereas https://www.stocksplithistory.com/?symbol=GOOG reports a 1:1.0027455 split on that date as well as a 1:2.002 split on 03/27/2014. This appears to be due to faulty data somewhere.



Yair Altman
IQML - IQFeed-MATLAB connector
https://UndocumentedMatlab.com/IQML

I am not a DTN employee; my post reflects my personal opinion

Edited by altmany on Mar 27, 2019 at 02:45 PM


Stephen - I believe that you've recently changed your Twitter handle from @DTN_IQFeed to @DTNMarkets, the direct link now being https://twitter.com/DTNMarkets

(the @DTN_IQFeed handle/link no longer works)

Yair Altman
IQML - IQFeed-MATLAB connector
https://UndocumentedMatlab.com/IQML

I am not a DTN employee; my post reflects my personal opinion


DTN.IQ Client Software Support » "Invalid interval reference time" Mar 17, 2019 02:41 PM (Total replies: 5)

I am also seeing these errors on-and-off. It seems that if I enter a valid trading start date then it resumes working and gets out of the loop that constantly throws the "Invalid interval reference time" error. For example:

Original request - error:
=> 20190317 21:34:49.028 (Lookup) HIT,@KCK19,60,20190315 000001,20190317 235959,1,,,1,H-@KCK19,,s
<= 20190317 21:34:49.427 (Lookup) H-@KCK19,E,Invalid interval reference time.

Modified request - good data:
=> 20190317 21:34:57.536 (Lookup) HIT,@KCK19,60,20190312 000001,20190317 235959,1,,,1,H-@KCK19,,s
<= 20190317 21:34:57.942 (Lookup) H-@KCK19,2019-03-15 13:30:00,97.65,97.50,97.65,97.60,13763,56,0

Original request again - good data:
=> 20190317 21:35:02.040 (Lookup) HIT,@KCK19,60,20190315 000001,20190317 235959,1,,,1,H-@KCK19,,s
<= 20190317 21:35:02.443 (Lookup) H-@KCK19,2019-03-15 13:30:00,97.65,97.50,97.65,97.60,13763,56,0


Yair Altman
IQML - IQFeed-Matlab connector
https://UndocumentedMatlab.com/IQML
I am not a DTN employee; my post reflects my personal opinion

Edited by altmany on Mar 18, 2019 at 04:55 AM


Stephen - w, HID, HTD and BW for TST$Y result in n,TST$Y (i.e. Symbol not found).
Only the HDX/HWX/HMX historic queries seem to work ok.
Please check...

Note: I am not a DTN employee; my post reflects my personal opinion and not necessarily DTN's

- Yair
IQML - IQFeed-Matlab connector
https://UndocumentedMatlab.com/IQML


IQFeed Developer Support » NHL News Headlines Request Mar 12, 2019 03:15 PM (Total replies: 5)

PyDev - I think that you may be misunderstanding the purpose of the NCG request and its relation to NHL, and that this causes your confusion.

In fact, NCG is entirely unrelated to NHL - NCG is simply a request for IQFeed to send you your account's news-sources configuration, in either text or XML format. NCG does not modify anything for subsequent NHL queries, nor does it update anything in your account's news configuration, which does not change during the run-time of your program. The text/XML field in the NCG query only affects the response message for this query and not for any other subsequent query. Also, NCG does not start streaming any news headlines.

In contrast, NHL is a query to retrieve news headlines, in either text or XML formats. It is entirely unrelated to NCG, except for the fact that the 3-letter news source is described in the NCG response message (for example, CPR = PR Newswire). You can ask the NHL query responses in either text or XML format, but this is separate from the format that you asked in the NCG query.

Your program should query NCG just once, at the beginning of your program run, and then call NHL multiple times later. There is no point in calling NCG more than once in the program since the config information does not change.

Note: I am not a DTN employee; my post reflects my personal opinion and not necessarily DTN's

- Yair
IQML - IQFeed-Matlab connector
https://UndocumentedMatlab.com/IQML



Fantastic - thanks!

Does the test stream work only with Level1 watches (w/t) or also with streaming Level2 / derivatives/ regionals?



Note: I am not a DTN employee; my post reflects my personal opinion and not necessarily DTN's

- Yair
IQML - IQFeed-Matlab connector
https://UndocumentedMatlab.com/IQML

Edited by altmany on Mar 12, 2019 at 02:15 PM


bump - any news on this enhancement request?
This would greatly assist algo-trading program developments

Note: I am not a DTN employee; my post reflects my personal opinion and not necessarily DTN's

- Yair
IQML - IQFeed-Matlab connector
https://UndocumentedMatlab.com/IQML



For completeness, in case anyone else has a similar problem, you can start IQConnect asynchronously by appending '&' at the end of the command:

IQConnect.exe ... -autoconnect &

Note that this is not specific to Matlab - It is an OS issue that may be relevant for anyone who launches IQConnect programmatically, using any programming language. Some programming languages also have alternative mechanisms for starting an external process asynchronously, without requiring an extra '&', but sending a system command with & should work across the board.

Note: I am not a DTN employee; my post reflects my personal opinion and not necessarily DTN's

- Yair
IQML - IQFeed-Matlab connector
https://UndocumentedMatlab.com/IQML


IQFeed 3rd Party Software Support » News items with matlab Mar 12, 2019 06:37 AM (Total replies: 2)

In case anyone else has the same issue: I believe that the news configuration information is not available via Matlab's Trading Toolbox.

If you are using the IQML (IQFeed-Matlab) connector instead of Trading Toolbox, you can query the news configuration as follows:
Quote:
>> data = IQML('news', 'DataType','config')
data =
Category: 'All News'
Majors: [1×7 struct]

>> {data.Majors.Source}
ans =
1×7 cell array
{'DTN'} {'CPR'} {'CBW'} {'RTT'} {'CPZ'} {'CIW'} {'BEN'}

>> {data.Majors.Description}
ans =
1×7 cell array
{'DTN News'} {'PR Newswire'} {'Business Wire'} {'Real-Time Trader'} {'GlobeNewswire Inc'} {'Marketwire'} {'Benzinga Pro'}

You can also drill-down for details about news sources:
Quote:
>> data.Majors(1)
ans =
Source: 'DTN'
Description: 'DTN News'
AuthenticationCode: '1D'
IconID: 10
Minors: [1×4 struct]

>> data.Majors(1).Minors(1)
ans =
Source: 'DT5'
Description: 'Treasuries, Most Actives, Gainers, Losers'
AuthenticationCode: '1D'

>> data.Majors(1).Minors(2)
ans =
Source: 'RTL'
Description: 'Derivatives - Selected Futures and Options'
AuthenticationCode: '2Ab'
IconID: 10


Note: I am not a DTN employee; my post reflects my personal opinion and not necessarily DTN's

- Yair
IQML - IQFeed-Matlab connector
https://UndocumentedMatlab.com/IQML


IQFeed Developer Support » matlab examples apps Mar 12, 2019 06:21 AM (Total replies: 3)

Several Matlab apps that connect to IQFeed via the IQML connector are listed in its User Guide: https://UndocumentedMatlab.com/files/IQML/IQML_User_Guide.pdf

Note: I am not a DTN employee; my post reflects my personal opinion and not necessarily DTN's

- Yair
IQML - IQFeed-Matlab connector
https://UndocumentedMatlab.com/IQML


IQFeed 3rd Party Software Support » MATLAB R2013b connection problem Mar 12, 2019 06:01 AM (Total replies: 3)

In case anyone stumbles on a similar error, I believe that it was caused because the Matlab iqf function (part of the Trading Toolbox) expects the username and password in string format, i.e. iqf('1234','9876') and not iqf(1234,9876).

Instead of using the Trading Toolbox to connect Matlab to IQFeed, consider using the IQML connector. IQML was optimized for run-time performance (speed), ease-of-use, and reliability. It comes with extensive documentation, and supports the entire IQFeed API. IQML works with the core Matlab; no toolbox is required. It works on all Matlab releases since R2008a, on both Windows and Mac, using IQFeed 5.0 or newer. IQML was developed independently as a commercial 3rd-party product; it is not affiliated with MathWorks or DTN. The connector is actively maintained and supported.

Main features:
  • both blocking (snapshot) and non-blocking (streaming) data queries
  • parallelized requests for super-fast data query responses
  • live Level 1 top-of-book market data (quotes and trades)
  • live Level 2 market-depth data
  • historical and intraday market data (individual ticks or interval bars)
  • fundamental info on assets
  • options and futures chains lookup (with market data, Greeks)
  • symbols and market codes lookup
  • news headlines, story-counts, and complete news stories, with user-specified filters
  • user-defined Matlab callback functions to IQFeed messages and market triggers
  • user-defined alerts on streaming market events (news/quotes/interval-bar/regional triggers)
  • connection stats (continuous update)
  • programmatic connect/disconnect

https://UndocumentedMatlab.com/IQML

Note: I am not a DTN employee; my post reflects my personal opinion and not necessarily DTN's

- Yair
IQML - IQFeed-Matlab connector
https://UndocumentedMatlab.com/IQML



Q1) IQFeed has a very handy feature called "streaming derivative data", which means you can request a stream of 1-minute data bars. This provides you with both historic and ongoing (streaming data), avoiding the need to construct such bars by yourself. Details: http://www.iqfeed.net/dev/api/docs/Derivatives_Overview.cfm and http://www.iqfeed.net/dev/api/docs/Derivatives_StreamingIntervalBars_TCPIP.cfm

Q2) AFAIK, Level-2 (market-depth) data is only available as live streaming data, not historical.

Q3) You don't need to turn the IQFeed client off - simply disconnecting your program from the client will do this automatically - once the client sees that it has no active connections, it automatically exits. I'll let other answer the part of your question related to launching the client. BTW, I think this part of the question warrants a dedicated thread.

Note: I am not a DTN employee; my post reflects my personal opinion and not necessarily DTN's

- Yair
IQML - IQFeed-Matlab connector
https://UndocumentedMatlab.com/IQML


IQFeed Developer Support » Protocol 6.0 - Fieldnames Dec 1, 2018 10:37 AM (Total replies: 2)

<UPDATE FIELDNAMES> reports the full list of fieldnames that are potentially available from IQFeed in response to watch commands (currently about 65 fields).

<CURRENT UPDATE FIELDNAMES> reports those fields that IQFeed currently includes in your watch messages. By default this includes only 16 fields out of the ~65 total fields that are potentially available.

The process for selecting which data fields IQFeed includes in your watch messages is described here: http://www.iqfeed.net/dev/api/docs/DynamicFieldsets.cfm



Note: I am not a DTN employee; my post reflects my personal opinion and not necessarily DTN's

- Yair
IQML - IQFeed-Matlab connector
https://UndocumentedMatlab.com/IQML

Edited by altmany on Dec 1, 2018 at 10:38 AM
Edited by altmany on Dec 2, 2018 at 06:09 AM

IQFeed Developer Support » Timezone of timestamps Nov 19, 2018 04:05 AM (Total replies: 1)

The documentation says that IQFeed timestamps are always specified in "Eastern" timezone. Please clarify whether this means that for all timestamps (in both query parameters and returned data) the timezone is:
  • UTC-5
  • EST/EDT depending on daylight summer time in New York
  • Something else, depending on the exchange

The reason for this clarification request is a hunch that there might be a 1-hour discrepancy between the reported timestamp and the data contents of historic tick data (HTT) for @ES# ticks from Chicago (UTC-6 or EST-1). In other words, an HTT query for historic BeginDate/Time of H reports back data with a timestamp of H but data content that seems to match Chicago time H, not New York time H (or perhaps EDT instead of EST, or vice versa).

Naturally, there are 3 possibilities here:
  • That we are mistaken and the data content matches the reported time in New York
  • That it's simply a matter of clarifying the documentation
  • That there is an internal code/data problem somewhere

Please let us know...

Note: I am not a DTN employee; my post reflects my personal opinion and not necessarily DTN's

- Yair
IQML - IQFeed-Matlab connector
https://UndocumentedMatlab.com/IQML


IQFeed Developer Support » Streaming / Derivative data not working Oct 24, 2018 01:07 AM (Total replies: 5)

Steve - I believe that I got confused with the historic interval bars mechanism, i.e. apparently I used larger interval sizes only with historic bars, but smaller sizes with live bars. Since the documentation of historic and streaming bars was exactly the same, I naturally assumed that they use the same back-end processing mechanism, and so they got merged in my mind into a single mechanism.

I understand the limitation on a streaming daily bar, but I suggest that you remove the restrictions on smaller interval sizes, so that (for example) it would be possible to request streaming bars of 1.5, 3, 4 or 5 hours.

Separately, it would be very useful if you could improve the reported error message, which currently simply states "INVALID PARAMETERS FOR BW REQUEST". It is sometimes hard to understand which parameter caused a query rejection. It would be helpful to know which parameter is at fault ("Invalid parameter IntervalSize for BW request"), and even better to know the reason ("Invalid parameter IntervalSize for BW request: must be <300, or 300-3600 in multiples of 60, or 7200"). This suggestion applies to many other query types as well, which return a generic rejection error message.

Note: I am not a DTN employee; my post reflects my personal opinion and not necessarily DTN's

- Yair
IQML - IQFeed-Matlab connector
https://UndocumentedMatlab.com/IQML


IQFeed Developer Support » Streaming / Derivative data not working Oct 21, 2018 01:09 PM (Total replies: 5)

I see the same buggy behavior as you do. This query used to work well until recently. In fact, it was just a month ago that the documentation was modified to reflect that "Second interval values must be 1 or greater and less than 1 day (86400)".

Note: I am not a DTN employee; my post reflects my personal opinion and not necessarily DTN's

- Yair
IQML - IQFeed-Matlab connector
https://UndocumentedMatlab.com/IQML


IQFeed Developer Support » Questions regarding option chain requesting Aug 16, 2018 09:57 AM (Total replies: 6)

Thanks for updating the doc page with the updated response messages Tim.

Could you also please comment regarding the NearMonths issue? i.e. is the fact that in practice values higher than 4 (as high as 30 for SPX for example) work an unsupported feature that should not be relied on, or perhaps it only works in certain exchanges/secTypes/accounts, etc.?

Note: I am not a DTN employee; my post reflects my personal opinion and not necessarily DTN's

- Yair
IQML - IQFeed-Matlab connector
https://UndocumentedMatlab.com/IQML


Data and Content Support » Reduce internet Traffic Aug 12, 2018 03:46 AM (Total replies: 5)

@JBEN - try to use the Dynamic FieldSet (http://www.iqfeed.net/dev/api/docs/DynamicFieldsets.cfm) functionality

Note: I am not a DTN employee; my post reflects my personal opinion and not necessarily DTN's

- Yair
IQML - IQFeed-Matlab connector
https://UndocumentedMatlab.com/IQML



Time: Fri April 19, 2019 5:39 PM CFBB v1.2.0 15 ms.
© AderSoftware 2002-2003