[R] help on timeseries

Frederic Andrieu fandrieu at mango-solutions.com
Thu Dec 9 12:07:56 CET 2010


Hi Raymond,

Try that.

con <- textConnection("
     date        Px       200MA     Signals
2005-09-15   26.27  25.83865    1
2005-09-16   26.07  25.83275    1
2005-09-19   26.00  25.82730    1
2005-09-20   25.84  25.82035    1
2005-09-21   25.49  25.81115   -1
2005-09-22   25.34  25.80250   -1
2005-09-23   25.27  25.79205   -1
2005-09-26   25.27  25.78225   -1
2005-09-27   25.34  25.77355   -1
2005-09-28   25.67  25.76565   -1
2005-09-29   25.94  25.75920    1
2005-09-30   25.73  25.75230   -1
2005-10-03   25.50  25.74400   -1
2005-10-04   24.98  25.73410   -1
2005-10-05   24.67  25.72270   -1
2005-10-06   24.73  25.71100   -1
2005-10-07   24.59  25.69910   -1
2005-10-10   24.46  25.68635   -1
2005-10-11   24.41  25.67415   -1
2005-10-12   24.30  25.66090   -1
2005-10-13   24.59  25.64935   -1
2005-10-14   24.67  25.63890   -1
2005-10-17   24.53  25.62795   -1
2005-10-18   24.57  25.61710   -1
2005-10-19   25.09  25.60835   -1
2005-10-20   24.79  25.59840   -1
2005-10-21   24.78  25.58855   -1
2005-10-24   25.10  25.58070   -1
2005-10-25   25.03  25.57185   -1
2005-10-26   25.11  25.56375   -1
2005-10-27   24.85  25.55410   -1
2005-10-28   25.53  25.55040   -1
2005-10-31   25.70  25.54830    1
2005-11-01   25.96  25.54650    1
2005-11-02   26.46  25.54890    1
2005-11-03   26.44  25.55180    1
2005-11-04   26.66  25.55685    1
")
# wrap the text from the email with textConnection
egData <- read.table(con, header = TRUE, as.is = TRUE)
# a data frame

egData$StartStop <- c(0, diff(egData$Signals))
# column flagging changes in value
logic.start <- egData$StartStop == -2
# logical vector showing position where Signal becomes -1
logic.stop <- c(c(egData$StartStop == 2)[-1], FALSE)
# logical vector showing position BEFORE position
#  where Signal becomes 1

signal.df <- data.frame(Start = egData$date[logic.start], 
  Stop = egData$date[logic.stop])
signal.df
# data frame of start and stop dates

Best regards,

Frederic


Frederic Andrieu
 
T: +44 (0)1249 767700
F: +44 (0)1249 767707
M: +44 (0)7813526123
www.mango-solutions.com



-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of cameron
Sent: 07 December 2010 17:42
To: r-help at r-project.org
Subject: [R] help on timeseries


i have time series of momentum signal.  I want to get the date of each of the
"-1"  signal period.  for example , the first period of -1 signal begins on
2005-9-21 and ends on 2005-9-28.  2nd period of -1 signal begins on
2005-09-30 and ends on 2005-10-28.


Thx
Cameron

     date        Px       200MA     Signals
2005-09-15   26.27  25.83865    1
2005-09-16   26.07  25.83275    1
2005-09-19   26.00  25.82730    1
2005-09-20   25.84  25.82035    1
2005-09-21   25.49  25.81115   -1
2005-09-22   25.34  25.80250   -1
2005-09-23   25.27  25.79205   -1
2005-09-26   25.27  25.78225   -1
2005-09-27   25.34  25.77355   -1
2005-09-28   25.67  25.76565   -1
2005-09-29   25.94  25.75920    1
2005-09-30   25.73  25.75230   -1
2005-10-03   25.50  25.74400   -1
2005-10-04   24.98  25.73410   -1
2005-10-05   24.67  25.72270   -1
2005-10-06   24.73  25.71100   -1
2005-10-07   24.59  25.69910   -1
2005-10-10   24.46  25.68635   -1
2005-10-11   24.41  25.67415   -1
2005-10-12   24.30  25.66090   -1
2005-10-13   24.59  25.64935   -1
2005-10-14   24.67  25.63890   -1
2005-10-17   24.53  25.62795   -1
2005-10-18   24.57  25.61710   -1
2005-10-19   25.09  25.60835   -1
2005-10-20   24.79  25.59840   -1
2005-10-21   24.78  25.58855   -1
2005-10-24   25.10  25.58070   -1
2005-10-25   25.03  25.57185   -1
2005-10-26   25.11  25.56375   -1
2005-10-27   24.85  25.55410   -1
2005-10-28   25.53  25.55040   -1
2005-10-31   25.70  25.54830    1
2005-11-01   25.96  25.54650    1
2005-11-02   26.46  25.54890    1
2005-11-03   26.44  25.55180    1
2005-11-04   26.66  25.55685    1

-code

	library(tseries) 
	library(timeSeries)
	
	msft <- as.timeSeries(get.hist.quote(instrument="MSFT", start="1986-03-31",
end="2008-09-10", quote=c("C"), provider="yahoo", retclass="zoo")) 
	msft <- cbind(msft,as.timeSeries(rollapply(as.zoo(msft
),width=200,mean,align="right")))
	msft <- cbind(msft,NA)
	msft[,3] <- (ifelse(msft[,1]>msft[,2],1,-1))

	print(msft)

-- 
View this message in context: http://r.789695.n4.nabble.com/help-on-timeseries-tp3076866p3076866.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
R-help at 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.
LEGAL NOTICE
This message is intended for the use o...{{dropped:9}}



More information about the R-help mailing list