12

There are multiple approaches that you could consider. The basic idea across all of them is that you want to find a portfolio that is stationary. In the two-asset case, it is well known how to accomplish this. This paper by Marcelo Perlin describes one approach: http://papers.ssrn.com/sol3/papers.cfm?abstract_id=952782 but I am not particularly inclined to ...


11

I found out what I was doing wrong - the OLS function was regressing with no intercept value - so I had to use the "add_constant" method to add an intercept term to the X series (z_lag) as follows: z_lag = np.roll(z_array,1) z_lag[0] = 0 z_ret = z_array - z_lag z_ret[0] = 0 #adds intercept terms to X variable for regression z_lag2 = sm.add_constant(z_lag) ...


10

Well, "mean reversion trading" could mean a lot of things, I am not qualified to describe it in full generality. However, there is a simple model of mean reversion called the Ornstein Uhlenbeck process that is often seen. It has two parameters \lambda and \sigma, where lambda is the strength of the mean reversion (so one over lambda is the mean reversion ...


10

The code of Euler Maruyama simulation method is pretty simple (nu is long run mean, lambda is mean reversion speed): ornstein_uhlenbeck <- function(T,n,nu,lambda,sigma,x0){ dw <- rnorm(n, 0, sqrt(T/n)) dt <- T/n x <- c(x0) for (i in 2:(n+1)) { x[i] <- x[i-1] + lambda*(nu-x[i-1])*dt + sigma*dw[i-1] } return(x); }


9

A very popular choice for mean reversion is the Ornstein–Uhlenbeck process (here in discretized form): $$L_{t+1}-L_t=\alpha(L^*-L_t)+\sigma\epsilon_t$$ Here you see that the level change is governed by some parameter $\alpha$, the mean reversion rate (or speed), and the distance between the long run mean $L^*$ and the actual level $L_t$ plus some noise. A ...


9

$\theta$ is the "mean" for this process. If $X_t > \theta \implies (\theta - X_t) < 0 $, which means that the drift for the process is negative and tends towards $\theta$. The opposite case can be made for $X_t < \theta$ ; the process will have positive drift when $X_t$ is below $\theta$. Therefore we can consider $\kappa$ to be the "speed" of mean ...


9

Concerning your first question, this depends on what curve, currency, etc. you are interested in. The general method for constructing yield curves is called bootstrapping which allows you to derive spot, zero-coupon rates from the known price of coupon-bearing instruments $-$ such as bonds or swaps. In general: You start picking short-term (typically less ...


8

Similar to Juan Gil's answer but a bit differently I would say the following based on this: The OU process $$dX_t = \kappa(\theta-X_t)dt + \sigma dW_t$$ can be (Euler-Maryuama discretization) discretized at times $n \Delta t,n=1,\ldots,\infty $ which gives with $t = k \Delta t$ $$ X_{k+1} - X_k = \kappa \theta \Delta t -\kappa X_k \Delta t + \sigma (W_{k+1} ...


7

Mean reversion speed $\kappa$ is better interpreted with the concept of half-life, which can be calculated from $\text{HL} = \ln(2) / \kappa$. For example, if the mean reversion coefficient is $\kappa = 1.5$, then the half-life of the process is $\ln(2) / 1.5 = 0.46209812$ years, or about 6 months. Let's assume that the current interest rate is 1% and the ...


7

Within the fixed income space, there's a lot of literature on PCA trading. The first 2-3 principal component factors (PCs) can typically explain 90-99% of the total variances in yield curve movement. It's also nice, because the first PC looks like a change in the overall level of the yield curve, the second PC looks like a slope change, while the third ...


7

From the SDE \begin{align*} \frac{dS_t}{S_t}= k(\theta-\ln S_t) dt + \sigma dW_t, \end{align*} where $\{W_t,\, t\ge 0\}$ is a standard Brownian motion, we obtain that \begin{align*} d(e^{kt}\ln S_t) = ke^{kt} \Big(\theta -\frac{1}{2k}\sigma^2\Big) dt + \sigma e^{kt} dW_t. \end{align*} Then, \begin{align*} \ln S_T = e^{-k(T-t)} \ln S_t + \Big(\theta -\frac{1}{...


6

As pointed out by Brian, the question is vague because generally mean reversion requires a well defined mean. Nevertheless, there are processes which are not mean stationary (mean is not homogenous across observations) for which a concept of mean exists. Let $\mu_t = E(x_t)$. In general you can have $\mu_t \neq \mu_s$ (i.e. violate mean stationarity) but ...


6

Pairs trading is just one type of statistical arbitrage (check out references on wikipedia page). It sounds like you are talking about trading "factors" against each other. Factors could be industries, size, fundamentals, or purely statistical. Start with Ed Thorp's Wilmott articles on statistical arbitrage. Then read Attilio Meucci's Review. An example ...


6

A few possibilities - Trading costs kill your returns (often a problem for very highly correlated securities) Mean reversion of the cointegration spread is either very weak, or happens over periods which are too long to be practical, or there is no mean reversion whatsoever. For example, consider the following two securities, which are clearly very ...


6

You could use the two factor model of Schwartz-Smith. It's a very standard model in commodities, where you observe this kind of long term mean reversion (where "long-term" is here around a year). It's a mean reversion model where the long-term mean reversion is itself a brownian proccess. This way you can have the desided stochasticity in the short term, ...


5

For a Ornstein-Uhlenbeck process, the maximum likelihood parameters are the ones from least squares regression. If your process is: $$ dX=\kappa (\theta-X)dt+\sigma dW $$ you can do a linear regression in the form $$ \frac{dX}{dt}=a+bX+\epsilon $$ So your parameters will be: $$ \kappa=-b $$ $$ \theta=-\frac{a}{b} $$ $$ \sigma=std(\epsilon dt) $$


5

You can also use the Sim.DiffProc package. Have a look at this document: Sim.DiffProc: A Package for Simulation of Diffusion Processes in R See esp. chapter 2.1.2 There is even a Graphical User Interface (GUI) available for some functions: http://cran.r-project.org/web/packages/Sim.DiffProcGUI/index.html See chapter 4 in the above document for details.


5

Joshi is correct. The no arbitrage argument implies that the stock price instantaneous return under the risk neutral measure is equal to the short rate, and the girsanov theorem implies that the instantaneous volatility $\sigma$ is the same under the historical measure and under the risk neutral measure, so under the risk neutral measure the stock price is a ...


4

If you have a fairly good model of regime separation (of course requiring a good quantitative measure of regime state classifications -- momentum and reverting) and predictive likelihood (using something like a markov state transition matrix)-- one could weight contributions corresponding to next state probabilities. Of course, you will rarely get a ...


4

The claim that interest rates don't follow long term trends is not consistent with observed data. The idea of mean reversion is that interest rates do not rise or fall without bound, but are limited by economic and political factors. But there is no indication that this oscillation of short rates should happen around a constant mean. Allowing the mean ...


4

if you just want to test for significance of the generation of returns exceeding a hurdle rate then you can just setup a standard hypothesis test where you test whether your returns you generate from back tests exceeds a certain return. if you are more interested in testing for co-integration then you should consider the Johansen and/or Engle-Granger tests ...


4

The formula is given in your link. For the real world probability without jump: $$x_t = x_{t-1} e^{-\eta \Delta t} + \hat{x}(1-e^{-\eta \Delta t}) +\sigma \sqrt{\frac{1-e^{- 2 \eta \Delta t}}{2 \eta}} N(0,1) $$ where: $x_t$: price $x_{t-1}$: PreviousPrice $\hat{x}$: long term mean (a parameter) $\Delta t$: Time step (one fraction) $\eta$: ...


4

The concept of 'mean reversion' is tricky in continuous time. Most people would call 'mean reverting' a process where the drift pulls back towards a long run mean, and I assume that this is what you also mean. Something like the drift of an OU process. However, in continuous time the 'pull' can be generated by the volatility. For example the process $$ dX_t ...


4

A negative mean reversion makes the dynamics of the asset explode. If the model is: $$dr=[\theta-\alpha r]dt+\sigma dW $$ The expected value in this model is: $$\mathbb{E}(r)= r(0) e^{-\alpha t} + \frac{\theta}{\alpha} (1-e^{-\alpha t} )$$ If $\alpha<0$ $\mathbb{E}(r)$ goes to $\infty$ or $-\infty$, depending on if $r(0)$ is above or below the "long ...


4

One economic model you could look at is the Habit model of Campbell and Cochrane (1999). The basic idea is that as the consumption of the representative investor approaches the (appropriately defined) habit level of consumption the representative investors risk aversion spikes: this means discount rates increase dramatically and we see a big drop in stock ...


4

The point of confusion may be in thinking that a predictable price process is synonymous with a mean-reverting process while using the definitions in these papers, it's actually the opposite! In the context of these papers, a random walk would be 100% predictable: the unpredictable component of a random walk (i.e. the period specific shock which has finite ...


3

EDIT: My reasoning below seems to be wrong. The process as you write it tends to infinity if $a$ is big enough and positive and if $\lambda_0$ is positive. I would not call this process non-meanreverting OU. It is just an Ito process of a simple form. If we remove the stochastic part then we get $$ d\lambda_t = a \lambda_t dt $$ with the solution (if $\...


3

Let's consider the following example: the process is initialized randomly with $\pm1$ and then stays there forever. Seems stationary to me, but it would never cross its mean.


3

1) The reversion speed $\eta$ is just a scaling factor >0 to control the sensitivity to mean deviations, it has no unit as such. 2) There are various simulation formulas in your reference link. Can you please specify which of these you want to simulate?


3

If two or more (I(1)) time series are cointegrated, then this means that you can find a linear combination of them that is mean-reverting. Thus, if you create a portfolio with weights that are proportional to this linear combination, then the portfolio returns will also be mean-reverting. There is a large literature on cointegration and asset prices and ...


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