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)




"The service is great, I see a noticeable improvement in my volume profiles over [broker]'s data feed" - Comment from Larry
"Excellent datafeed !!!" - Comment from Arely
"Awesome response, as usual. It is a sincere and refreshing pleasure to do business with DTN, compared to your competition." - Comment from Ryan
"I just wanted to tell you what a fine job you have been doing. While *******, from what I hear, has been down and out, off and on, IQ feed has held like a champ this week." - Comment from Shirin
"Thanks for following up with me. You guys do a great job in tech support." - Comment from Phelps
"This is an excellent value, the system is generous (allowing for 500 stocks) and stable (and really is tick-by-tick), and the support is fantastic." - Comment from Shirin via Email
"I just wanted to let you know how fast and easy I found it to integrate IQFeed into our existing Java code using your JNI client. In my experience, such things almost never go so smoothly - great job!" - Comment from Nate
"I am a hedge fund manager here. It’s funny, I have a Bloomberg terminal and a Bridge feed, but I still like having my DTN feed!" - Comment from Feras
"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
"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
Home  Search  Register  Login  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: DTN_Gary_Stephen
About Contact
Joined: Jul 3, 2019 11:09 AM
Last Post: Jul 9, 2020 04:21 PM
Last Visit: Today @ 09:50 AM
Website:  
Location:
Occupation:
Interests:
Avatar:
Email: gary.stephen@dtn.com
AIM:
ICQ:
MSN IM:
Yahoo IM:
Post Statistics
DTN_Gary_Stephen has contributed to 96 posts out of 19650 total posts (0.49%) in 377 days (0.25 posts per day).

20 Most recent posts:
IQFeed Developer Support » Historical Data Questions Jul 9, 2020 04:21 PM (Total replies: 2)

In the IQFeed API, daily history is adjusted for stock splits. Minute and tick history is not adjusted for stock splits. For other corporate actions, such as special one-time stock awards, it depends on how they are entered into the data. If they are treated as stock splits, the above applies.

The amount of historical data available varies greatly by symbol and exchange. As you note, tick data is only available for the past 180 days. In general, minute data is available back to about 2007-2008. In some cases, hourly, daily, or monthly data may be available for many years further back. There's no hard-and-fast rule on it; you can try to request any historical data, and the IQFeed API will return whatever is available.

Sincerely,
Gary Stephen
DTN IQFeed Implementation Support Specialist



Antoine,

The IQFeed API allows connections, including to multiple ports at once, at the same time. Are both your connections coming from the same computer? If your two connections are from two different machines, and using the same LoginID, the second connection will disconnect the first one. This is a limitation of the loginID.

If you're trying to make both connections from the same computer, can you tell me more about what happens when you are disconnected? You should be able to connect to both news and data ports as you describe.


Sincerely,
Gary Stephen
DTN IQFeed Implementation Support Specialist

Edited by DTN_Gary_Stephen on Jul 8, 2020 at 04:31 PM

IQFeed Developer Support » Level 2 returning "U" messages. Jul 8, 2020 04:10 PM (Total replies: 3)

Most likely you are not sending an S,SET PROTOCOL. Summary messages used to be specified as "U" instead of "Z" in the default protocol of 4.9, which is the default protocol.

Sincerely,
Gary Stephen
DTN IQFeed Implementation Support Specialist


IQFeed Developer Wish List » Open Streams by FIGI Code Jun 24, 2020 08:12 AM (Total replies: 5)

I apologize for the misreading. Apparently my caffeine REALLY hasn't kicked in. I'm not aware of any future plans to implement FIGI in this fashion.

Also, it occurs to me that such functionality could be built, using what's currently available. If you built a database of all the symbols and FIGIs, you could accept the FIGI as user input, cross-reference it to the symbol, and send the command to the IQFeed API using the symbol. The FIGIs can be collected using watches on the Level 1 port (watch symbol, collect FIGI from fundamental message, unwatch symbol). Alternatively, I am aware of a third-party API called OpenFIGI which you can use to retrieve FIGI for a given ticker symbol and exchange. There may be other similar options out there.

Sincerely,
Gary Stephen
DTN IQFeed Implementation Support Specialist


IQFeed Developer Wish List » Open Streams by FIGI Code Jun 24, 2020 07:03 AM (Total replies: 5)

Disregard my prior response; apparently my caffeine hasn't kicked in yet. FIGI is already implemented in IQFeed; it is part of the Fundamental Message in Protocol 6.1:

F,MSFT,5,33.3,35013000,203.9500,130.7800,203.9500,132.5200,1.0100,0.5100,2.0400,09/10/2020,08/19/2020,6.06,,0.14,06,MICROSOFT,MSFT,54.100,0.84,,175552.0,69420.0,03/31/2020,66662.0,7583440,0.50 02/18/2003,0.50 03/29/1999,14,4,7372,26.97,1,21,06/23/2020,08/05/2019,06/23/2020,03/23/2020,157.7000,,,,,511210,,,,,,USD,,,,,BBG000BPH459,,

You can retrieve it from that message whenever you follow a symbol. It is not in protocols earlier than 6.1, so you'd have to update if you're not already using it.

Sincerely,
Gary Stephen
DTN IQFeed Implementation Support Specialist



Thanks for the update! IQFeed is a native Windows program, and I can't offer a lot of advice on how to run it under Linux or any non-Windows OS. You might also look for any Wine errors or log messages at the times you're having these spikes; in some cases that can clue us in to what's causing it.

Sincerely,
Gary Stephen
DTN IQFeed Implementation Support Specialist


IQFeed Developer Wish List » Open Streams by FIGI Code Jun 24, 2020 06:44 AM (Total replies: 5)

There are no ongoing plans to implement FIGI that I'm aware of, but I can ask about it.

Edited by DTN_Gary_Stephen on Jun 24, 2020 at 07:01 AM

IQFeed Developer Support » Questions about api Jun 17, 2020 12:20 PM (Total replies: 3)

The maximum number of simultaneous history requests is tied to the loginID, not the connection. So having 10-15 multiple threads under the same loginID will not increase that limit.

Only tick-level historical requests will return Bid and Ask.

I can't really comment on end user download speeds, because that depends largely on how much data you're downloading, time of day, internet connection, and other factors. In general, best practices are to have different threads for retrieving data from the API, converting it to your desired form, and then acting on it. Having multiple connections to the IQFeed API can help also.

The timestamps in the data are exchange timestamps, so you can use those to determine your total transit time.

DTN has general sample code in C, C#, Java, and Visual Basic at iqfeed.net, and we are aware of several Python repositories around GitHub. But I'm not aware of any such code for that specific purpose.

Sincerely,
Gary Stephen
DTN IQFeed Implementation Support Specialist


IQFeed Developer Wish List » Binary Protocol Jun 17, 2020 10:37 AM (Total replies: 12)

Can you be more specific? The number of ASCII characters in an API response can vary a great deal, depending on the request.

Sincerely,
Gary Stephen
DTN IQFeed Implementation Support Specialist



If you decide you would like us to review it, you can get in touch with me via any of the support channels. Ask to speak to Gary (me), and I'll handle everything from there.

Sincerely,
Gary Stephen
DTN IQFeed Implementation Support Specialist


IQFeed Developer Support » Questions about api Jun 17, 2020 08:57 AM (Total replies: 3)

Answers to your questions:

Online documentation of the IQFeed API can be read at http://www.iqfeed.net/dev/index.cfm?login=login. You will need to login with your website username and password, which you received when you subscribed to the API product. If you don't know it, that URL has a "send me my password" link. You just need to enter your email address. If you still can't retrieve it, contact IQFeed support.

The most basic way to build historical bars is a history command, as per https://www.iqfeed.net/dev/api/docs//HistoricalviaTCPIP.cfm. What you probably want is an HIT command. This allows you to specify a symbol, interval, start/end date/time, and get a list of all intervals in that range. This will return Timestamp,High,Low,Open,Close,Volume,Period Volume.

If you want to collect historical bars and gather new bars as they come in, the BW command works similarly.

Yes, tick data generally goes back 180 days. Minute and daily data goes back further.

There is no limit to concurrent connections, provided they all come from the same computer. To have concurrent connections from different machines would require multiple IQFeed login IDs.

There can be 15 history requests active at one time. "Active" means the request has been sent and the data has not been completely returned yet. If you are requesting large amounts of history for a large number of symbols, you might have to space your requests out a little. But most requests process so quickly this isn't an obstacle.

If you are doing any kind of live "watching" of a symbol, you may only watch up to 500 symbols at a time, unless you pay an additional fee to view more.

There are no per-time period maximums on the total number of historical requests you make.

Sincerely,
Gary Stephen
DTN IQFeed Implementation Support Specialist



If you are willing, we can test your app in-house. This will help eliminate network or machine as possible causes of the delay.

Sincerely,
Gary Stephen
DTN IQFeed Implementation Support Specialist



There are no hard-and-fast limits on the number of L2 messages you can receive at once, or anything else that should be causing this behavior. Can you tell me what programming language you are using, and the list of symbols you're requesting that's causing the problem? You may send this information to the IQFeed API support email or support chat if you'd prefer.

Sincerely,
Gary Stephen
DTN IQFeed Implementation Support Specialist


Data and Content Support » Option data - wrong daily close price Jun 15, 2020 05:17 PM (Total replies: 4)

In a word, no. There are a number of reasons for this. Beyond Daily and Interval commands not including the same trades, the biggest obstacle is not knowing exactly when trading will end for the day. It starts precisely at 8:30, but the end time can vary.

Sincerely,
Gary Stephen
DTN IQFeed Implementation Support Specialist


Data and Content Support » Option data - wrong daily close price Jun 15, 2020 09:13 AM (Total replies: 4)

Also: interval requests (the Minute and Hour requests in your screenshot) include data from FormT trades. Daily requests do not. You can see these trades in Time & Sales by checking "Use Extended Trades" in Settings.

Sincerely,
Gary Stephen
DTN IQFeed Implementation Support Specialist


IQFeed Developer Support » HTT: BeginTime and EndTime precision Jun 11, 2020 06:37 PM (Total replies: 1)

