【问题标题】:Matlab - Interactive Brokers - Getdata functionMatlab - 盈透证券 - 获取数据函数
【发布时间】:2025-12-01 12:35:01
【问题描述】:

我正在使用 Matlab (http://de.mathworks.com/help/trading/ibtws.getdata.html) 中交易工具箱的 getdata 功能通过盈透证券 (IB) 的最新 TraderWorkStation (TWS) 获取外汇对(例如 EURUSD)的实时价格数据使用 IB 提供的最新 API (v9.71) 的模拟账户。

交易平台在执行我的代码时正在运行(见下文)

这是我正在使用的代码。它遵循 Mathworks (http://de.mathworks.com/videos/get-started-with-trading-toolbox-connect-to-interactive-brokers-1-of-3-91839.html) 的后续教程中解释的所有基本步骤。

% establish connection to TWS
ib = ibtws('',7497);

%% create currency handles
ibEURUSD = ib.Handle.createContract;
% set forex credentials
ibEURUSD.symbol = 'EUR';
ibEURUSD.secType = 'CASH';
ibEURUSD.exchange = 'IDEALPRO';
ibEURUSD.currency = 'USD';

cur = getdata(ib,ibEURUSD);

% close IB connection
close(ib);

在大多数情况下(大约 75%),此代码会提供预期结果并返回请求的财务数据。但是,在其余情况下,变量“cur”不包含请求的价格数据,而是包含以下错误消息:“HMDS data farm connection is OK:ushmds”

哪个拳头看起来没有问题。但是,此错误消息会替换请求的数据,因此在 25% 的运行期间不会收到任何数据。

我很欣赏任何解决此问题的提示。

【问题讨论】:

    标签: matlab interactive-brokers


    【解决方案1】:

    这是 MATLAB 交易工具箱中的错误。 IB API 文档描述了一些可以安全忽略的消息,但 MATLAB errMsg 事件处理程序不会忽略它们,而是在接收价格数据时终止正在进行的 getdata 请求。 “HMDS 数据场连接正常:ushmds”是消息编号 2106,它是可忽略的消息之一。

    【讨论】:

      【解决方案2】:

      考虑使用IB-Matlab 连接器,没有这个问题。

      【讨论】: