2012-11-20 91 views
1

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

我需要使用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" 

现在,我会排除任何syntax.related问题出来了,因为我” m复制官方帮助中出现的相同示例。

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

回答

0

RQuantLib软件包使用名为configure的工具,该工具确定包构建时的修补程序。它寻找quantlib-config的脚本,从中了解libQuantLib.a的位置。

+0

我很抱歉,但我无法找到中的配置工具RQuantLib软件包。不过,你认为我的诊断可能是正确的吗? RQuantLib无法在我的系统上找到QuantLib库是否存在问题? – Giovanni

+0

您是否可能会将* source *包和* binary *包混淆? * source *包明确包含'configure',否则它将无法在任何包含OS X的Unix-y系统上构建。 –

+0

正如我所说,我是一个新手,所以我很抱歉如果我已经那个错误。无论如何,回到我的问题,你有任何线索? – Giovanni

2

对,所以,我终于设法让它工作。

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

无论如何,这是我做过什么:

  • 我已经下载了名为.tar.gz 包都RcppRQuantLib从cran.r-project.org
  • 我已经编译它们从R环境中安装它们。这是我犯了一个错误的地方。实际上,我试图通过从终端调用configure安装脚本来编译它们;但是,正如Dirk所说,config脚本查找QuantLib的脚本quantlib-config,我不知道正确的语法以告知configure脚本正确的路径到QuantLib。执行来自R程序(由刚安装的软件包)整理出任何问题,因为所有的依赖正确定位并加载

所以,这是相当多了:只要安装名为.tar.gz 包就像你使用二进制版本一样,一切都应该正常工作。

当然,我还是很想了解:

  • 如果有可能从终端编译RCPP和RQuantLib;和
  • 为什么Mac OS X的二进制版本无法在我的系统上工作,即:为什么我必须从源代码开始编译?

非常感谢任何人愿意回答我的(可能天真愚蠢)的问题。我渴望更多地了解!

谢谢!

0

首先,在http://quantlib.org/install/macosx.shtml按照说明安装升压(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 

这需要一些时间(约1小时),为make

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

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

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