Quantstrat中的多符号

时间:2017-01-12 13:23:45

标签: r quantstrat back-testing

首先,我要感谢社区的支持和反应。

我在多仪器上应用简单的MA交叉策略时遇到了问题。

基本上,我维护了一个csv价格文件的数据库。我使用此代码检索这些文件

getdata <- function(ticker){ 
  d <- read.csv(ticker, header=TRUE, sep = ",")
  d[,1] <- as.Date(as.character(d[,1]), tz ="GMT", format="%m/%d/%Y")
  ticker <- as.xts(d[,-1], order.by =d[,1] )
  }

然后我导入数据,创建有效的xts对象并使用正确的索引

GBPUSD <- getdata("GBPUSD.csv")
 AUDUSD <- getdata("AUDUSD.csv")
 EURUSD <- getdata("EURUSD.csv")

然后我运行通常的初始化过程

### Initialisation
currency(c("USD","EUR","AUD","GBP"))
exchange_rate(c("EURUSD","GBPUSD","AUDUSD"),"USD")
symbols <- c("EURUSD","GBPUSD","AUDUSD")

init.date <- "2001-09-04"    #date d'initialisation de l'environement
start.date <- "2001-09-05"       #1ere date du jeu de donnée
end.date <- "2017-01-04"         #dernière date du jeu de donnée
initial.capital <- 1000000      #Capital de départ
model <- strategy("model")      

portfolio.st <- account.st <- strat.st <- "model"

if (!exists('.blotter')) .blotter <- new.env()
if (!exists('.strategy')) .strategy <- new.env()

然后(我怀疑问题在这里),我启动了投资组合。如果我启动投资组合,我直接输入工具的名称,就像它正常工作一样。

initPortf(portfolio.st,        #nom du book
          symbols = "EURUSD",  #list des instruments
          initDate=init.date,  #date de départ du book
          currency='USD')     #devise de référence du book

但是我想在&#34;符号&#34;上应用策略,而不是按仪器运行它。我知道我应该写下面但不幸的是,它不起作用。

initPortf(portfolio.st,        #nom du book
          symbols = symbols,  #list des instruments
          initDate=init.date,  #date de départ du book
          currency='USD')     #devise de référence du book

最后,这就是我找不到任何逻辑的地方,如果我像这样开发投资组合,它可以使用2台仪器,而不是3台

initPortf(portfolio.st,        #nom du book
          symbols = c("EURUSD","GBPUSD"),  #list des instruments
          initDate=init.date,  #date de départ du book
          currency='USD')     #devise de référence du book

我收到的错误消息是

applyStrategy("model", portfolios = portfolio.st, symbols = symbols)
Error in sum(x[beg:(n + beg - 1)]) : 
  invalid 'type' (character) of argument

再次感谢您的支持。

尼古拉斯

0 个答案:

没有答案