MATLAB Answers

Creating a time series object from IQFeed data.

6 views (last 30 days)
John Smith
John Smith on 13 Feb 2017
Edited: Yair Altman on 12 Jan 2020
So the data imported from IQFeed is just about useless because it's in a cell and it's all strings. Anyway to create a usable time series object out of it?

  1 Comment

per isakson
per isakson on 14 Feb 2017
"just about useless" &nbsp Why is that? What does the text look like?

Sign in to comment.

Answers (1)

Yair Altman
Yair Altman on 12 Jan 2020
Edited: Yair Altman on 12 Jan 2020
Consider using my IQML (IQFeed-Matlab) connector as an alternative. IQML enables both synchronous (blocking) and asynchronous (background) queries, that are fetched either serially or in parallel (using the Matlab Parallel Computing Toolbox). A simple usage example:
>> data = IQML('history', 'symbol','AAPL', 'dataType','ticks')
data =
100×1 struct array with fields:
Symbol
Timestamp
Datenum
Last
LastSize
TotalVolume
Bid
Ask
TickID
BasisForLast
TradeMarketCenter
TradeConditions
TradeAggressorCode
DayOfMonth
BasisDescription
TradeMarketName
TradeDescription
AggressorDescription
>> data(end)
ans =
Symbol: 'AAPL'
Timestamp: '2019-10-04 09:45:03.862626'
Datenum: 737702.406294699
Last: 224.67
LastSize: 100
TotalVolume: 5226196
Bid: 224.66
Ask: 224.68
TickID: 7432
BasisForLast: 'C'
TradeMarketCenter: 19
TradeConditions: '01'
TradeAggressorCode: 0
DayOfMonth: 4
BasisDescription: 'Last qualified trade'
TradeMarketName: 'Nasdaq Trade Reporting Facility (NTRF)'
TradeDescription: 'Normal Trade'
AggressorDescription: 'Unknown/unsupported'
The returned struct arrays can easily be converted into Matlab tables and timeseries objects using the built-in Matlab functions such as struct2table, table2timetable and datetime:
>> table2timetable(struct2table(data), 'RowTimes',datetime(datestr([data.Datenum])))
ans =
100×9 timetable
Time Symbol Datestamp Datenum High Low Open Close PeriodVolume OpenInterest
___________ _______ ______________ __________ ______ ______ ______ ______ ____________ ____________
08-Aug-2019 {'IBM'} {'2019-08-08'} 7.3765e+05 140.42 137.76 138.45 140.1 5.2614e+06 0
09-Aug-2019 {'IBM'} {'2019-08-09'} 7.3765e+05 139.31 135.35 139.27 136.13 5.2446e+06 0
12-Aug-2019 {'IBM'} {'2019-08-12'} 7.3765e+05 135.87 133.18 135.66 133.67 4.0762e+06 0
13-Aug-2019 {'IBM'} {'2019-08-13'} 7.3765e+05 136.57 132.81 133.8 135.79 4.5512e+06 0
...
IQML was developed with top performance, reliability and usability in mind. IQML supports 100% of IQFeed's API functionality. It is fully documented, continuously maintained/improved, and I am happy to provide support.
Note: I am an independent software developer and not a MathWorks employee. Don't get angry at me for bringing an independent alternative to the table...

  0 Comments

Sign in to comment.

Sign in to answer this question.