从 C# 调用 QuantLib 方法的最佳方法是啥
Posted
技术标签:
【中文标题】从 C# 调用 QuantLib 方法的最佳方法是啥【英文标题】:Whats the best to call QuantLib methods from C#从 C# 调用 QuantLib 方法的最佳方法是什么 【发布时间】:2013-05-05 00:14:19 【问题描述】:我将在 C# 应用程序 (http://quantlib.org/docs.shtml) 中使用 QuantLib,但我不信任他们的 .NET 转换项目(太不成熟)。
我只需要期权估值部分。
有人在托管应用程序中使用过它吗?最好的方法是什么?
【问题讨论】:
【参考方案1】:我在类似情况下所做的是将 C++ 本机 dll 实现为 C# 和 C++ 项目之间的适配器。 在 C# 中,您可以使用 DllImport 访问您的 dll 接口。 在 dll 中,您可以访问完整的 C++ 接口,但值得将其简化为您在托管站点上的确切需求。
例子:
// in the C++ dll:
extern "C" MY_API void SetInput(double* Values, int Count);
// in C#:
[DllImport("MyStuff.dll")]
public extern static void SetInput(double[] Values, int Count);
【讨论】:
"a C++ native dll as a adapter" 你的意思是 C++/CLI 项目作为 C++ 本地 QuantLib dll 的包装器......对吗? ...有机会看到代码^_^? 是的,它可以是托管的 C++ 包装器,但我认为它会使事情复杂化。我创建了一个纯 C 接口。 不过,您将不得不编写大量代码以使 QuantLib 代码适应纯 C 接口。 我真的需要很少的方法。最多需要一个小时...如果我可以编译 ql (你们为什么不分发构建的 dll?)【参考方案2】:C++ 库的 C# 包装器已经可用,并在 the QuantLib download page 分发(这些是 jmihalicza 建议的包装器,而不是您在问题中提到的正在进行的 C# 端口)。该分布还包含一个期权估值示例(在 CSharp/examples 文件夹下查看)。
【讨论】:
是的。我花了 2 小时尝试使用 Boost 编译 QL,因为 boost 安装程序无法下载几个 zip。即使我成功了,我也需要安装 swig,然后花几天时间修补它。毕竟我用了 qlnet。我根本没有那个时间 Luigi。以上是关于从 C# 调用 QuantLib 方法的最佳方法是啥的主要内容,如果未能解决你的问题,请参考以下文章