量子策略中的好奇问题。 我试图将标准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)