繁体   English   中英

RQuantlib 和 Mac OS X 10.8.2

[英]RQuantlib and Mac OS X 10.8.2

我是 Mac OS X、R 和 C++ 的新手。 听起来不错,不是吗?

我需要使用 RQuantLib,因为我想在 R 中使用 QuantLib 包的一些定价函数部分,所有这些都在 Mac OS X 驱动的环境中。

我已经正确安装了 QuantLib。 我已经询问了官方 QuantLib 邮件列表,我们似乎已经得出结论,我遇到的问题与我的 QuantLib 安装无关,这似乎没问题且配置正确。

所以,我转向 R 来尝试解决这个问题。 每当我尝试从 R 中运行 ZeroCouponBond,复制并粘贴官方文档提供的第一个示例时,我都会收到以下错误:

"Error in DiscountCurve.default(discountCurve.param, list(flat = 0.05)) : 
cannot find function errorOccured"

现在,我将排除任何与语法相关的问题,因为我正在复制官方帮助中的相同示例。

我不知道我做错了什么,但我知道我需要不惜一切代价找到解决方案。 我已经安装了 Rcpp,配置看起来真的没问题。 只有一个我无法找到答案的问题:在我的理解中,RQuantLib 基本上充当了 QuantLib 和 R 之间的链接。如果这是正确的,我怎么能告诉 RQuantLib 在哪里寻找 libQuantLib.a,即由安装 QuantLib 本身时执行的“make && sudo make install”命令产生的编译库?

是的,所以,我终于设法让它工作了。

首先,我想说,如果提供了一个彻底的、逐步的安装过程,事情会容易得多。 我承认我是个新手,但我认为其他第一次接触 R 的人可能会遇到类似于我必须克服的困难。

无论如何,这就是我所做的:

  • 我已经从 cran.r-project.org 下载了RcppRQuantLib的 .tar.gz
  • 我已经编译它们并从 R 环境中安装它们。 这是我犯错误的地方。 事实上,我试图通过从终端调用configure安装脚本来编译它们; 然而,正如 Dirk 所说, config脚本寻找 QuantLib 的quantlib-config脚本,我不知道告诉configure脚本正确的 QuantLib 路径的正确语法。 从 R 执行程序(只需安装包)可以解决任何问题,因为所有依赖项都已正确定位和加载

所以,差不多就是这样:只需像使用二进制版本一样安装 .tar.gz包,一切都应该正常工作。

当然,我还是很好奇理解:

  • 如果可以从终端编译Rcpp和RQuantLib;
  • 为什么 Mac OS X 的二进制版本在我的系统上不起作用,即:为什么我必须从源代码开始编译?

非常感谢任何愿意回答我(可能是幼稚和愚蠢的)问题的人。 我很想多了解一点!

谢谢!

RQuantLib 包使用名为configure的工具在包构建时确定补丁。 它查找脚本quantlib-config ,从中了解libQuantLib.a的位置。

首先,按照http://quantlib.org/install/macosx.shtml 上的说明安装 boost( brew install boost ),然后brew install boost Quantlib(目前为 1.7.1):

cd QuantLib-1.x.y
./configure --enable-static --with-boost-include=/opt/local/include/ \
            --with-boost-lib=/opt/local/lib/ --prefix=/opt/local/
make && sudo make install

make需要一些时间(~1 小时)。

然后在RRstudio ,安装包RcppRQuantlib 后者需要type="source"因为只有源包可用。

此时,您应该能够使用RQuantlib 美式期权价值(SPY 截至 4/1/2016,到期日 7/15/2016)可以在R中计算为

AmericanOption("put", strike=206, volatility=0.1525, underlying = 206.92, 0.021, 0.003, 73/252, engine="CrankNicolson")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM