Quant Memo
Core

Turning a Model Prediction Into a Position

A model that outputs '0.3% expected return over 5 days' hasn't told you how many shares to buy — getting from a prediction to an actual position means scaling by conviction, volatility, correlation with existing holdings, and the cost of trading, and most of the money in a systematic strategy is made or lost in that translation step.

Prerequisites: Expected Value

A machine learning model trained on cross-sectional equity data outputs a number for each stock — say, a predicted 5-day return of +0.4% for stock A and -0.1% for stock B. That number is not a position. It's a forecast, and a forecast has to pass through several more decisions before it becomes a trade: how confident is this particular forecast, how volatile is the stock, how much of this bet is already implicitly held through other positions, and how much will it cost to actually buy the shares. Skip any of these and a good model can lose money running a bad portfolio, which is one of the more common — and most fixable — failure modes in a quant strategy.

The translation, step by step

Scale by conviction. A raw predicted return isn't equally trustworthy across stocks; a model's own uncertainty (from an ensemble's disagreement, or a confidence interval) should shrink the position for shakier predictions. A common approach converts the predicted return into a z-score relative to the cross-section of predictions that day, so the position reflects relative conviction, not the raw number's noisy scale.

Scale by risk, not by dollars. Two stocks with the same predicted return but very different volatility shouldn't get the same dollar position — a volatile small-cap swinging 4% a day contributes far more risk per dollar than a stable utility swinging 0.5% a day. Position sizing typically targets a roughly equal risk contribution: position size k×r^σ2\approx k \times \dfrac{\hat{r}}{\sigma^2}, where r^\hat{r} is the predicted return, σ\sigma is the stock's volatility, and kk is a scaling constant chosen to hit the portfolio's overall risk target. Dividing by σ2\sigma^2 rather than σ\sigma comes from mean-variance optimization: it's the position that maximizes expected return per unit of variance for a single, uncorrelated bet.

Net against what's already held. If the portfolio already has a large tech overweight from ten separate signals, an eleventh signal that also likes tech should add less than its raw score suggests, because the marginal risk it adds is mostly redundant with risk that's already there (see Mapping Positions to Risk Factors).

Subtract the cost of trading. A predicted return has to clear the expected transaction cost — bid-ask spread, market impact, commission — or the position isn't worth taking regardless of how confident the model is (see The Break-Even Transaction Cost of a Signal).

Worked example

A model predicts a 5-day return of +0.6% for a stock with daily volatility of 2.5% (5-day volatility of about 2.5%×55.6%2.5\%\times\sqrt{5} \approx 5.6\%), in a portfolio targeting 10% annualized volatility with $100m of capital. Using the risk-scaled sizing rule with kk calibrated so an "average conviction" signal (r^/σ2\hat{r}/\sigma^2 at the cross-sectional median) consumes about 1% of the risk budget: this stock's signal-to-variance ratio is 0.006/(0.056)21.90.006 / (0.056)^2 \approx 1.9. If the median stock in the universe has a ratio around 0.5, this stock is roughly 3.8 times median conviction, so it might receive a position worth roughly $3.8m in a book where the median position is $1m — before the estimated round-trip transaction cost of 15 basis points is checked against the 0.6% predicted return (still comfortably profitable) and before the position is checked against how correlated this stock already is with the rest of the book.

raw prediction scale by conviction, risk net against existing book check vs trading cost
A prediction passes through three more filters before it becomes a position — skipping any one of them is a common way a genuinely predictive model still loses money.

What this means in practice

Two funds can use the identical prediction model and produce very different live results purely because of this layer. A model with a modest but real information coefficient can be turned into a strong Sharpe ratio by careful risk-scaled sizing and cost-awareness, or into a mediocre one by naive equal-dollar sizing that ignores volatility and correlation.

The model's job is to predict; the portfolio construction layer's job is to decide how much to bet, on what, net of everything else already held and everything it costs to get there. Treating these as one step is the single most common gap between a promising research signal and a working strategy.

Related concepts

Practice in interviews

Further reading

  • Grinold & Kahn, Active Portfolio Management (ch. 14-16)
  • de Prado, Advances in Financial Machine Learning (ch. 10)
ShareTwitterLinkedIn