I am echoing this question. The only thing I can think of is to do however many separate runSums, and then just loop across columns. It's relevant to me due to John Ehlers's algorithms having a dynamic lookback period. Thanks.
On Fri, Aug 8, 2014 at 2:49 AM, amarjit chandhial <[email protected]> wrote: > > Hello, > > > I am cross-posting to R-finance as this is finance-orientated. > > > > Amarjit > > > > ----Original message---- > >From : [email protected] > Date : 07/08/2014 - 14:32 (GMTST) > To : [email protected] > Subject : [R] dynamic runSum > > Hello, > runSum calculates a running sum looking back a fixed distance n, e.g. 20. > How do I calculate a dynamic runSum function for an xts object? > In > otherwords, I want to calculate a running sum at each point in time > looking back a variable distance. In this example, values governed by > the vector VL. > Here's a minimum reproducible example: > > library(quantstrat) > symbols = c('^GSPC') > > start.date <- as.Date("2010-01-01") > end.date <- as.Date("2013-12-31") > > getSymbols(symbols, from=as.character(start.date), > to=as.character(end.date),adjust=T) > > "acF1" <- function(x, n1=5, n2=10, n3=20, nacF1=25, n0=20, ...) { > var1 <- x - lag(x,1,na.pad=T) > var2 <- runSD(x, n=n1, sample=TRUE, cumulative=FALSE) > var3 <- runMean(var2, n=n2, cumulative=FALSE) > VL <- ifelse( trunc(n3/(var2/var3))>nacF1, nacF1, trunc(n3/(var2/var3))) > p_pos <- ifelse(var1>=0, var1, 0) > out1 <- runSum(p_pos, n=n0, cumulative=FALSE) > > res <- cbind(var1, var2, var3, VL, p_pos, out1) > colnames(res) <- c("var1","var2","var3","VL", "p_pos", "out1") > > reclass(res) > } > > > acf1 <- acF1( GSPC[,c("GSPC.Close")], n1=5, n2=10, n3=20, nacF1=25, n0=20) > acf1 > > > So on > 2010-02-02, I want runSum to be looking back 23 points as governed by VL , > not 20 points > 2010-02-03, I want runSum to be looking back 24 points as governed by VL, > not 20 points > etc etc > 2013-12-31, I want runSum to be looking back 25 points as governed by VL, > not 20 points > > > Amarjit > > > ______________________________________________ > [email protected] mailing list > 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. > > _______________________________________________ > [email protected] mailing list > https://stat.ethz.ch/mailman/listinfo/r-sig-finance > -- Subscriber-posting only. If you want to post, subscribe first. > -- Also note that this is not the r-help list where general R questions > should go. _______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-finance -- Subscriber-posting only. If you want to post, subscribe first. -- Also note that this is not the r-help list where general R questions should go.
