Skip to content
LQM Registry / optimization

Constrained Mean-Variance Optimizer

Long-only capped portfolio optimisation using projected-gradient optimisation on expected returns and covariance.

Model keylq.optimization.mean-variance
Version1.0.0
Runtimepython-process
Model contract

Inputs are explicit.

{
    "type": "object",
    "required": [
        "expected_returns",
        "covariance"
    ]
}
Output contract

Outputs are explicit.

{
    "type": "object",
    "required": [
        "weights",
        "expected_return",
        "variance",
        "volatility",
        "objective"
    ]
}
Default parameters
{
    "risk_aversion": 5,
    "max_weight": 1,
    "iterations": 5000,
    "learning_rate": 0.05000000000000000277555756156289135105907917022705078125
}
Example input
{
    "expected_returns": [
        0.1000000000000000055511151231257827021181583404541015625,
        0.08000000000000000166533453693773481063544750213623046875,
        0.040000000000000000832667268468867405317723751068115234375
    ],
    "covariance": [
        [
            0.040000000000000000832667268468867405317723751068115234375,
            0.01000000000000000020816681711721685132943093776702880859375,
            0.005000000000000000104083408558608425664715468883514404296875
        ],
        [
            0.01000000000000000020816681711721685132943093776702880859375,
            0.0299999999999999988897769753748434595763683319091796875,
            0.0040000000000000000832667268468867405317723751068115234375
        ],
        [
            0.005000000000000000104083408558608425664715468883514404296875,
            0.0040000000000000000832667268468867405317723751068115234375,
            0.0200000000000000004163336342344337026588618755340576171875
        ]
    ]
}