Bambu

  • Launch your own robo-advisor now! Click here to find out more about Bambu GO.

© 2022 Mangosteen BCC Pte Ltd. All Rights Reserved.

Metaheuristics Search for Financial Planning

As clients have unique demands and increasingly expect personalized financial advice, matching them with the right portfolio isn’t always easy. Discover how Bambu’s ‘Health Check’ feature used alongside optimization models can help take this weight off your shoulders by simplifying the recommendation process. 

Bambu’s Robo-advisory platform runs a ‘Health Check’ to determine the achievability of clients’ target goals based on analysis of their current financial status. The Goal Optimization API applies results of the ‘Health Check’ to suggest the most relevant portfolios to clients. 

Use Case:

We’re examining a goals-based investment platform that recommends users different portfolios annually to help them achieve their financial goals. Each portfolio has an expected return, sorted in an ascending order based on the return (i.e. Portfolio 1 has returns of 3%, Portfolio 2 has returns of 5%, etc.). 

For end-clients, their journey begins with indicating the following: the amount of money they have now, how much they plan to invest each year, the portfolio they are keen on investing for each year, the investment time horizon, and what their desired goal amount is at the end of this investment time horizon. With this information, the platform performs a projection to determine if the user can achieve their goal by the investment time horizon. The projected value of a portfolio is based on the formula: 

n is the year number based on the client’s time horizon, FVn is the projected future value in the year n, ci is the investment amount in year i, ri is the portfolio returns in year i. 

Concave upward graph showing the correlation between projected value of a portfolio and user's desired goal.
Figure 1: Correlation between projected value of portfolio and user’s desired goal amount

The orange line shows the projected value per year and the purple line shows the desired goal amount. 

Using this formula, there are three possible outcomes and recommendations to optimize portfolios.

Flowchart that demonstrates multiple user journey outcomes
Figure 2: Possible user journey development

Outcomes and Solutions

Outcome 1: ‘Just Nice’

Under the ‘Just Nice’ scenario, the projected value meets the desired goal amount. The definition of “meets” is that the projected value is within 0-5% above the desired goal amount. In this scenario, no recommendation is needed.

Graph depicts projected value meeting desired goal amount
Figure 3: Projected value meets desired goal amount

Outcome 2: ‘Surplus’

A ‘Surplus’ means that the projected value of the chosen portfolio is greater than the desired goal amount. In this case, the recommendation should be to adjust the client’s chosen portfolio (i.e. choose a portfolio that reduces the portfolio’s returns, ri, so that the projected value falls within 0-5% of the desired goal amount). At the same time, the returns of the newly recommended portfolio in year i+1 must be lower or equal to the portfolio returns recommended in year i. This constraint is impacted by the “de-risking” concept, which states that as your time horizon decreases, the amount of risk you take should decrease as well. 

Concave upward graph depicts projected value exceeding desired goal amount
Figure 4: Projected value exceeds desired goal amount

To recommend the right portfolio, a Random Search Constraint Programming algorithm is used. The investment amount per year, ci, is fixed and the decision variable is the portfolio returns per year, ri, where the domain ri is the set of possible portfolio returns available for investment. For example, if there are 3 possible portfolios to invest in (portfolio 1 – returns 3%, portfolio 2 – returns 5%, and portfolio 3 – returns 7%), then ri ∈ {3%, 5%, 7%}. The 2 constraints for the function are as follows:

1) The future value at time n must be within 0-5% above the client’s desired goal amount.

2) The portfolio returns in year i+1 must be lower or equal to the portfolio returns in year i.

After inputting the variables, the model recommends a portfolio each year that shifts the result from “Surplus” to “Just Nice”. 

The result shows that the new projected value (orange line) “meets” the desired goal amount (purple line) and the black line shows the recommended number of portfolios each year.

Comparing the original projections (blue line) with the recommended projections (orange line), we can see that it’s possible to arrive at the desired outcome by changing the combination of portfolios. Constraint satisfaction is used in place of constraint optimization because the main objective is to “meet” the desired goal amount, i.e. within 0-5% above the desired goal amount, instead of being as close as possible to the desired goal amount. If constraint optimization with an objective minimization function is used instead, it would have taken longer to find a suitable option due to the smaller set of solutions possible. 

Outcome 3: ‘Shortfall’

Having a ‘Shortfall’ means that the projected value of the portfolio set is less than the desired goal amount. The recommendation should be to increase the client’s total investment amount ∑ 𝑐𝑖 𝑛 𝑖=0 so that the projected value would increase.

