【问题标题】:Waiting for results of asynchronous function call in matlab在matlab中等待异步函数调用的结果
【发布时间】:2017-02-15 19:13:06
【问题描述】:

所以我正在尝试从 IQFeed 获取历史股票数据。我有一个要为其获取数据的符号列表。问题是 IQFeed timeseries 函数异步返回数据,所以我不能只使用一个简单的 for 循环来获取所有数据。

我认为有一种方法可以使用事件处理程序来执行此操作,但是查看默认处理程序时,它超出了我的想象。

【问题讨论】:

  • 您可能可以使用一个简单的 for 循环来获取数据,只需在迭代之间添加一个简短的pause(我不能肯定地说,因为我没有使用 IQFeed 的经验)。

标签: matlab function asynchronous


【解决方案1】:

尝试使用IQML(到 IQFeed 的 Matlab 连接器),它在 Matlab 中运行并直接连接到 IQFeed。 IQML 支持阻塞(同步快照)和非阻塞(异步流)查询。

在回答 OP 问题时,以下是使用 IQML同步(即阻塞)将历史 IQFeed 数据获取到 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,包括:

  • 阻塞(同步快照)和非阻塞(异步流)数据查询
  • 实时一级账面市场数据(报价和交易)
  • 实时 Level2 市场深度数据
  • 历史、日内和实时市场数据(单个分时或区间柱)
  • 资产的基本信息
  • 期权和期货链查询(包含最新市场数据和希腊字母)
  • 符号和市场代码查找
  • 带有用户指定过滤器的新闻标题、报道数量和完整的新闻报道
  • 能够将用户定义的 Matlab 回调函数附加到 IQFeed 消息和市场事件中
  • 用户定义的关于流媒体市场事件的自定义警报(新闻/报价/间隔柱/区域触发器)
  • 连接统计信息和编程连接/断开连接

用户可以使用简单的 Matlab 将上述所有功能组合成一个成熟的端到端自动交易系统。

IQML 适用于所有最新的 Matlab/IQFeed 版本和平台(Windows、Linux、Mac)。 它可靠、易于使用且速度极快(包括可选的并行化)。 IQML 附带详细的User Guide,其中包含使用示例、示例 Matlab 脚本和实施技巧。

IQML 只需要核心 Matlab 即可运行 - 不需要工具箱(并行化使用 Parallel Computing Toolbox,但即使没有它,IQML 也能很好地运行)。

亚尔奥特曼

IQML.nethttps://UndocumentedMatlab.com/IQMLhttps://github.com/altmany/IQML

【讨论】:

    猜你喜欢
    • 2020-10-20
    • 1970-01-01
    • 2020-04-08
    • 1970-01-01
    • 2016-12-20
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多