问题标签 [quantlib-swig]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
185 浏览

python - Quantlib 1.14 和 Quantlib1.14-SWIG:不再支持 VC++10 (2010) 之前的 Visual C++ 版本

我为 quantlib 1.14 和 quantlib 1.14-swig 下载了 tarbals。SWIG 下的 quantlib 文件夹确实包含 quantlib_wrap.cpp。但安装程序抱怨 MSC 版本。这是新的错误。这篇文章与另一篇关于缺少quantlib_wrap.cpp错误消息的文章相关联。

使用 1.13。不再支持 VC9。——路易吉·巴拉比奥

我也会尝试 1.13。但实际上,我确实安装了 VC++ 14.0。我正在使用 VS2015 编译 quantlib。不确定真正的原因。

我确实尝试了 1.13 并遇到了链接错误。我认为这可能是由于 quantlib-swig (VC9.0) 和 quantlib(VC14) 的编译不一致造成的。如果是这样,我们如何控制 quantlib-swig 的编译版本?有没有办法控制它?

0 投票
1 回答
918 浏览

python - QuantLib-Python 中的现金结算掉期期权定价

我正在尝试QuantLib使用 swigged python 版本为现金结算的交换定价,代码如下:

在现金结算的情况下代码失败Settlement::checkTypeAndMethodConsistency,抛出异常:

如果您在交换实例化中替换ql.Settlement.Cash为,则相同的代码可以正常工作。ql.Settlement.Physical

有没有办法从 Python 设置结算方法?我看到 Python 中只有两个可用的构造函数,并且没有一个带settlementMethod参数:

0 投票
1 回答
342 浏览

python - 如何在 Visual Studio 中调试 QuantLib-Python 模块

QuantLib-Python是 SWIG 生成的 python 模块,允许访问 QuantLib (C++) 功能。我希望从 Visual Studio 调试器中调试核心 QuantLib 源代码(通过附加到 python 进程)。过去,我可以使用以下步骤在 Visual Studio 2015 上毫无问题地执行此操作。但是,在 Visual Studio 2017(和 2019)上,调试符号不会从 PDB 文件加载到 Visual Studio 中。

  1. 在 Visual Studio 中构建 QuantLib C++ 代码 (Debug|x64)
  2. 将以下内容添加到quantlib.iSWIG 文件中(将调试 C++ 与发布 python 结合起来)
  1. python setup.py wrap
  2. python setup.py build --debug
  3. python setup.py install
  4. 启动一个 python 会话并import QuantLib
  5. 在 Visual Studio 中,将调试器附加到 python 进程
  6. 设置断点。
  7. 在 python 中执行一条语句,该语句应该高于断点(在 VS2019 中,这个断点没有被命中)。

我可以从模块窗口中看到没有为 QuantLib 加载任何符号。如果我查看站点包中的 QuantLib 文件夹,我可以看到 PDB 文件确实存在。

以前有没有其他人遇到过这个问题?知道什么可能导致这里的问题吗?

0 投票
0 回答
538 浏览

python - QuantLib-Python:使用 VanillaSwap 仪器的 quantlib Schedule 解决非正时间前向误差

我正在尝试使用 QuantLib 环境中的自举曲线对远期掉期进行定价。对于我的 2019-04-04 估值日期,曲线引导程序按预期运行。我还可以轻松地为 10Y10Y 前向启动掉期定价。当我尝试为 15Y5Y 远期掉期定价时,问题就出现了。假设我的结算是 t+2 (2019-04-08),我使用结算日期和日历对象找到掉期的远期开始日期,该错误似乎主要出现在我的远期开始日期在周末时,因此使用下一个工作日作为开始日期。在我们的例子中,2034-04-08 是星期六,所以我们最终将交换的开始日期定为 2034-04-10。然后引发此错误:

无法计算 2034 年 4 月 11 日和 2034 年 4 月 11 日之间的远期汇率:使用 Actual/360 daycounter 的非正时间 (0)

C++ Quantlib Vanilla Swap: setting future fix dates and gearing for floating leg但我没有找到解决这个“问题”的正式问题。

试图理解这个问题,我相信向后的日期生成可能是问题的一部分,因为它似乎创建了一个存根。使用反向生成的交换开始日期是 2034 年 4 月 11 日,而我提供的交换开始日期是 2034 年 4 月 10 日。这显示在我的时间表(固定和浮动)中。

进一步研究我的研究,我在这里寻找“存根”:https ://leanpub.com/quantlibpythoncookbook/read并找到了我认为是答案的一部分。Schedule 构造函数允许指定短/长前/后存根,但即使我将 firstDate 指定为 2034 年 4 月 11 日,也会引发相同的错误。这是重现错误的完整代码。如您所见,我的日程安排包括 2034 年 4 月 10 日2034 年4 月 11 日,我认为这是导致我的问题的原因。我仍然对为什么以及如何解决这个问题感到困惑。

