Skip to content
All library documents

Characterizing Portfolios at a Fixed Target Volatility

Article Quant Q&A · Author: SRKX

Summary

The document considers the set of portfolio weights that sum to one and produce a specified volatility under a given covariance matrix. It explains that the target-volatility condition is a quadratic constraint, so the solution set is generally a continuous family rather than a single portfolio. One proposed way to enumerate solutions is to choose weights for all but two assets, then solve the remaining constraint as a quadratic equation in a final weight; real roots yield candidate portfolios for those chosen values.

The answer notes that this approach is especially manageable for three assets, while a general closed-form matrix solution for higher dimensions is not established. It also suggests transforming to principal-component coordinates, where variance can be expressed using component weights and eigenvalues, and gives a two-component relation after fixing the others. The discussion is illustrative rather than a full enumeration algorithm: it does not specify sampling, constraints such as long-only weights, numerical stability, or how to handle degenerate covariance matrices.

Key ideas

  • The target-volatility portfolios satisfy both a budget constraint and a quadratic variance constraint.
  • Fixing all but two weights reduces the remaining search to a quadratic equation whose real roots give candidate solutions.
  • The solution set is generally a family of portfolios, not a single weight vector.
  • Principal-component coordinates can express variance through component weights and covariance eigenvalues.
  • The proposed method does not provide a complete numerical enumeration procedure or address portfolio constraints.

Tags

Full text
# How to enumerate all the possible portfolios with a given target volatility?


# How to enumerate all the possible portfolios with a given target volatility?












Let's say I have $n$ assets and their returns are stored in a matrix $X \in \mathbb{R}^{m \times n}$ (i.e. I have $m$ returns for each of them.

The covariance matrix of the returns is $\Sigma \in \mathbb{R}^{n \times n}$.

I define a portfolio $w \in \mathbb{R}^{n}$ and I want that $\sum_{i=1}^n w_i=1$.

My goal is to find all the portfolios such that the volatility of the portfolio is some target $\sigma^*$.

So my problem looks like this:

Find all $w$ such that: $\sqrt{w' \Sigma w}=\sigma^*$.

I think that in most cases, I would have an infinity of solutions as long as $\sigma^*$ was chosen decently with regards to the assets available.

What algorithm could help me to find them all? How would the result be represented? I was thinking it should give me some kind of vector space.

## Answer by Brian B (score 1)

https://quant.stackexchange.com/a/4826

Let's say you have $N$ available portfolio elements, and you have (arbitrarily) chosen a weight vector $w^{(i_3,\dots,i_{N})}$ for $N-2$ of them. At this point, the equation

$$w^{\prime}\Sigma w={\sigma^*}^2$$

becomes a simple quadratic equation

$$ a {w^{(1)}}^2 +b {w^{(1)}} +c =0$$

in the final weight $w^{(1)}=1-w^{(2)}$ for the last remaining indexes. If it has any real roots, then you have one of your family of solutions. If not, then your initial choice was not on a linear subspace intersecting the hypersurface of solutions.

This is actually pretty trivial to handle, even symbolically, for $N=3$. For higher dimensions, I'm not sure if one obtains a nice matrix-algebra formula or not.

Alternatively, you can take the eigenvectors/principal components $p_i$ of your correlation matrix, and consider the problem in that space. Here, the overall variance is going to be

$$ \sum_{i=1}^N a_i \nu_i^2 $$

for eigenvalues $\nu_i$. Given weights on a subset of $N-2$ of them (without loss of generality, indexes 3 through $N$), you can take

$$ \sum_{i=3}^N a_i \nu_i^2 = s^2 $$

and you are then solving

$$ a_1 \nu_1^2 + (1-a_1) \nu_2^2 = {\sigma^*}^2-s^2$$

for $a_1$, which manifests the explicit restriction ${\sigma^*}^2>s^2$ and solves to

$$ a_1 = \frac{ {\sigma^*}^2-s^2 -\nu_2^2 }{(\nu_1^2 - \nu_2^2)}$$.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.