我已经在 Excel VBA 中创建了代码,该代码通过 dde 链接收集数据并根据某些规则执行它们。很快,此 Excel VBA 代码将向我发送有关购买或出售我正在跟踪的股票的消息。
现在,我想使用修复协议(protocol)来执行这些消息。是否可以使用 Excel VBA 创建一个修复协议(protocol)引擎,连接到 Web 服务并使您能够执行来自 Excel VBA 的操作?
感谢您的帮助。
最佳答案
您有多种选项可用于从 Excel 发送 FIX 消息。
首先,从头开始编写 FIX 引擎并不是一件容易的事。对于初学者来说,该规范(尤其是 4.2 等早期版本)相当模糊,许多细节只能从实践经验中得知。因此,您最好从现成的解决方案开始。
您有多种选择:
1) 从 Excel 调用 FIX 引擎的远程 API。您可以在此处找到各种商业引擎:http://fixprotocol.org/products/1 - 有些提供 Excel 插件及其产品 SDK。
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: How to set up and use the RTD function in Excel
关于excel - 使用 Excel VBA 修复协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11518282/