Guy Yollin的QuantStrat I讲座问题

时间:2013-06-15 05:28:51

标签: r quantstrat blotter

我一直在经历Guy的量子讲座(下面的链接),并且在反复尝试重新执行代码之后,我得到一些初始错误,这些错误阻止了讲座中的大多数后续代码的运行。 / p>

以下是代码(从讲座中复制,只需很少的重新安排):

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

当我使用Windows 64位时,我不得不直接下载吸墨纸,但是尽管从讲座中复制了代码,但我不确定为什么我会收到这些错误。我的搜索努力表明,一部分吸墨纸演变成了FinancialInstrument包,但即使在清除内存和加载FinancialInstruments之后,我仍然会遇到同样的错误。

任何帮助都将受到高度赞赏。

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

2 个答案:

答案 0 :(得分:7)

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

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

过去,FinancialInstrument用于在.instrument中创建.GlobalEnv环境(之后期望它存在)。几年前,我对其进行了更改,以便.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()中的所有内容,而不会破坏任何包的代码。

答案 1 :(得分:3)

Guy Yollin的作品是很好的学习材料,但不幸的是它们有点过时(2011)。在过去的两年里,对于印记,量子和其他软件包进行了很多改动,盖伊的工作表中的大部分代码将不再如此。

就quantstrat包而言,您可能需要查看芝加哥R / Finance 2013会议的表格;你可以在http://www.rinfinance.com/agenda/2013/workshop/Humme+Peterson.pdf获得一份副本。

更新:Guy Yollin已将其幻灯片更新至2013年8月的最新量化版,可在此处http://www.r-programming.org/papers