r语言 - Guy Yollin的QuantStrat I讲座问题



我一直在阅读Guy的量子学讲座(链接如下),在多次尝试重新执行代码后,我得到了一些初始错误,这些错误阻止了讲座中大多数后续代码的运行。

下面是代码(从讲座中抄来的,稍微做了改动):

rm(list=ls(all=TRUE)) #added this to delete memory
library(quantstrat)
library(blotter) #added this hoping it would rectify the errors
library(FinancialInstrument) #added this hoping it would rectify the errors
# initialize portfolio, accounts and orders
qs.strategy <- "qsFaber"
initPortf(qs.strategy, 'SPY', initDate = '1997-12-31')
initAcct(qs.strategy, portfolios = qs.strategy, initDate = '1997-12-31', initEq= 1e6)

下面是我得到的错误:

1)

> initPortf(qs.strategy, 'SPY', initDate = '1997-12-31')
Error in exists(paste("portfolio", name, sep = "."), envir = .blotter,  : 
object '.blotter' not found

2)

> initAcct(qs.strategy, portfolios = qs.strategy, initDate = '1997-12-31', initEq= 1e6)
Error in exists(paste("account", name, sep = "."), envir = .blotter, inherits = TRUE) : 
object '.blotter' not found

我不得不直接下载blotter,因为我使用Windows 64位,但尽管从讲座中复制代码,我不确定为什么我得到这些错误。我的搜索工作表明,blotter的一部分演变成FinancialInstruments包,但即使在清除内存并加载FinancialInstruments后,我仍然得到相同的错误。

任何帮助都将是非常感激的。

讲座链接:http://www.r-programming.org/files/quantstrat-I.pdf

吸墨纸和量子包将东西存储在.GlobalEnv中(这是它们不在CRAN上的原因之一)。当您运行rm(list=ls(all=TRUE))时,您正在删除那些包期望能够在您的工作空间中找到的东西。为了使一切正常工作,您必须在globalenv()中放回几个环境。运行这两行代码后,我认为你的代码可以工作了。

.blotter <- new.env()
.strategy <- new.env()

在过去,金融工具用于在.GlobalEnv中创建.instrument环境(后来期望它存在)。几年前,我更改了它,使.instrument现在存储在FinancialInstrument名称空间中。由于这个更改是在Guy的幻灯片之后进行的,所以代码不兼容。幻灯片14-15应该改为

currency("USD")
getInstrument("USD")
stock("SPY", "USD")
getInstrument("SPY")

或者更接近他的原始代码,

get("USD", envir=FinancialInstrument:::.instrument)
get("SPY", envir=FinancialInstrument:::.instrument)

通过在包的命名空间中存储包级对象,用户可以自由地从globalenv()中删除所有内容,而不会破坏任何包的代码。

Guy Yollin的表格是优秀的学习材料,但不幸的是它们有些过时(2011)。在过去的两年里,blotter、quantstrat和其他软件包都做了很多改变,Guy的表格中的大部分代码将不再这样运行。

就量化一揽子计划而言,你可能想看看在芝加哥举行的R/Finance 2013会议上的表格;你可以在http://www.rinfinance.com/agenda/2013/workshop/Humme+Peterson.pdf上获得副本。

更新: Guy Yollin已经将他的幻灯片更新为2013年8月的最新量规,他们可以在这里获得http://www.r-programming.org/papers

相关内容

  • 没有找到相关文章