Let us assume that we have a statistical model such as ARIMAX that predicts the daily closing price of an asset for the next 30 days. Assume starting capital of $1mn. The model will make new predictions every day for the next 30 days. Usually the model will be more confident in nearer predictions and less confident in farther predictions and this is something we can quantify using predictive intervals.

How do we decide the trading strategy and how much capital we should we allocate to each trade? For example, if

  • the model predicts the price will be almost flat in the next 30 days and if our execution cost outstrips any gain from a long/short, then we should obviously not trade
  • what if the model predicts a higher price in 7 days than currently, and a lower price in 15 days than currently. Which of the two trades should we take (perhaps both?)

We want to maximise wealth in that time period and there must be some general reasoning to select the combination of trades that maximises wealth. Is that the Kelly criterion?


1 Answer 1


I am going to somewhat answer your question but also give commentary as to why your question is difficult to answer.

In the basic sense, you long when your model "says" the stock is undervalued, and short when it says the stock is overvalued. But you will quickly come into a problem. If you just base your model on maximising wealth, would it not stand to reason you just “all-in” on whatever stock has the highest predicted return?

Yes, like you pointed out, these problems use a type of Kelly Criterion, oftenly referred to as a utility function. The utility (kelly) is typically modelled with a log-process to give the effect of diminishing returns. But you will also want to incorporate volatility - if you look at asset portfolio allocation textbooks, this will be commonly referred to as mean-variance portfolio allocation, which is trying to optimise the returns and the variance of the portfolio. This way, now you wouldn’t just all-in on whatever stock has the largest predicted return. I.e. if your bankroll is $1mn, you wouldn’t invest all your bankroll in an asset with a 15% expected return but also has 200% volatility.

More specifically to your question, it's important how you are calibrating your ARIMA parameters.

Take the example, if $S_t=10$ and your model predicts $S_{t+5} = 15$, what do you do if $S_{t+4}=4$?

If you took a frequentist approach to calibrating your parameters, it’s harder to do post-analysis of why your position didn't profit. There isn’t a theoretical approach to making an adjustment when the stock doesn’t behave as predicted.

If you took a Bayesian approach, then you have some fundamental belief for some domain of the parameters, a prior. It is now easier to adjust your trading strategy, as you can incorporate the new observations into your model - Baye’s theorem. Then adjust accordingly.

If we go back to the mean-variance portfolio, if our model predicts huge returns, we wouldn’t throw away our mean-variance framework and go all-in on the huge-returning stock. This is analogous to Control Theory, which is loosely, you can construct a problem into small sub-problems and the optimal strategy over the whole problem is the optimal strategy within each sub-problem. Using the previous example, the optimal strategy from $S_t$ to $S_{t+5}$ should also be the optimal strategy during each increment of $S_t, S_{t+1}, S_{t+2},…, S_{t+5}$. Then even if the stock unexpectedly dips, the strategy is still the same. With a mean-variance portfolio, since returns isn’t the sole variable in our utility function, our stategy is not solely dependent on the stock-return.

This is why you generally don’t construct a trading strategy based solely on a ARIMA/GARCH model that tests well in back-tests. There is no fundamental control.

If you want a concrete example, here is a suggestion. Let $U(X_t,t)$ be our utility, where $X_t$ is the returns of our portfolio. If we have 2 stocks, then we want to maximise $U$, that is

$$\underset{a}{\max}E(U(X_t))- \lambda (Var((1-a)X^1_t) + Var(aX^2_t)) ,$$

where a is the proportion of investment in stock 1, and

$$U = (aX^1_t + (1-a)X^2_t) - qW,$$

where $\lambda$ is the risk-preference, $q$ is fees and $W$ is the wealth invested in the stock at point of trade. Thus, we are not maximising profit, rather maximising utility. The end goal isn’t the same, but now includes volatility, which has some predictive properties, as discussed below.

It is hard to generate alpha by predicting stock returns - there are too many “moving levers”. You should be trading in domains where there is some predictive power. The only predictive power in stock is that as a collection, they go up over time, and as individuals, will go to 0 (eventually…). If we use other financial instruments that do have some predictive power, your edge can be derived from something innate, i.e. volatility is mean-reverting and has clusters, options have a risk-premium, options before earnings reports were overvalued (used to be true) etc. Thus, you can construct your portfolio based on these micro-edges and your strategy is not dependent on stock returns.

  • $\begingroup$ I think variance does not belong inside a utility function. It may come out when you take the expectation of the utility function but not sooner. This is because people derive utility from consumption, and consumption is financed by wealth. They do not derive utility from parameters or features of random variables such as variance. If you get 10 dollars and are told that variance was 5 vs. variance was 10, you can consume just as much and be just as happy. $\endgroup$ Commented Feb 5 at 7:53
  • $\begingroup$ You are right, I meant to have it out of the expectation $\endgroup$ Commented Feb 5 at 11:27
  • $\begingroup$ The edited version still does not make sense. Variance pops out when you write $E(U(\dots)))$ explicitly. It does not come in addition to $E(U(\dots))$. $\endgroup$ Commented Feb 5 at 11:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.