Quantstrat add.indicator x = quote(Hi(mktdata))以某种方式无法识别列

时间:2017-05-19 02:55:03

标签: r quantstrat

量子策略中的好奇问题。 我试图将标准TTR函数的指示符添加到某些数据的高位。 代码段如下:

 add.indicator(strategy.st,name="runMax",
          arguments = list (x=quote(Cl(mktdata)),n=entry_period),
           label = "Max55")

那可行但是

add.indicator(strategy.st,name="runMax",
          arguments = list (x=quote(Hi(mktdata)),n=entry_period),
          label = "Max55")

没有。 我试过了

(x = quote(Cl(mktdata))

(X =引号(VO(mktdata))

(OP(mktdata))

哪一切都有效 并且

(X =引号(您好(mktdata))

(X =引号(罗(mktdata))

哪个没有。 有任何想法吗? 该数据是对谷歌的标准调用,并保存为Rdata。

错误如下:

Error in (function (x, n = 10, cumulative = FALSE)  : 
ncol(x) > 1. runMax only supports univariate 'x'

好奇,因为它适用于关闭数据。

完整代码:

require(quantstrat)
require(PerformanceAnalytics)

initDate = "1990-01-01"
from = "2007-01-01"
to = "2012-12-31"

options(width =70) # set the output width 

currency('USD')
Sys.setenv(TZ ="UTC")

require(quantmod)

symbols = c("MSFT")

load("~/R_backtrade_test/MSFT.Rdata")

stock(symbols,currency='USD',multiplier = 1)

tradeSize <- 100000
initEq <- tradeSize*length(symbols) 

strategy.st <- portfolio.st <- account.st <- "turtles"

rm.strat(strategy.st)

initPortf(portfolio.st,symbols = symbols,initDate = initDate,currency =       'USD')
initAcct(account.st,portfolios = portfolio.st,initDate =    initDate,currency = 'USD',initEq = initEq)
initOrders(portfolio.st,initDate = initDate)
strategy(strategy.st,store = TRUE)

strat <- getStrategy(strategy.st)

ATRperiod = 20
entry_period = 55
exit_period = 20

add.indicator(strategy.st,name="ATR",
          arguments = list(HLC=quote(HLC(mktdata)),n=ATRperiod),
          label = "ATR20")

add.indicator(strategy.st,name="runMax",
          arguments = list (x=quote(Hi(mktdata)),n=entry_period),label = "Max55")

test <- applyIndicators(strategy.st,mktdata= MSFT)
head(test,60)

0 个答案:

没有答案