You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, the CVaR optimisation using NoisyOpt is a little buggy. Because the weights aren't normalised by default, we must post-process them. However, this post-processing also means that the final weights don't respect the initial bounds. I'd appreciate any suggestions for a fix.
I have received a lot of feedback, and it is clear to me that my current implementation of CVaR needs to be greatly improved or removed. Right now, we basically have a negative_cvar_objective that computes the CVaR from 10,000 runs – this objective is then naively optimised via noisyopt.
I am aware that CVaR optimisation can be formulated as a linear programming problem, so I would like to rewrite the code to do that, and remove the noisyopt optimisation, which has proven to be quite unstable.
Hi Robert, Are you still considering implementing the CVaR? I have used nonconvex_objective method from EfficientFrontier and then minimized CVaR (Negative CVaR) function via SLSQP solver. It appears to me it is properly working. I would be happy to send you my code and see it yourself if you'd like to.
I'd love to take a look if you don't mind sharing! That said, CVaR can be implemented as a convex problem, so realistically I won't be adding CVaR to the library until I've figured that out (or someone else PRs it).
Activity
robertmartin8 commentedon Mar 25, 2019
I have received a lot of feedback, and it is clear to me that my current implementation of CVaR needs to be greatly improved or removed. Right now, we basically have a
negative_cvar_objectivethat computes the CVaR from 10,000 runs – this objective is then naively optimised vianoisyopt.I am aware that CVaR optimisation can be formulated as a linear programming problem, so I would like to rewrite the code to do that, and remove the
noisyoptoptimisation, which has proven to be quite unstable.http://artax.karlin.mff.cuni.cz/~branm1am/download/VAO_HW1.pdf
https://www.ise.ufl.edu/uryasev/files/2011/11/kro_CVaR.pdf
http://www.diva-portal.org/smash/get/diva2:479147/FULLTEXT01.pdf
farbodbahari commentedon Nov 16, 2020
Hi Robert, Are you still considering implementing the CVaR? I have used nonconvex_objective method from EfficientFrontier and then minimized CVaR (Negative CVaR) function via SLSQP solver. It appears to me it is properly working. I would be happy to send you my code and see it yourself if you'd like to.
robertmartin8 commentedon Nov 19, 2020
Hi @farbodbahari,
I'd love to take a look if you don't mind sharing! That said, CVaR can be implemented as a convex problem, so realistically I won't be adding CVaR to the library until I've figured that out (or someone else PRs it).