c语言股票最大收益_应用ROC函数计算多支股票收益率

有时候需要计算同一个data frame中的多支股票的收益率,实现这一目的最鲁莽的做法是对列进行循环。这个方法有失美观且不够高效。显式循环是应用R语言的大忌之一,所以才有了*apply族函数的诞生,可是有时候,*apply函数也不是必要的。比如在计算多支股票收益率的时候,就可以用TTR包中的ROC函数代替。> require(quantmod)

> symbols < -c('FNMIX','DBLTX','AGG','^GSPC')

> getSymbols(symbols, src="yahoo", from="2012-01-01", to=Sys.Date())

[1] "FNMIX" "DBLTX" "AGG" "GSPC"

> y < - merge(Ad(FNMIX), Ad(DBLTX), Ad(AGG), Ad(GSPC))

> head(ROC(y))

FNMIX.Adjusted DBLTX.Adjusted AGG.Adjusted GSPC.Adjusted

2012-01-02 NA NA NA NA

2012-01-03 -0.001278773 0.000000000 -0.0013740670 0.000187914

2012-01-04 -0.001280410 0.000000000 0.0013740670 0.002939385

2012-01-05 -0.001282051 0.000922084 0.0008235348 -0.002540185

2012-01-08 -0.001283697 0.000000000 -0.0008235348 0.002259128

2012-01-09 -0.001285347 0.001841621 -0.0002746624 0.008846519如果你细看ROC函数的内容:> ROC

function (x, n = 1, type = c("continuous", "discrete"), na.pad = TRUE)

{

x < - try.xts(x, error = as.matrix)

type

if (is.xts(x)) {

if (type == "discrete") {

roc

}

if (type == "continuous") {

roc

}

reclass(roc, x)

}

else {

NAs

if (na.pad) {

NAs

}

if (type == "discrete") {

roc

1)

}

if (type == "continuous") {

roc

}

return(roc)

}

}

会发现ROC主要调用了base包中的log函数和diff函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值