问题标签 [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.
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 的编译版本?有没有办法控制它?
python - QuantLib-Python 中的现金结算掉期期权定价
我正在尝试QuantLib
使用 swigged python 版本为现金结算的交换定价,代码如下:
在现金结算的情况下代码失败Settlement::checkTypeAndMethodConsistency
,抛出异常:
如果您在交换实例化中替换ql.Settlement.Cash
为,则相同的代码可以正常工作。ql.Settlement.Physical
有没有办法从 Python 设置结算方法?我看到 Python 中只有两个可用的构造函数,并且没有一个带settlementMethod
参数:
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 中。
- 在 Visual Studio 中构建 QuantLib C++ 代码 (Debug|x64)
- 将以下内容添加到
quantlib.i
SWIG 文件中(将调试 C++ 与发布 python 结合起来)
python setup.py wrap
python setup.py build --debug
python setup.py install
- 启动一个 python 会话并
import QuantLib
- 在 Visual Studio 中,将调试器附加到 python 进程
- 设置断点。
- 在 python 中执行一条语句,该语句应该高于断点(在 VS2019 中,这个断点没有被命中)。
我可以从模块窗口中看到没有为 QuantLib 加载任何符号。如果我查看站点包中的 QuantLib 文件夹,我可以看到 PDB 文件确实存在。
以前有没有其他人遇到过这个问题?知道什么可能导致这里的问题吗?
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 日,我认为这是导致我的问题的原因。我仍然对为什么以及如何解决这个问题感到困惑。
python - Heston校准quantlib python中的最大曲线时间误差
我正在运行从源 SWIG python 1.16 版本的 QuantLib 编译。
我一直在尝试按照这个例子校准赫斯顿模型。我目前只使用 QL 校准来测试它,然后再尝试其他校准。我需要时间相关参数,所以我使用PiecewiseTimeDependentHestonModel
.
这是我的代码的相关部分。
辅助功能:
市场数据:
和脚本本身:
当我运行最后一行时,我收到以下错误消息:
RuntimeError:时间(1.42466)已超过最大曲线时间(1.00274)
我不明白它如何尝试为超过 1 年的价格定价,因为辅助曲线和远期曲线都是在同一组日期上定义的。
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"
希望有人可以帮助解决这个问题。
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 配置库
在此先感谢您的帮助。:-)
python - 如何在 QuantLib-Python 中为 Cliquet 期权定价?
我使用 pip 安装了 QuantLib-Python 1.18,并且能够成功地为各种选项定价。
但是,Cliquet 选项给了我以下错误:
这是我的安装问题,还是包的问题?如果是后者,有没有办法轻松地将 CliquetOption 和 AnalyticCliquetEngine 添加到我的包中?它们似乎都在基本的 QuantLib(非 python)包中可用。
如果没有这些模块,是否有另一种方法可以为 Cliquet 选项定价?
python - Quantlib-python 没有定义构造函数
我正在尝试实例化类 Forward 如下
Python 控制台给了我这个
这个类是从 C++ 转换到 python 的吗?
python - Quantlib:TimeUnit“天”的日期提前功能-错误还是功能?
关于 C++ Quantlib 中的 date-advance 函数,我有一个小问题。我想为具有付款工作日约定“之前”的产品使用付款抵消(以天为单位),但付款日期始终设置为周末后的第一天,而付款日期在周末。这是因为,当“天”被移交给“提前”功能时,“提前”功能会忽略工作日约定,请参见此处:
这是故意实施的吗?ps“调整”功能正确使用工作日约定!