Figure 6: Projected value falls below desired goal amount

The client can choose one of three options if there is a shortfall – the investment amount, ci, for each year remains constant, increases, or decreases. A linear programming model is used to solve this problem.

Option 1 – Constant Investment Amount per year

The portfolio returns per year, ri, is now fixed and the decision variable is the investment amount per year, ci. The objective of the function is to close the gap between the projected value at year n and the desired goal amount:

The constraints are: 

1) The projected value must be equal or greater than the desired goal amount.

2) The investment amount each year must be the same.

Brent’s algorithm was used to find a local minimum. The solution obtained shows that the projected value in year n (green line) meets the desired goal amount (purple line) and the recommended investment amount (red line), ci is the same for all years.

Figure 7: Projected value meets desired goal amount; Figure 8 Investment amount remains constant

Option 2 – Increasing Investment Amount per year

This portfolio asset allocation is ideal for the younger investors whose capacity to invest will increase over time as they accrue working experience and their income grows. To determine the investment amount for each year, ci, we change the 2nd constraint to fit this requirement, where:

The Sequential Least Squares Programming algorithm is used to solve this problem. The user is still able to achieve their desired goal through increasing the amount invested every year. Figure 10 and 11 illustrate the projected value in year n (green line) meeting the desired goal amount (purple line) and the recommended investment amount (red line) increases each year.

Figure 9: Projected value meets desired goal amount; Figure 10: Investment amount increases per year

Option 3 – Decreasing Investment Amount per year

For senior investors who have less capacity to invest as their risk tolerance and investment time horizon decreases, this model of asset allocation is recommended. To determine the investment amount for each year, ci, we change the 2nd constraint to fit this requirement, where:

Once again, the Sequential Least Squares Programming algorithm is used. The solution shows that the projected value in year n (green line) meets the desired goal amount (purple line) and the recommended investment amount (red line), ci, decreases each year.

Figure 11: Projected value meets desired goal amount; Figure 12: Investment amount decreases per year

Conclusions: Visualising these solutions 

Bambu’s Robo-advisory platform transforms the outcomes of these algorithms into a product feature, illustrating the concepts mentioned so far in a simple and digestible visual for end-clients.

Comprehensive dashboard overview of portfolio analysis for advisors
Figure 13: An overview of the dashboard for portfolio analysis

When the right optimization models are deployed appropriately, matching end-clients with the right portfolios becomes substantially easier. If you’re interested in finding out more about Bambu’s ‘Health Check’ feature, you can access and read the documentation from our API Library here. Explore and test run our API repository, at no extra cost.

Appendix: Explaining the Algorithms used

Random Search Algorithm
Let f: ℝn → ℝ be the fitness or cost function which must be minimized. Let x ∈ ℝn designate a position or candidate solution in the search-space. The basic RS algorithm can then be described as:
1) Initialize x with a random position in the search-space.
2) Until a termination criterion is met (e.g. number of iterations performed, or adequate fit achieved), repeat the following:

a. Sample a new position y from the hypersphere of a given radius surrounding the current position x

i.There are a couple of techniques for sampling a hypersphere such as Marsaglia’s technique

b. If f(y) < f(x) then move to the new position by setting x = y

Brent’s Algorithm 

Brent’s method is a root-finding algorithm which combines root bracketing, bisection, and inverse quadratic interpolation. The algorithm tries to use the potentially fast-converging secant method or inverse quadratic interpolation if possible, but it falls back to the more robust bisection method if necessary.
It uses a Lagrange interpolating polynomial of degree 2. This method will always converge as long as the values of the function are computable within a given region containing a root. Given three points x1, x2 and x3 Brent’s method fits x as a quadratic function of y, then uses the interpolation formula:

Subsequent root estimates are obtained by setting y=0, giving the following:

Sequential Least Squares Programming

Given a nonlinear programming problem of the form:

Where 𝜆 𝑎𝑛𝑑 𝜎 are Lagrange multipliers. xk can be defined as a basic sequential quadratic programming algorithm. An appropriate search direction dk can be defined as a solution to the quadratic programming subproblem. The formula is as follows:

YOU MAY ALSO LIKE

Bambu

Bambu

Bambu

Bambu

Bambu

Bambu

Bambu

Bambu

Keep up with us!

Subscribe to our Newsletter

If you want to keep up with us and get the latest on #fintech and Robo-Advisory, leave your email. No spam, just gold.

Download our
free Case Study

To download our case study, please submit the form below and we will e-mail you the link to the file.