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
"I ran your IQFeed DDE vs. my broker vs. a level II window for some slow-moving options. I would see the level II quote change, then your feed update instantaneously. My broker's DDE, however, would take as much as 30 seconds to update. I am not chasing milliseconds, but half a minute is unacceptable." - Comment from Rob
"I'm very glad I switched to IQFeed. It's working perfectly with no lag, even during fast market conditions." - Comment from Andy via Email
"Thank God for your Data Feed as the only Zippers I see are on my pants (LOL), and no more 200 pip spikes to mess up charts." - Comment from Spiro via Email
"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
"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
"I was with ******* for 4 years at $230 a month, this is a huge savings for me, GOD BLESS YOU PEOPLE," - Comment from T.S. via Email
"I am keeping IQFeed, much better reliabilty than *******. I may refer a few other people in the office to switch as well." - Comment from Don
"Boy, probably spent a thousand hours trying to get ******* API to work right. And now two hours to have something running with IQFeed. Hmmm, guess I was pretty stupid to fight rather than switch all this time. And have gotten more customer service from you guys already than total from them… in five years." - Comment from Jim
"As a past ******* customer(and not a happy one), IQ Feed by DTN is a much better and cheaper product with great customer support. I have had no problems at all since switching over." - Comment from Public Forum
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: etron
About Contact
Joined: Aug 26, 2016 05:20 PM
Last Post: Sep 7, 2016 10:12 PM
Last Visit: Sep 7, 2016 10:31 PM
In the middle of difficulty lies opportunity.
Yahoo IM:
Post Statistics
etron has contributed to 7 posts out of 19450 total posts (0.04%) in 1,313 days (0.01 posts per day).

20 Most recent posts:
IQFeed Developer Support » Need help interpreting return data format Sep 7, 2016 10:12 PM (Total replies: 6)

Hi Steve,

Ok. Thanks for the quick response. Yes, I'm using protocol version 5.2 thanks.

It sounds like the Level 1 data will be the way to go in order to get real time Options Chains -- but what about getting historical Option Chains that correspond to real-time quotes?

Since the Derivatives tick history seems to not be returning bid asks -- even though in your above reply you said:

"The tick history is every trade for the symbol and includes bid/ask price data at the time the trade occurs"


1) What about getting historical option chain data with Bid/Ask Open Interest etc?

2) Can you kindly please reply to this with two examples of using a REQUEST command that should be used to get an option chain from the OPRA OSI symbol and a quick summary of the data returned please (example1: historical and example2: real-time)?

Thank you for your help!


Edited by etron on Sep 7, 2016 at 10:25 PM
Edited by etron on Sep 7, 2016 at 10:31 PM

IQFeed Developer Support » Need help interpreting return data format Sep 7, 2016 09:42 PM (Total replies: 6)

Update on getting Option Chains! The journey continues. Need some more help please:

So, I tried retrieving Options Chain data by getting the options symbols using CEO ( and then passing those retrieved options OPRA symbols into a Level 1 watch request using ALL the fields available as outlined here but this did not work. Some of the fields had some data but it was mostly NAN or empty return data. Then I found the Derivatives port 9400 and that looked more promising.

So -- thanks to your pointer and link regarding the fact that the option chain symbols are in OPRA OSI format and, with a little help from the developer documentation, mostly these two pages:

Derivatives overview:

Derivatives Streaming interval bars via TCP/IP:

I am able, from a single symbol, to request historical derivatives data passing in an options symbol and date range using:

BW,[Symbol],[Interval],[BeginDate BeginTime],[MaxDaysOfDatapoints],[MaxDatapoints],[BeginFilterTime],[EndFilterTime],[RequestID],[Interval Type],[Reserved],[UpdateInterval]

And getting back a stream of data, in seconds as well as in ticks (tick resolution of 1 was giving me an error I haven't investigated yet so using tick resolution of 2 for now).

With the data returned and by parsing the relevant information from the OPRA OSI symbology [Underlier (Ticker), Type (Put/Call), Expiration (datetime), Strike price]

I am able to retrieve packets of data with the following information for example, with a single option symbol INTC1623U35 I can get a bunch of historical options data in this format (this is an internal data structure but corresponds to a the OPRA data and data returned from the BW request):

'date_time': (numpy.datetime64('2016-09-06'), 38015000000),
'expiration': numpy.datetime64('2016-09-23'),
'price_high': 0.14,
'price_last': 0.14,
'price_low': 0.14,
'price_open': 0.14,
'response_type': 'history',
'strike_price': '35',
'symbol': 'INTC1623U35',
'tick_trades': '1',
'type': 'put',
'underlier': 'INTC',
'volume_cummulative': '10',
'volume_internal': '10'

The problem is, this is that this is not the exact data I'm expecting for Option Chains.
This is the data I was expecting to gather for option chains (historical and real-time):

According to Nasdaq the option chain for the Sept. 23rd expiration INTC put w/ $35 strike price, as of today (granted the data from the stream is historically dated from yesterday)

Strike: 35
Puts / Expires: Sep 23, 2016
Last 0.11
Chg -0.03
Bid 0.10
Ask 0.12
Vol 25
Open Interest: 1057

So, there are some minor but notable discrepancies (and missing data like Open Interest, etc) between expected option chain data, the data found at Nasdaq and what we're seeing... Here are some questions:

1) Where is "Last", "Change", "Bid", "Ask" and "Open Interest" and how can I get the full option chain data?

2) What is the difference between Volume Cumulative and Volume Internal and how should one compute the actual option chain volume number from these two volume representations?

