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)
ret<-diff(log(a))
This will give you the geometric returns - return follow a lognormal distribution (lower boundary is -100% since prices are always non-negative), so the ln(prices)
follows a normal distribution (therefore you might see returns smaller than -1 or -100%).
For the "normal" range of returns, the difference between the [P(t+1)-P(t)]/P(t)
and the LN(P(t+1)/P(t))
should be negligible. I hope this helps.