我已经在Excel VBA中创建了代码,它通过dde链接收集数据并根据一些规则执行它们。很快,这个Excel VBA代码将向我发送有关我正在跟踪的买卖股票的消息。
现在,我想使用修复协议来执行这些消息。是否可以使用Excel VBA创建连接到Web服务的修复协议引擎,并使您能够执行来自Excel VBA的操作?
感谢您的帮助。
答案 0 :(得分: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: How to set up and use the RTD function in Excel