Description Usage Arguments Details Author(s) References See Also Examples
calculate simple or compound returns from prices
1 2 3 | Return.calculate(prices, method = c("discrete", "log"))
CalculateReturns(prices, method = c("discrete", "log"))
|
prices |
data object containing ordered price observations |
method |
calculate "discrete" or "log" returns, default discrete(simple) |
Two requirements should be made clear. First, the function
Return.calculate
assumes regular price data. In
this case, we downloaded monthly close prices. Prices can
be for any time scale, such as daily, weekly, monthly or
annual, as long as the data consists of regular
observations. Irregular observations require time period
scaling to be comparable. Fortunately,
to.period
in the xts
package, or
the aggregate.zoo
in the zoo
package supports supports management and conversion of
irregular time series.
Second, if corporate actions, dividends, or other
adjustments such as time- or money-weighting are to be
taken into account, those calculations must be made
separately. This is a simple function that assumes fully
adjusted close prices as input. For the IBM timeseries in
the example below, dividends and corporate actions are not
contained in the "close" price series, so we end up with
"price returns" instead of "total returns". This can lead
to significant underestimation of the return series over
longer time periods. To use adjusted returns, specify
quote="AdjClose"
in
get.hist.quote
, which is found in
package tseries
.
We have changes the default arguments and settings for
method
from compound
and simple
to
discrete
and log
and discrete
to avoid
confusing between the return type and the chaining method.
In most of the rest of PerformanceAnalytics
,
compound and simple are used to refer to the return
chaining method used for the returns. The default for this
function is to use discrete returns, because most other
package functions use compound chaining by default.
Peter Carl
Bacon, C. Practical Portfolio Performance Measurement
and Attribution. Wiley. 2004. Chapter 2
1 2 3 4 5 6 7 8 9 10 | ## Not run:
require(quantmod)
prices = getSymbols("IBM", from = "1999-01-01", to = "2007-01-01")
## End(Not run)
R.IBM = Return.calculate(xts(prices), method="discrete")
colnames(R.IBM)="IBM"
chart.CumReturns(R.IBM,legend.loc="topleft", main="Cumulative Daily Returns for IBM")
round(R.IBM,2)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.