Genetic Algorithm Crossover for Index Tracking Portfolios
Summary
The document describes how to encode an index-tracking portfolio in a genetic algorithm. The proposed chromosome represents which benchmark securities are selected, rather than their portfolio weights. For each selected subset, a separate quadratic optimization determines the weights that best track the index, while tracking error serves as the candidate’s fitness measure. This separation avoids making crossover directly manipulate weights that may violate portfolio constraints.
Crossover combines two parent security subsets to create a child subset. The response points to Random Assorting Recombination, where securities shared by both parents are more likely to appear in the child, and recommends a reference discussing the broader algorithm. It also mentions that reproduction and mutation strategies require consideration. The document gives a conceptual outline and references rather than a worked implementation, parameter choices, comparative evidence, or guidance on handling constraints beyond the weight issue.
Key ideas
- Represent each candidate portfolio as a subset of benchmark securities.
- Optimize the weights for each subset separately using quadratic optimization.
- Use tracking error as the fitness measure for each candidate subset.
- Crossover can combine parent security selections rather than their portfolio weights.
- A recombination operator can favor securities present in both parent subsets.
Tags
Full text
# Genetic Algorithm - Portfolio Optimization / Index Tracking crossover process # Genetic Algorithm - Portfolio Optimization / Index Tracking crossover process i am currently doing a research on index tracking using Genetic Algorithm (replicating the index using a subset of the index members). This is a new topic to me. I have been reading research paper on this topic but i could not really find a paper that walk through the process of crossover / mutation in the algorithm process. Could anyone point me in the right direction or any website links to share ? I know there are various methods to perform crossover but i am confused, for example , if there is a crossover of 2 parents , do we crossover the stocks or the stock weight of the newly formed portfolio ? because if we were to crossover the stock weight, the total weight of other current members in the newly formed portfolio might not add up to 100% etc. Thank you in advanced. ## Answer by Tim Wilding (score 3) https://quant.stackexchange.com/a/39422 Genetic Algorithms are typically used to pick the subset of securities used in the final portfolio, so you would crossover the stocks. You wouldn’t crossover the stock weights because, as you point out, it is difficult to keep the stock weights within constraint values. In GA parlance, a gene would be the subset of securities that you use to construct the final portfolio. An allele would represent the ownership of an individual security in the benchmark. Given a particular “gene”, you would then use quadratic optimisation to determine the best tracking portfolio for the subset, and use the tracking error as a resultant measure of fitness of that “gene”. Crossover involves finding a method to combine two parent genes to produce a child gene based on their fitness. You can use the Random Assorting Recombination operator (see Shapcott & Shapcott, 1992 at http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.92.5309). This provides rules for determining whether an individual security would appear in the child gene. An individual security is more likely to appear if it is in both parent genes (“respect for the parent gene”). Shapcott’s paper also provides a good overview of the whole algorithm. I also review the use of GA in Chapter 6 of “Advances in Portfolio Construction and Implementation”, Satchell & Scowcroft, 2003 (https://www.sciencedirect.com/science/book/9780750654487). That chapter contains detailed discussions of crossover, reproduction, and mutation strategies I used to solve similar problems.
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.