Hot answers tagged

7

Arithmetic returns allow for easier cross-sectional aggregation and log returns allow for easier time-aggregation. The reason people use log returns (for equities) is that they are approximately invariant and hence easier to work with in estimating distributions. Meucci does better justice in describing invariance here. The basic idea (again, for equities) ...


6

Basically, prices usually have a unit root, while returns can be assumed to be stationary. This is also called order of integration, a unit root means integrated of order 1, I(1), while stationary is order 0, I(0). Time series that are stationary have a lot of convenient properties for analysis. When a time series is non-stationary, then that means the ...


5

The correct answer has some intuition though it doesn't generalize to continuous time very easily: Think about the paper below like this: $Var(X+Y) = Var(X) + Var(Y) + 2Cov(X,Y)$ The generalization is slightly hard because the dynamics of $\mu$ and $\sigma^2$ could be dependent for arbitrary returns. You can use a GMM estimator to derive the asymptotic ...


4

Perhaps overly simplistic and repeating the pt above, but when doing statistics, ideally we want to compare like with like. Returns can be comparable with each other. Prices on the other hand always depend on the previous price.


4

If you wanted to see the following (price $S_t$, log return $r$, simple return $R$) then $$ r = \log(S_{t+1}) - \log(S_t) = \log(S_{t+1}/S_{t}), $$ and $$ R = S_{t+1}/S_{t}-1, $$ thus $$ R = \exp(r)-1 $$ and $$r = \log(1+R).$$ Was this the question?


4

Large? ? The relationship between normal and log returns is $$(normal return) = exp(log return)-1$$ Therefore log-returns can be from $-\infty$ to $+\infty$ while normal ones can only be between $-1$ and $+\infty$.


3

Well, it wasn't easy because you didn't mentioned how your data is formatted. I create my own data.frame() basing on data you provided. You can skip this part if your data.frame is ready. Here's code I used to create a dataframe: > #given dates > dates=c("2000-1-3","2000-1-4","2000-1-5","2000-1-6","2000-1-7","2000-1-10","2000-1-11") > #formating ...


3

It looks like 1 and 2 are different portfolios of companies. 1 is a portfolio of dual-listed companies, and 2 is a portfolio of everything in the "market". Once you have constructed these these portfolios, let's say you put the returns for every time step into a vector, call it r, then the average return would be mean(r). You need some clarification as ...


3

The answer is that it depends. In addition to the Lo paper above, there are a number of excellent references that go into depth about annualizing or time scaling non-i.i.d. returns, one of which is Roger Kauffman, "Long-Term Risk Management", 2005 which can be found at http://www.rogerkaufmann.ch/all-Budapest.pdf. There are some well known cases where the ...


3

Just a bit of illustration added to @John's answer. Look at log prices $\log(P_t)$, assume that you know $P_0$ then $$ \log(P_t) = \log(P_0) + r_1 + \cdots r_t $$ where $r_i = \log(P_i)-\log(P_{i-1})$ are the log returns. By modelling the log-returns (which as already said take values on the whole real line which is a nice property for modelling) we model ...


2

The result is: $ e^{(-230%)} - 1 = -89% $


2

Actually, neither of your two results are quite correct. As explained in the Details for the Return.calculate function, most of the PerformanceAnalytics functions use discrete returns, not log returns. To get the correct results, you will have to convert your data from log returns to simple returns. Compare the charts from the following: ...


2

Computing returns is one of the first things you learn when you start studying finance but I believe it's one the trickiest one once you get to complicated cases. The source you mentioned seems actually very good to me and it already takes into account different approaches and different subtleties like dividend payment. But this is in fact only the top of ...


1

In theory, stock prices are lognormally distributed. People usually prove lognormality by referring to positivity and right skewness of stock prices. Mathematically (or philosophically if you wish), lognormality follows from the following equation $\frac{S}{dS}={\mu}dt+{\sigma}dW$, which you may see a lot in quantitative finance ("random walk") or in ...


1

In Python, simple geometric returns: import numpy as np import pandas as pd sp500 = pd.io.data.DataReader('^GSPC', 'yahoo')['Close'] simple_ret = sp500.pct_change() (1+simple_ret).cumprod()[-1] -1 0.74751768460019963 Log-returns: log_ret = np.log(1+simple_ret) np.exp(log_ret.cumsum()[-1]) -1 0.74751768460020074 In ...


1

When doing series like this in Python, I usually just add 1 to each return, then multiply across these sums for cumulative returns. Such as, if my returns over three days were -5.2%, 2.1% & 4.8%, then the values I would store would be: 1 + (-0.052) = 0.948 1 + (0.021) = 1.021 1 + (0.048) = 1.048 Then, to calculate my cumulative returns, I ...


1

In practice, when you encounter a relationship between historical financial variables that looks good on levels but not on returns, the model you get from it essentially always fails to be predictive. I generally think of this as being due to the historical relationship arising from some confounding third (plus fourth and fifth...) variable effects that ...


1

If you are short you need to use log((entryprice-fees)/exitprice). It is the same logic as in log long return case. You just need to change your entryprice and exitprice inputs. In this case, entryprice is the selling operation and exitprice will be the buying operation (just the opposite).


1

The high serial correlation you are getting in the first case is a spurious correlation. The correct way to do it is with returns. The price series has a unit root. You need to take diff(log(prices))) in order to have a stationary time series, on which you can then estimate autocorrelations, auto regressive coefficients, etc. properly. This was shown by ...


1

The log likelihood function is indeed rather flat in the $\mu$-direction, for small time horizons (you used $T = 1$ it looks like). As you may have noticed, increasing the number of observations but keeping the time horizon the same DOES NOT IMPROVE the accuracy of the estimate of $\mu$ - this is a bit counterintuitive, if you ask me. But, increasing the ...


1

This is what often happens in optimization problems, i.e. some direction is almost flat. Google 'preconditioning'. Basically the idea is to rescale the variables, so that the Hessian has approx. same order of magnitude values on the diagonals. Also, that's not a stationary process, so estimation of mu can be difficult. BTW not sure if it's a very good idea ...


1

It depends on your investment strategy. The most common approach is to use the close price of $p_t$ and $p_{t+1}$. The volatility you measure using this method implies the "assumption" that your are able to trade at close every day. If you choose to compute the daily returns from open to close, then you assume that you are selling your position every night ...



Only top voted, non community-wiki answers of a minimum length are eligible