On Tue, 30 Dec 2014, jim holtman wrote:

Try this:

x <- read.csv(text = "Date,Open,High,Low,Close,Volume,Adj Close
+ 2014-12-26,162.27,163.09,162.01,162.34,1912200,162.34
+ 2014-12-24,162.88,162.99,161.61,161.82,1868100,161.82
+ 2014-12-23,162.23,162.90,161.61,162.24,4043300,162.24
+ 2014-12-22,158.33,161.91,158.33,161.44,4682500,161.44", as.is = TRUE)
require(lubridate)
x$Date <- ymd(x$Date)  # convert to a date field
x <- x[order(x$Date), ]  # sort by date
x$two_day <- filter(x$Close, c(0.5, 0.5))  # compute moving average
x
       Date   Open   High    Low  Close  Volume Adj.Close two_day
4 2014-12-22 158.33 161.91 158.33 161.44 4682500    161.44  161.84
3 2014-12-23 162.23 162.90 161.61 162.24 4043300    162.24  162.03
2 2014-12-24 162.88 162.99 161.61 161.82 1868100    161.82  162.08
1 2014-12-26 162.27 163.09 162.01 162.34 1912200    162.34      NA

A canned approach for reading and filtering the data is also available in the "zoo" package. The read.zoo() function can directly create a "zoo" time series object with "Date" time index:

R> z <- read.zoo(text = "Date,Open,High,Low,Close,Volume,Adj Close
+  2014-12-26,162.27,163.09,162.01,162.34,1912200,162.34
+  2014-12-24,162.88,162.99,161.61,161.82,1868100,161.82
+  2014-12-23,162.23,162.90,161.61,162.24,4043300,162.24
+  2014-12-22,158.33,161.91,158.33,161.44,4682500,161.44",
+  header = TRUE, sep = ",", format = "%Y-%m-%d")

And then rollmean() can compute rolling means for all variables/columns:

R> rollmean(z, 2)
              Open    High    Low  Close  Volume Adj.Close
2014-12-22 160.280 162.405 159.97 161.84 4362900    161.84
2014-12-23 162.555 162.945 161.61 162.03 2955700    162.03
2014-12-24 162.575 163.040 161.81 162.08 1890150    162.08

You can additionally supply the fill = NA argument if you want trailing NAs for 2014-12-26.


Jim Holtman
Data Munger Guru

What is the problem that you are trying to solve?
Tell me what you want to do, not how you want to do it.

On Sun, Dec 28, 2014 at 8:31 AM, Rolf Edberg <ro...@algonet.se> wrote:

Thank you for trying to help!!



I am very new to the R code. So need help with every step.



The goal is to use technical analysis on stock prices. Not only MA but if
I understand the principle with that I hope I can use the other techniques
as well.



I found R-adamant but do not know how to use it.



I downloaded 4 days of IBM prices from yahoo in a csv-file..

I don?t know what ?dput? is.



Here is the IBM prices in a text string:

Date,Open,High,Low,Close,Volume,Adj Close

2014-12-26,162.27,163.09,162.01,162.34,1912200,162.34

2014-12-24,162.88,162.99,161.61,161.82,1868100,161.82

2014-12-23,162.23,162.90,161.61,162.24,4043300,162.24

2014-12-22,158.33,161.91,158.33,161.44,4682500,161.44



I would like the date in sorted with the oldest at the top.



I would like to add a column with the technical indicator, in this case
2-days MA of Close.



And I would like to have the result in a csv file. I will use the file in
another program.



Thank you !!



Rolf



*From:* jim holtman [mailto:jholt...@gmail.com]
*Sent:* Sunday, December 28, 2014 4:45 PM
*To:* Rolf Edberg
*Cc:* R mailing list
*Subject:* Re: [R] Moving average



could not read the data you posted; try 'dput' next time.



If it is just a 2 day moving average, try the 'filter' function:



> x <- 1:20

> x

 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20

> filter(x, c(.5,.5))

Time Series:

Start = 1

End = 20

Frequency = 1

 [1]  1.5  2.5  3.5  4.5  5.5  6.5  7.5  8.5  9.5 10.5 11.5 12.5 13.5 14.5
15.5 16.5 17.5 18.5 19.5   NA

>





Jim Holtman
Data Munger Guru

What is the problem that you are trying to solve?
Tell me what you want to do, not how you want to do it.



On Sun, Dec 28, 2014 at 6:56 AM, Rolf Edberg <ro...@algonet.se> wrote:



How do I add a new column with 2-days moving average (from
r-adamant(https://github.com/TotallyBullshit/radamant)) on IBM prices in a
csv-file (ibm.csv) and then save all in a new csv file(ibm2.csv)?




Prices





Date

Open

High

Low

Close

Volume

Adj Close*


Dec 26, 2014

162.27

163.09

162.01

162.34

1,912,200

162.34


Dec 24, 2014

162.88

162.99

161.61

161.82

1,868,100

161.82


Dec 23, 2014

162.23

162.90

161.61

162.24

4,043,300

162.24


Dec 22, 2014

158.33

161.91

158.33

161.44

4,682,500

161.44


Dec 19, 2014

157.49

160.41

157.49

158.51

8,864,900

158.51




        [[alternative HTML version deleted]]

______________________________________________
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.




        [[alternative HTML version deleted]]

______________________________________________
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.

______________________________________________
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.

Reply via email to