所以我正在尝试从IQFeed获取历史股票数据。我有一个我想要获取数据的符号列表。问题是IQFeed timeseries函数异步返回数据,所以我不能只使用一个简单的for循环来获取所有数据。
我假设有一种方法可以使用事件处理程序来执行此操作,但是查看默认处理程序,它会超出我的想象。
答案 0 :(得分:0)
尝试使用IQML(Matlab连接器到IQFeed),它在Matlab中运行并直接连接到IQFeed。 IQML支持阻塞(同步快照)和非阻塞(异步流)查询。
为回答OP问题,下面是使用IQML将历史IQQFeed数据同步(即阻塞)取入Matlab的示例:
>> data = IQML('history', 'symbol','IBM', 'dataType','day')
data =
100×1 struct array with fields:
Symbol
Datestamp
Datenum
High
Low
Open
Close
PeriodVolume
OpenInterest
>> data(1)
ans =
Symbol: 'IBM'
Datestamp: '2017-10-10'
Datenum: 736978
High: 148.95
Low: 147.65
Open: 147.71
Close: 148.5
PeriodVolume: 4032601
OpenInterest: 0
IQML支持整个IQFeed API,包括:
用户可以使用普通的Matlab将上述所有功能组合在一起,形成一个完善的端到端自动交易系统。
IQML在所有最新的Matlab / IQFeed版本和平台(Windows,Linux,Mac)上均可使用。 它可靠,易于使用且闪电般快速(包括可选的并行化)。 IQML随附了详细的User Guide,其中包含用法示例,示例Matlab脚本和实现技巧。
IQML仅需要核心Matlab即可运行-不需要工具箱(并行化使用Parallel Computing Toolbox,但是IQML即使没有它也可以很好地运行)。
Yair Altman
IQML.net,https://UndocumentedMatlab.com/IQML,https://github.com/altmany/IQML