【问题标题】: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 转换项目(太不成熟)。

我只需要期权估值部分。

有人在托管应用程序中使用过它吗?最好的方法是什么?

【问题讨论】:

    标签: c# c++ unmanaged quantlib


    【解决方案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。
    猜你喜欢
    • 2016-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多