#rmarkdown::find_pandoc(version = "2.7.3") source("global.R") knitr::opts_chunk$set(cache = T, warning=F, message=F, comment="", fig.pos="H", out.extra="", size="fontsize{11}{12}\\selectfont ") global_buffer_force <- F # library(knitr) # hook_output = knit_hooks$get('source') #this is the output for code # # knit_hooks$set(source = function(x, options) { # if (!is.null(n <- options$linewidth) & knitr::is_latex_output()) { # x <- strwrap(x, width = n, exdent = 4) # } # hook_output(x, options) # })
\listoffigures
reactable( data.frame( Abbreviation = c( "xts", "IDE", "MVP", "ITP", "TEV", "MSTE", "QP", "SP500", "SP500TR" ), Definition = c( "R object used to store time series data", "Integrated development environment", "Mean-variance portfolio", "Index tracking problem", "Tracking error variance", "Mean square tracking error", "Quadratic programming", "Standard and Poor\'s 500 Index", "Standard and Poor\'s 500 Total Return Index" ) ), style = list(fontFamily="Computer Modern, sans-serif", fontSize=13) ) %>% html_save()
\pagenumbering{arabic} Asset allocation aims at constructing portfolios that follow a specific investment strategy, such as index tracking or optimal risk return. These strategies are formulated as optimization problems whose solutions represent an optimal portfolio depending on the strategy. In practice, these problems can be too complicated to be solved directly by deterministic optimization methods, which can lead to simplified models that may contain faulty assumptions or inaccuracies. When this is the case, metaheuristics such as Particle Swarm Optimization (PSO) may be needed. PSO is able to find optimal solutions to complex problems by evaluating random positions in the search space to iteratively approach the optimum. In this thesis, common asset allocation problems are first explained and solved using deterministic optimization methods to generate benchmark problems. After introducing the PSO, it is illustrated with simple examples and the convergence behavior is analyzed before it is subsequently tested on benchmark problems. Then, the PSO and its variants are used to solve optimization problems that cannot be solved by deterministic optimization methods. Finally, the most promising PSO variant is used to solve a discrete index tracking problem considering transaction costs and a rebalancing constraint. Backtests show that this PSO variant can provide time-stable results for such problems.
In the past, active portfolio management was the only approach used, where the portfolio manager actively bought and sold assets to create a portfolio that meets the client's objectives. The goal is to take advantage of assets that are traded at incorrect prices to make a profit. This approach requires a high level of expertise from the portfolio manager, who must be well-informed about the financial market and each asset in the portfolio. However, it is becoming more difficult to spot these false prices as the market becomes more efficient. An efficient market is one where the quoted prices of assets reflect all available information, making it impossible to exploit false prices. This has led to the development of passive portfolio management, a quantitative approach that focuses more on the overall portfolio rather than individual assets. This approach has proven successful, leading to a shift towards passive portfolio management in recent years. In 2014, 18% of the total net asset value of all funds was passively managed, and this share has increased to 25% in 2018 [@TaDe2019]. The reason for this is complex, but passive management is characterized by many data-driven quantitative strategies, which automate much of the work and save costs by allowing fewer portfolio managers to manage more portfolios. Additionally, passively managed portfolios typically have less rebalancing, which keeps transaction costs lower. In addition to the lower cost, passive portfolios are also often less risky, which is of interest to many investors.
Building a cost-efficient, fully automated portfolio using a quantitative strategy can be challenging due to the complexity of the optimization problems that must be solved. To overcome these challenges, metaheuristics such as Particle Swarm Optimization (PSO) are often used. A metaheuristic is a higher-level optimization method that treats the optimization problem as a black box, only requiring the ability to evaluate the objective function. However, this approach does not provide any guarantee about the quality of the solution, and the runtime is heavily dependent on the time needed to evaluate the function. Thus, it is crucial to thoroughly test a metaheuristic before using it. Research from [@BuAd2021] suggests that PSO is more effective than other metaheuristics in various areas, including portfolio optimization problems that cannot be solved by deterministic optimization methods. The goal of this thesis is to apply PSO to financial problems, develop a deep understanding of its behavior, and make the code and data for this thesis freely available for readers to use and apply PSO themselves.
Another objective of this thesis is to provide readers with an introduction to the R programming language, which is particularly well-suited for the purpose of financial data analysis. R is a powerful tool that allows for the implementation of complex algorithms in a user-friendly and intuitive manner. Additionally, R is a widely adopted programming language in various practical domains, including portfolio management, and is frequently used for data analysis and modeling.
The following two chapters present an overview of the software and data utilized, with the aim of ensuring reproducibility. Subsequently, in chapter\ \@ref(mathfundations), the mathematical foundations and conventions are outlined. Chapter\ \@ref(activevspassive) conducts an analysis of active and passive portfolio management, highlighting the advantages of the latter. The subsequent chapter addresses two common objectives of passive portfolio management, namely the index tracking portfolio and the optimal risk return portfolio, which serve as test optimization problems for the application of the PSO algorithm. In order to be able to validate the PSO, a deterministic optimization method is explained in chapter\ \@ref(analyticalsolver), which can calculate the optimal solution in the continuous case of the two test problems. The core focus of the thesis, the standard PSO and its behavior, is presented in chapter\ \@ref(spso). The test problems from the previous chapter are used to evaluate the performance of the standard PSO. Additionally, a discrete problem that cannot be solved by deterministic optimization methods is demonstrated and solved using the standard PSO. In chapter\ \@ref(psovariants), various modifications of the PSO are evaluated by solving a discrete problem, with the standard PSO serving as a benchmark. The results indicate that the local PSO and the self-adaptive velocity PSO are most suitable for such problems. Finally, in chapter\ \@ref(reallife), the self-adaptive velocity PSO is applied to solve a real-world index tracking problem, considering transaction costs and a maximum rebalancing weight constraint. The results of the backtests suggest the potential utility of the PSO in solving such complex problems.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.