Characterizing Portfolios at a Fixed Target Volatility
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.