etron has contributed to 7 posts out of 19160 total posts
(0.04%) in 1,054 days (0.01 posts per day).
20 Most recent posts:
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
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 (http://www.iqfeed.net/dev/api/docs/OptionChainsviaTCPIP.cfm) and then passing those retrieved options OPRA symbols into a Level 1 watch request using ALL the fields available as outlined here http://www.iqfeed.net/dev/api/docs/LevelIviaTCPIP.cfm 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 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),
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)
Puts / Expires: Sep 23, 2016
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
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
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
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
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.
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