2

任何人都可以推荐与 Delphi 一起使用的 FIX 引擎(商业或开源)吗?

是否可以将 QuickFIX 与 Delphi 一起使用?

4

4 回答 4

2

看看B2BITS FIX 天线。有两种可能的选择:

  • FIX Antenna C++ 有 ANSI C 接口,可以在 Delphi 中使用(包中有示例)

http://www.b2bits.com/trading_solutions/fix_engines/fix_engine_cpp.html

  • FIX Antenna .NET 可以在 Delphi .NET 中使用(包中还有一个示例;程序员指南也包含 Delphi.NET 示例)

http://www.b2bits.com/trading_solutions/fix_engines/fix_enginenet.html

如果您需要更多详细信息,请随时直接与我联系。

于 2012-01-12T12:30:29.770 回答
1

QuickFix 是一个 C++ 项目。

Python 和 Ruby 都使用 SWIG 将 C++ 类公开为原生 Python 和 Ruby 类。

.NET 包装器听起来像是 C++ 和 C# 代码的混合体。

不能直接在 Delphi 中导入 C++ 类。您必须使用“平面 API”转换,将所有 C++ 方法公开为纯 C 声明,以便在 Delphi 单元中导入外部结构和函数。

据我所知,没有这样的 QuickFIX 的“平面 API”可用,也没有能够生成 Delphi 代码的 SWIG 版本。您必须用 C++ 编写自己的包装器,或者用 Delphi 编写自己的 FIX 实现。

我所知道的 Delphi 的唯一 FIX 库是来自http://www.b2bits.com的库——它在几年前确实存在,但我不确定它是否仍然被出售/维护——它们似乎只维护一个 DotNet 版本。在所有情况下都值得向他们询问价格和可用性。

于 2011-07-26T15:43:07.080 回答
0

这可能更像是一种 hack,但您可以通过python4delphi在 Delphi 中使用 Python QuickFIX 绑定。虽然这是很多层(Delphi 到 Python 到 C++)。

Python 是一种易于使用和学习的语言,它很容易调用和创建 python 对象(或伪装成 python 对象的本机 C 包装器)并直接从 Python4Delphi API 调用它们。

除此之外,正如 ABouchez 所说,构建程序(平面)API 对您来说可能很少工作。我不会编写一百万个函数,而是只编写我需要的函数,然后在 VC++ DLL 中实现这些简单的函数:

   QuickFixInit;
   QuickFixCleanup;
   handle := QuickFixLoadFile(filename)
   QuickFixSaveFile(handle)
   handle2 := QuickFixGetObjectHandle(handle,index,...); 
   QuickFixModifyObjectProperty(handle2, propertyname, propertyvalue );
   QuickFixExecuteSomeAction( handle2, actionname, param1,param2,param3 );

以上只是给你的味道。我对内部 API 一无所知,但我在上面向您展示的是您不需要 100% 符合 API 来编写包装器。您可能(如果您了解 C/C++)编写一个功能性包装器来满足您的需求,然后将其导出,将其链接到 DLL,然后将 QuickFix.dll 导入 Python 只需很少(专家的 2-4 小时)时间)工作,如果你对 Visual C++ 有足够的了解,可以编写一些简单的 C 风格(非 OOP)函数来实例化 C++ 类并调用 C++ 方法。

可以通过包含 QuickFIx 的 C++Builder 包 (BPL) 将 C++ API 公开给 Delphi,但是 (a) 需要对源代码进行一些修改,并且 (b) QuickFix 中的 C++ 代码或其依赖项可能未经重大修改,不得在 C++Builder 中构建。

于 2011-07-27T12:34:34.297 回答
0

将协议与 Delphi 集成的一种方法是构建 .Net 或 Java 桥,例如:

  • 使用 .Net C# 实现构建一个与 FIX 端通信的小应用程序
  • 然后通过 SOAP Web 服务公开此 .Net 应用程序的方法(甚至可能是对象)
  • 使用 Delphi 的 Web 服务客户端代码生成器导入 SOAP WSDL
  • 从 Delphi 端访问 Web 服务
于 2011-07-27T05:17:02.633 回答