3) No matter the interval I choose (i.e. 2 ticks or 240 seconds, etc) it seems the values for OHLC i.e. "open" "high" "low" and "last" are always exactly the same (in the vast majority of data returned) -- is this right? When requesting tick data, what does this mean (tick data is bid/ask not OHLC isn't it)?

Thanks in advance for all the info.


Edited by etron on Sep 7, 2016 at 09:48 PM

IQFeed Developer Support » News Story Missing Whitespace Characters Sep 3, 2016 06:31 AM (Total replies: 0)

EDIT: Please delete this thread. It was late and I had a strip() call in one of my base classes that I was inheriting from and didn't realize it was I who was stripping the whitespaces... Fixed. Thanks.
Edited by etron on Sep 3, 2016 at 06:42 AM

IQFeed Developer Support » Getting The News Sep 1, 2016 05:28 PM (Total replies: 1)

Hey guys, Thanks for your help and prompt response via the developer support channel. For posterity here is what support told me:

Quote: Your first two request both worked right off in my terminal. Your third request, I had to alter slightly, as none of the sources listed had any news currently, so it returned an empty data set. MWH did have data.

After seeing this reply that it works on that end, and inspecting my code closer, to my embarrassment, there was an extra ascii character getting inserted into every request after the comma which was causing requests to get sent wrong. Somehow I completely missed this as I was printing the command for debugging before this character was getting inserted!

Thanks for your quick response and help via developer support.


Edited by etron on Sep 1, 2016 at 05:29 PM

IQFeed Developer Support » Getting The News Aug 31, 2016 08:33 PM (Total replies: 1)

Need help and/or support getting News Headline data returned from the Lookup port please.

I am able to successfully get the News Config data from: NCG,[XML/Text],[RequestID]
Which returns data like this:
'MINOR', 'DT7', 'Quote List Changes', '1D', '10'
'MINOR', 'RTI', 'Calendars and Reports', '2Ab', '10'
'MAJOR', 'CPR', 'PR Newswire', '1X', '5'
'MAJOR', 'CBW', 'Business Wire', '1X', '2'
'MAJOR', 'RTT', 'Real-Time Trader', '2Ab', '10'
'MINOR', 'RTB', 'Breaking News Headlines', '2Ab', '10'
'MINOR', 'RTC', 'Big Stories', '2Ab', '10'
'MINOR', 'RTD', 'Analyst Updates', '2Ab', '10'
'MINOR', 'RTE', 'Analyst Comments', '2Ab', '10'
'MINOR', 'RTF', 'Stocks on the Move', '2Ab', '10'
'MINOR', 'RTG', 'Corporate Actions', '2Ab', '10'
'MINOR', 'RTH', 'Market Overview', '2Ab', '10'
'MINOR', 'RTK', 'Economic News', '2Ab', '10'

Ok that's a great start, but can't seem to get any further -- when ever I try to send an NHL request to get headlines it just doesn't seem to work.

I followed the API guidelines here:

Following the guidelines:
Here's an couple examples I tried:


I've tried passing in News Sources (or not), TICKER symbols (or not), passing in 't' for text or 'x' for XML... and also tried not passing in anything hoping it would return all the news, but, to my dismay, no matter what I try, it seems I get the same result... an empty array ['] or an empty XML shell:

