#Use the indexes of S in a sapply function. N <- 10 S <- sample(c(0,1), size=N, replace=TRUE) v1 <- sapply(c(1:N-1), function(i) S[i]&&S[i+1])
# Then v2 <- (P > m) # And I guess you can fill up the rest. Beware of the boundary condition (the NA in v1) Cheers, jcb! _______________________ http://twitter.com/jcborras On Fri, Apr 8, 2011 at 5:30 AM, Worik R <wor...@gmail.com> wrote: > Friends. > > I cannot simplify this much, and I think the loop is unavoidable. As a > recovering C programmer I want to avoid loops and in cases like this I > almost allways can by using an apply function. But I suspect in this case > there is nothing I can do. > > It is a finance example where a price series is compared to a moving > average. If the price goes above the average, plus a bit, buy the > security. If we are holding the security and the price dips below the > moving average sell it. > > P is the series of prices > > m is the moving average series > > S <- P>(m*1.005) > S[S]<-1 > > Now S is my signal it is 1 when P > m plus a margin of 0.005 x m > > But now I need to control when S goes from 1 to 0. As far as I can tell > this is the only way... > > for(i in 2:length(S)){ > if(S[i]==0 && S[i-1] == 1){ > ## Was long, now short. SHould I be short? Is P>m still? > if(P[i] > m[i]){ > ## Stay long > S[i] <- 1 > } > } > } > > As I mentioned I am a recovering C programmer, so I have a buit in loop > reflex, but I am struggling to adapt. But this one has me beat! Can anyone > help? > > cheers > W > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org 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. > ______________________________________________ R-help@r-project.org 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.