Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to calculate returns from a vector of prices?

Tags:

r

I have to calculate the return of a vector that gives a historical price series of a stock. The vector is of a form:

a <- c(10.25, 11.26, 14, 13.56) 

I need to calculate daily gain/loss (%) - i.e. what is the gain it has from 10.25 to 11.26 then from 11.26 to 14 etc.

Is there a function to calculate this automatically?

like image 357
blakc05 Avatar asked Aug 21 '11 20:08

blakc05


2 Answers

You may find the functions in quantmod relevant for your work:

> require(quantmod)
> Delt(a)
     Delt.1.arithmetic
[1,]                NA
[2,]        0.09853659
[3,]        0.24333925
[4,]       -0.03142857
like image 73
Chase Avatar answered Nov 07 '22 19:11

Chase


Using your sample data, I think you mean the following:

a <- c(10.25, 11.26, 14, 13.56) 
> diff(a)/a[-length(a)]
[1]  0.09853659  0.24333925 -0.03142857

diff returns the vector of lagged differences and a[-length(a)] drops the last element of a.

like image 35
Andrie Avatar answered Nov 07 '22 17:11

Andrie