4

我已经在 Excel VBA 中创建了代码,它通过 dde ​​链接收集数据并根据一些规则执行它们。很快,此 Excel VBA 代码将向我发送有关购买或出售我正在跟踪的股票的消息。

现在,我想通过使用修复协议来执行这些消息。是否可以使用 Excel VBA 创建一个连接到 Web 服务并允许您执行来自 Excel VBA 的操作的修复协议引擎?

谢谢你的帮助。

4

1 回答 1

5

从 Excel 发送 FIX 消息有多种选择。

首先,从头开始编写 FIX 引擎并非易事。对于初学者来说,规范(尤其是早期版本,例如 4.2)相当模糊,很多细节只能从实践经验中了解。因此,您最好从现成的解决方案开始。

你有几个选择:

1) 从 Excel 调用 FIX 引擎的远程 API。您可以在此处找到各种商业引擎:http: //fixprotocol.org/products/1 - 有些提供带有产品 SDK 的 excel 插件。

2) 将 QuickFIX.NET 嵌入到您的 VBA 代码中。有关代码示例,请参见http://www.quickfixengine.org/(主题太大,无法在该答案中发布)。

3) 购买 FIX for Excel 插件。有几个。我不能推荐一个(出于各种原因)。同样,您可以在 FIX Protocol Ltd 网站上搜索一些起点: http: //fixprotocol.org/products/2

还有一点注意事项:

当我对此进行编码时,Excel 的线程模型不允许异步更新单元格。因此,当我向远程 FIX 服务器发送命令时,响应消息(交易)是异步接收的。收到回复后,我尝试更新 Excel。如果我在更新到达时同时编辑单元格,Excel 进程会严重崩溃。

克服这一问题的一种解决方案是使用 Excel RTD 界面(RTD =“实时数据”)来更新您的交易记录。这是另一个大话题。这是一个起点:

Microsoft KB:如何在 Excel 中设置和使用 RTD 功能

于 2012-07-17T15:13:30.370 回答