Shane,

The start/end time in an HTT command must be in the format CCMMYYDD HHmmSS. So you can't search more precisely than a second.

The results of HTT searches will include fractions of a second that start with the end time. In other words:

HTT,AAPL,20200611 100000, 20200611 101000 


Will include times that start with 101000:

HTT,AAPL,100000 20200611,100000 20200611 101000
2020-06-11 10:01:00.992868,349.4945,230,7475759,349.4600,349.5100,20424,C,19,01,0,11,
2020-06-11 10:01:00.978873,349.4850,25,7475529,349.4600,349.5100,10396,O,24,87,0,11,
2020-06-11 10:01:00.903720,349.4998,2,7475504,349.4600,349.5100,10395,O,24,87,0,11,
...etc...
2020-06-11 10:01:00.227203,349.4600,100,7473519,349.4600,349.5000,20419,C,19,01,0,11,
2020-06-11 10:01:00.221115,349.4800,100,7473419,349.4600,349.5000,8256,C,18,01,0,11,
2020-06-11 10:00:59.918933,349.4850,100,7473319,349.4600,349.5100,10390,C,24,01,0,11,
2020-06-11 10:00:59.756595,349.5100,600,7473219,349.4700,349.5100,207,C,164,01,0,11,
..etc...
2020-06-11 10:00:00.078536,349.0700,100,7353962,349.0700,349.1000,26296,C,5,01,0,11,
2020-06-11 10:00:00.006590,348.8383,213,7353862,349.0300,349.0700,20027,O,19,3E05,0,11,
!ENDMSG!,

In other words, an HTT request ending at 20200611 101200 technically ends at 20200611 102000.999999.

One other item to note: timestamp precision varies by exchange. Depending on the symbols you're requesting, they may not all go to milliseconds, in which case the same general principles apply.

Sincerely,
Gary Stephen
DTN IQFeed Implementation Support Specialist



This has been submitted as a formal request.

Sincerely,
Gary Stephen
DTN IQFeed Implementation Support Specialist


IQFeed Developer Support » IQFeed API documentation source? Jun 11, 2020 06:06 AM (Total replies: 3)

Andrew,

Hello, this is Gary Stephen from DTN IQFeed API Support.

The online documentation about the API is available at http://www.iqfeed.net/dev/index.cfm?login=login. You will need a username and password to access it, which you would have received when you purchased the IQFeed API product.

The code you give appears to import some necessary packages, connect to the API, and request a watch for a certain symbol.

IQFeedLauncher.Start("my_id", "my_pw", "dev_id") performs the act of connecting to the server, as per http://www.iqfeed.net/dev/api/docs//InitializingTheFeed.cfm. You would have to set these variables to your own login, password, and productid.

level2Client = Level2ClientFactory.CreateNew() creates a new instance.

level2Client.Connect() connects to the socket, as described in http://www.iqfeed.net/dev/api/docs/Introduction.cfm.

level2.Client.ReqWatch sends the command "w@BTC#" which is one of the commands outlined in http://www.iqfeed.net/dev/api/docs//Level2viaTCPIP.cfm. Each socket has its own set of commands.

In general, the best way to understand an existing IQFeed library is to realize which part does what. Hopefully this will help. I can answer any further questions you may have about it.

Sincerely,
Gary Stephen
DTN IQFeed Implementation Support Specialist



Adding the time zone to the SLM call is a good implementation of this idea. I'll add it to the request.

Sincerely,
Gary Stephen
DTN IQFeed Implementation Support Specialist


Data and Content Support » Same Timestamp with different TickID Jun 10, 2020 10:20 AM (Total replies: 12)

Quote: I think that it would be useful to include a unique sequence ID with each tick that *would indeed* be unique (an incremental long integer if possible) across the board.

I'd be surprised if you don't already have such an ID in your databases, since all databases have such IDs which are often used as index keys. I assume that adding it to the reported tick fields should not be too difficult.

A unique sequence ID will help end-users differentiate between different ticks in their programs. It will also help users when they report a potential data problem to refer to a unique sequence id that you could immediately find in your database.

--- Original message by altmany on Jun 2, 2020 06:47 AM
Yair,

Prepare to be surprised :) - there is no unique identifier anywhere in the IQFeed system. Because of the massive volume of data DTN processes, and the number of sources it comes from, a unique identifier was never implemented. It would certainly be useful to have one, and it's been discussed many times, but adding one is not in any short-term plans.

TickID was never intended to be a unique identifier. Its purpose is to link DTN's data back to the exchange data, for verification purposes. If someone says to our support team "hey, the price of ABCD at 11:35:20 looks a bit off," we can easily look up that price via the TickID, and make sure our data matches what the exchange reported. A unique, DTN-created identifier would not help, because the exchanges wouldn't know it. Similarly, third-party software wouldn't know these IDs either, or would have to put in the development hours to implement them. So having a custom unique ID for each trade is not as useful as it may seem.

Sincerely,
Gary Stephen
DTN IQFeed Implementation Support Specialist



Time: Mon July 13, 2020 11:22 PM CFBB v1.2.0 32 ms.
© AderSoftware 2002-2003