<?xml version='1.0'?> <news_headlines> </news_headlines>

Getting News Headlines to come back from the servers seems to be an elusive mystery.

I'm sure I must be missing a step or doing something wrong? Please help! Thanks in advance.


Edited by etron on Aug 31, 2016 at 08:44 PM

IQFeed Developer Support » Need help interpreting return data format Aug 26, 2016 08:23 PM (Total replies: 6)

This is a great start thanks for the pointers I didn't realize that was OPRA OSI. Looking at my account, I'm already subscribed to RT Equity Options, RT NASDAQ Level 1 and Real Time CBOE so this should be good to request Level 1 data?
I'll give it a shot and post back my results. Thanks again for the tips and quick response.

IQFeed Developer Support » Need help interpreting return data format Aug 26, 2016 06:52 PM (Total replies: 6)


I am successfully able to access and read data from the API but need support in order to interpret the information I am receiving back from your servers. I am guessing this is a common request from new users since the data format appears to be somewhat proprietary...

It's totally possible I may have missed something in the documentation so any pointers are much appreciated by anyone in the community here that reads this (thanks in advance).

The return data format I am receiving is in a format I'm not sure how to interpret, which appears to be a custom compression scheme I will need to unwind in my code. Generally speaking, the documentation does not seem to clearly spell out the meaning of the returned data in a way that I am confident such that I'm able to interpret it's meaning. In other words, I'm confused what the data I'm getting back means. In a general sense is there a page in the docs (maybe I missed it) that clearly explains the data format that is returned from the API for all API calls?

Let's use Equity Option Chains as an example. If I request an Equity Option Chain, I expect to receive the data that is associated with an Equity Option Chain (Symbol, Strike, Last, Change, Bid, Ask, Volume, and Open Interest) but instead it appears I'm getting an unexpected compressed subset of this data in a compressed format that I don't fully know what it means:

First, I read over this page:

Then, I started requesting puts and calls (pc) Equity Option Chains using the CEO call - in this example, for Intel Corp. (INTC), the API returns unexpected values like this:

'INTC1602U44', 'INTC1602U45', 'INTC1607V28', 'INTC1607V28.5', 'INTC1607V29'

Let's break this down using data from the above example. Hopefully there is a document that clearly outlines things like this?

INTC -- Obviously the first element is the ticker symbol.

16 -- It's unclear to me what the next number is but it appears to be the option chain date measured in day of the month - I only was able to decipher this by examining option chains from Nasdaq's website then trying to visually pattern match.

02 (and 07) -- The next double digit number is unclear. Is it the days until expiration?

U (and V) -- I found the letter codes for months in the docs (explained for sending requests but not clearly outlined for the return data format), regardless, it appears in this case the month's letter depends on if the return value is a call or a put. In this case, it is a put, then it appears the month for U is September and the month for V is October.

44, 45 [...] 28.5, 29 -- this appears to be the strike price for buying the put.


1) What does the data mean, please feel free to annotate my above example and please note any differences I haven't mentioned between calls and puts.

2) Where is the rest of the option chain data? ie: Last, Change, Bid, Ask, Volume, and Open Interest ...etc... and maybe implied volatility (but I can probably take care of that one)

Also, I am generating a request id for internal book keeping in my code, it's not clear to me if this is being tacked onto each element of the returned data, but it looks like it is only getting attached to the entire block of returned data for a single request. Just mentioning this in case it makes any difference in the return format other than what I've noted.

I will need concise explanations for all of the return data formats and feed types I'm subscribed to (ie: 'OPRA', 'NYSE', 'NASDAQNDX', 'NASDAQ', 'APCMB', 'CBSMKTW', 'CBOENDX', 'AMEX', 'RT_TRADER', 'COMTEX', 'PRIMEZONE', 'INTERNET_WIRE', 'DTNNEWS', 'SCROLLNEWS', 'EXFUND', 'BENZINGA', 'MN_TRADER') and am having trouble finding the full breakdown of this information in the documentation contained on the website.

Thank you in advance for your help!

Edited by etron on Aug 26, 2016 at 06:57 PM

Time: Mon March 30, 2020 12:46 PM CFBB v1.2.0 31 ms.
© AderSoftware 2002-2003