Hello. I get the error message that there are no transactions/positions to chart despite the signals and rules that I inserted. Can someone please help?
rm(list = ls(.blotter), envir = .blotter) initdate <- "2010-01-01" from <- "2012-01-01" #start of backtest to <- "2017-31-12" #end of backtest Sys.setenv(TZ= "EST") #Set up environment for timestamps currency("USD") #Set up environment for currency to be used symbols <- c("RUT") #symbols used in our backtest getSymbols("^RUT",src="yahoo", from="2012-01-01", to="2017-12-31", periodicity="daily") stock(symbols, currency = "USD", multiplier = 1) #tells quanstrat what instruments present and what currency to use n <- 30 wma <- WMA(Cl(RUT), n=4, wts=c(1:4)) wmamaxt <- rollmaxr(wma, n, fill = NA) wmamint <- - rollmaxr(- wma, n, fill = NA) CNOwma <- function (RUT) {(wma - wmamint) / (wmamaxt - wmamint)} tradesize <-10000 #default trade size initeq <- 100000 #default initial equity in our portfolio strategy.st <- portfolio.st <- account.st <- "firststrat" #naming strategy, portfolio and account #removes old portfolio and strategy from environment rm.strat(portfolio.st) rm.strat(strategy.st) #initialize portfolio, account, orders and strategy objects 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) add.indicator(strategy = strategy.st, name = 'CNOwma', arguments = list(x = quote(Cl(mktdata)), n=4), label = 'CNOwma4') add.signal(strategy.st, name = "sigThreshold", arguments = list(column = "CNOwma4", threshold = 0.6, relationship = "gt", cross = TRUE), label = "longthreshold") add.signal(strategy.st, name = "sigThreshold", arguments = list(column = "CNOwma4", threshold = 0.6, relationship = "lt", cross = TRUE), label = "shortthreshold") add.rule(strategy.st, name = "ruleSignal", arguments = list(sigcol = "longthreshold", sigval = TRUE, orderqty = "all", ordertype = "market", orderside = "long", replace = FALSE, prefer = "Open"), osFUN = IKTrading::osMaxDollar, tradeSize = tradesize, maxSize = tradesize, type = "enter") add.rule(strategy.st, name = "ruleSignal", arguments = list(sigcol = "shortthreshold", sigval = TRUE, orderqty = "all", ordertype = "market", orderside = "long", replace = FALSE, prefer = "Open"), type = "exit") add.rule(strategy.st, name = "ruleSignal", arguments = list(sigcol = "shortthreshold", sigval = TRUE, orderqty = "all", ordertype = "market", orderside = "short", replace = FALSE, prefer = "Open"),osFUN = IKTrading::osMaxDollar, tradeSize = tradesize, maxSize = tradesize, type = "enter") add.rule(strategy.st, name = "ruleSignal", arguments = list(sigcol = "longthreshold", sigval = TRUE, orderqty = "all", ordertype = "market", orderside = "short", replace = FALSE, prefer = "Open"), type = "exit") out <- applyStrategy(strategy = strategy.st, portfolios = portfolio.st) updatePortf(portfolio.st) daterange <- time(getPortfolio(portfolio.st)$summary)[-1] updateAcct(account.st, daterange) updateEndEq(account.st) for(symbol in symbols){ chart.Posn(Portfolio = portfolio.st, Symbol = symbol, TA= c("add_SMA(n=50, col='blue')", "add_SMA(n=200, col='red')")) } ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.