MATLAB Answers

Field List of IQFeed Realtime Data

9 views (last 30 days)
Rui Zhang
Rui Zhang on 20 Mar 2017
Edited: Yair Altman on 20 Jan 2020
Hi,
I am getting IQFeed realtime data via MATLAB using a built-in function 'realtime'. As the data format is 1x67 cell for each record, I do not know the meaning of each column in one record. Could you please give me the field list for these 67 columns of data?
I also want to know the data sending frequency. I got one more question is when will you send me a new data (I mean what is the minimum difference between the adjacent data).
Any help is appreciated!

  0 Comments

Sign in to comment.

Answers (3)

D.W. Stratford
D.W. Stratford on 14 Apr 2017
Rui, hello, let me know if you have made any progress on this issue. I have also encountered it as well. I am quite frustrated as IQFeed has informed Math Works has prohibited IQFeed from supporting Matlab users with any advice whatsoever regarding the use of Matlab with IQ-Feed data.

  1 Comment

Rui Zhang
Rui Zhang on 29 Jun 2017
I got no idea in MATLAB and decided to use python.

Sign in to comment.


Andrei
Andrei on 11 May 2019
Edited: Andrei on 11 May 2019
Matlab doesn't have a robust IQFeed library ... multiple cases opened, with a couple of conclusions:
1) IQFeed might sporadically work (not consistent) in conneting and downloading historical data. And when I mean consistent, I mean - leave it running in a loop for a couple of hours / days.
2) Matlab's IQFeed implementation (as of 2018, but nothing changed in r2019) is in no way shape or form fit for real-time data aquisition through IQFeed due to internal library implementation / limitations.
I cost me half a year's IQFeed subscription to end up working with some (brilliant otherwise) Matlab support engineers ... just to end up with the dissapointing conclusion that Matlab IQFeed implementation is not fit for the stated purpose: {Intraday tick, historical, and news data from IQFEED® data server}. One would think realtime is assumed with intra-day (and this was the expectation including from the Support Engineer), well it doesn't work.
Also, please bear in mind IQFeed is specifically designed and used for real time data aquisition & trade decision making, as well as historical data analysis.
Also, think about this in a different manner: if Matlab's own IQFeed was working, then you wouldn't have Yair selling his own implementation as a subscription under:

  1 Comment

Stephen Nagy
Stephen Nagy on 7 Nov 2019
Again, Mathworks is squeezing its customers and sabotaging its own product's functionality. They sent cease and desist orders to data providers because THEY WERE HELPING MATLAB CUSTOMERS.
WHY?
Because Mathworks doesnt want you getting free help. They are forcing us to pay fees to get help from Mathworks.
This ship is sinking, folks.

Sign in to comment.


Yair Altman
Yair Altman on 12 Jan 2020
Edited: Yair Altman on 20 Jan 2020
In the Trading Toolbox, you can use the 3rd input argument of the realtime function to specify the requested fields, and then you know exactly what fields you receive:
realtime(q,'AAPL',{'Symbol','Exchange ID','Last','Change','Incremental Volume'},...
@iqfeedlistener, @iqfeedeventhandler)
Depending on your IQFeed client version, up to 70 different fields can be specified (you need to know their names though).
If you set your IQFeed logging to log all data (especially "All Level 1") in the IQFeed Diagnostic Utility, then you might find the ordered field names information in the log file if you dig inside it.
As an alternative, consider using the IQML connector, where the results are provided in a human-readable struct format. For example:
>> data = IQML('quotes', 'Symbol','GOOG')
data =
Symbol: 'GOOG'
Most_Recent_Trade: 1092.14
Most_Recent_Trade_Size: 1
Most_Recent_Trade_Time: '09:46:31.960276'
Most_Recent_Trade_Market_Center: 25
Total_Volume: 113677
Bid: 1092.13
Bid_Size: 100
Ask: 1092.99
Ask_Size: 100
Open: 1099.22
High: 1099.22
Low: 1092.38
Close: 1090.93
Message_Contents: 'Cbaohlc'
Message_Description: 'Last qualified trade; A bid update occurred,...'
Most_Recent_Trade_Conditions: '3D87'
Trade_Conditions_Description: 'Intramaket Sweep; Odd lot trade'
Most_Recent_Market_Name: 'Direct Edge A (EDGA)'
...
With IQML too you can specify the requested fields, but in any case you get a complete description of the data values since each value is associated with its corresponding field name. In cases where a code is used (for example, Market_Center, Message_Contents, Trade_Conditions), a human-readable description text is provided in a separate field.
Regardless of whether you use the Datafeed toolbox or IQML, a detailed description of all IQFeed fields can be found in IQML's User Guide, in the table at the end of section 4.1 (PDF, HTML). This table can be used even if you use the Datafeed toolbox, not just IQML. The fields in the table are sorted alphabetically; the exact ordering of the fields in the results depends on the ordered set of fields that you requested, in either of the connectors (Datafeed or IQML).
To the best of my knowledge, the only other place that describes the IQFeed fields is IQFeed's API documentation, which is only accessible if you have a DTN API subscription (not to the general public).
As to the question about data frequency, the Datafeed toolbox uses quote ticks request in its realtime function. This means that you get a new tick whenever the bid and/or ask change, or when a trade occurs. This can be quite a flood of data for highly-liquid assets. With IQML, you can request IQFeed to send only trade ticks (without bid/ask ticks). Also with IQML, you can request to send interval data at a certain maximal duration (minimal frequency), in case no trades occured during the specified interval duration.

  0 Comments

Sign in to comment.

Sign in to answer this question.