0 投票
1 回答
392 浏览

python - Heston校准quantlib python中的最大曲线时间误差

我正在运行从源 SWIG python 1.16 版本的 QuantLib 编译。

我一直在尝试按照这个例子校准赫斯顿模型。我目前只使用 QL 校准来测试它,然后再尝试其他校准。我需要时间相关参数,所以我使用PiecewiseTimeDependentHestonModel.

这是我的代码的相关部分。

辅助功能:

市场数据:

和脚本本身:

当我运行最后一行时,我收到以下错误消息:

RuntimeError:时间(1.42466)已超过最大曲线时间(1.00274)

我不明白它如何尝试为超过 1 年的价格定价,因为辅助曲线和远期曲线都是在同一组日期上定义的。

0 投票
0 回答
35 浏览

python-3.x - 为什么 QuantLib 不能在其最后一个版本上编译?

按照 QuantLib 1.9 安装教程后,我无法在我的计算机上编译该库。

我的设置教程:https : //www.quantlib.org/install/windows-python.shtml python 3.6.3 Quantlib 1.9 Quantlib-SWIG 1.9 boost boost_1_66_0 visual studio 2017 windows 10

我的错误如下:

“运行构建

运行 build_py

运行 build_ext

构建“QuantLib._QuantLib”扩展

C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -D__WIN32__ -DWIN32 -DNDEBUG -D_WINDOWS -DNOMINMAX (.....) IC:\Users\AppData\Local\Continuum\anaconda3\Lib\site-packages\boost_1_66_0 /EHsc /TpQuantLib/quantlib_wrap.cpp /Fobuild\temp。 win-amd64-3.6\Release\QuantLib/quantlib_wrap.obj /GR /FD /Zm250 /EHsc /bigobj /MD quantlib_wrap.cpp 信息:Boost.Config 比您的编译器版本旧 - 可能不会发生任何坏事 - 但您可能希望寻找更新的 Boost 版本。定义 BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE 以禁止显示此消息。C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED ,ID=2 /MANIFESTUAC:NO (....)/OUT:build\lib.

链接:致命错误 LNK1104:不可能 d'ouvrir le fichier 'QuantLib-vc141-x64-mt.lib'

错误:命令 'C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\link.exe' 失败,退出状态为 1104"

希望有人可以帮助解决这个问题。

0 投票
0 回答
288 浏览

python-3.x - Quantlib / Quantlib SWIG 安装失败:未定义符号

想知道你是否可以帮助我。

我正在尝试安装 Anaconda / Boost / Quantlib 以进行金融市场概念验证(使用 Spark 确定交易对手潜在的远期风险敞口)。

我正在使用 AWS EC2 Linux 2(x86 - 64 位)实例。

尝试在 Python 中加载 QuantLib 模块时遇到导入错误(_QuantLib.cpython-37m-x86_64-linux-gnu.so:未定义符号:_ZTIN8QuantLib5EventE),我找不到解决方案。

请让我知道您需要哪些进一步的信息来帮助诊断问题。我期待着您的回音。

安装测试的输出

我可以成功编译和运行“示例”目录中的 Quantlib 文件,例如 CDS、Bermudianswaption。

但是我不能在 Python 中导入 Quantlib:

找到“_QuantLib.cpython-37m-x86_64-linux-gnu.so”文件

安装命令

QUANTLIB 配置库

在此先感谢您的帮助。:-)

0 投票
1 回答
112 浏览

python - 如何在 QuantLib-Python 中为 Cliquet 期权定价?

我使用 pip 安装了 QuantLib-Python 1.18,并且能够成功地为各种选项定价。

但是,Cliquet 选项给了我以下错误:

这是我的安装问题,还是包的问题?如果是后者,有没有办法轻松地将 CliquetOption 和 AnalyticCliquetEngine 添加到我的包中?它们似乎都在基本的 QuantLib(非 python)包中可用。

如果没有这些模块,是否有另一种方法可以为 Cliquet 选项定价?

0 投票
1 回答
334 浏览

python - Quantlib-python 没有定义构造函数

我正在尝试实例化类 Forward 如下

Python 控制台给了我这个

这个类是从 C++ 转换到 python 的吗?

0 投票
2 回答
511 浏览

python - Quantlib:TimeUnit“天”的日期提前功能-错误还是功能?

关于 C++ Quantlib 中的 date-advance 函数,我有一个小问题。我想为具有付款工作日约定“之前”的产品使用付款抵消(以天为单位),但付款日期始终设置为周末后的第一天,而付款日期在周末。这是因为,当“天”被移交给“提前”功能时,“提前”功能会忽略工作日约定,请参见此处:

这是故意实施的吗?ps“调整”功能正确使用工作日约定!