robertruc
我在使用"fOptions"计算二项式期权定价,需要计算步数从n=50到n=500步的各步价格,但是输入n=seq(50,500),并没有算出450个价格,
请教哪位有应用此包的经验,如何计算?谢谢.
yihui
我对金融还真不熟悉……你用的哪个函数?
hangover
[quote]引用第0楼robertruc于2007-04-08 11:20发表的“请教关于包"fOptions"使用”:二项式期权定价[/quote]
没用过。俺都用FDM.
robertruc
谢谢回复。
上载“fOptions", 使用函数
CRRBinomialTreeOption(TypeFlag = c("ce", "pe", "ca", "pa"), S, X,
Time, r, b, sigma, n, title = NULL, description = NULL)
其中的n指计算步数,但我需要计算步数从50到500的价格,不知如何操作?
yihui
看帮助,n不能用向量,如果你要得到一系列价格,那么对n做个循环就好了。
robertruc
我用了下述命令,确实可行.
for(n in 50:500) print(x=CRRBinomialTreeOption(TypeFlag = "ce", S = 100, X = 95,Time=0.5,r=0.09,b=0.06,sigma=0.2,n=n) )
但新的问题是:上述命令使R连续计算出所有值,还是得不出价格向量
是否因为该函数输出时无法输出向量?
谢谢
abel
unlist(lapply(50:500, function(x) CRRBinomialTreeOption(TypeFlag = "ce", S = 100, X = 95,Time=0.5,r=0.09,b=0.06,sigma=0.2,n=x)@price))
也许会符合您的要求,不过计算量应该比较大吧,等待结果需要时间。
yihui
还是基础不牢啊,abel的式子不知道你能否看懂,他是为了省事,所以只用了一行语句(其实sapply应该会好一些,不用再unlist)
笨办法就是每计算一个结果都添加到一个向量中,比如先x=NULL,再x=c(x, your.result);或者干脆先定义一个合适长度的向量x,每次循环都赋值给相应的元素x[j]=your.result。
基础语句还是要好好看一看的。
robertruc
式子很好用,也确实没看懂。谢谢指点,学到不少东西。