The Solver Platform SDK includes a Quadratic Solver extension to its Simplex-based Solver for linear programming problems. This LP/Quadratic Solver easily handles "efficient portfolio" models, using the Markowitz or Sharpe methods, with up to 8,000 variables in its basic configuration. The Solver Platform SDK is highly recommended if you are solving portfoliooptimization problems.
Below is an excerpt of example code to define and solve an efficient portfolio problem using the SDK's Quadratic Solver. The syntax is that of C#, but the code is nearly identical in C++, Visual Basic and VB.NET, and very similar in Java and MATLAB. Complete source code for this and 17 other examples, in all of the supported languages, is included in the Solver Platform SDK example files.
// Define a problem object
Problem problem = new Problem(Solver_Type.Minimize, nvars, ncons);
// Set coefficients of the Hessian of the quadratic objective
problem.Model.FcnQuadratic[Function_Type.Objective, 0] =
new DoubleMatrix(Array_Order.ByCol, nvars, nvars, qmatval);
// Set coefficients of the linear constraints
problem.Model.AllLinear[Function_Type.Constraint] =
new DoubleMatrix(Array_Order.ByCol, ncons, nvars, matval);
// Define bounds on the variables and constraints
problem.FcnConstraint.UpperBound.Array = rhs;
problem.FcnConstraint.LowerBound.Array = lhs;
problem.VarDecision.UpperBound.Array = ub;
problem.VarDecision.NonNegative();
// Find the optimal solution in problem.VarDecision.FinalValue
problem.Solver.Optimize();
Banks, brokerage firms and mutual funds have been using our Quadratic Solver for years. And the Solver Platform SDK has been deployed on Intranet and Web servers in large-scale applications by several "household name" financial services companies.
New in the Solver Platform SDK is the ability to efficiently solve quadratically constrained (QCP) problems and second order cone programming (SOCP) problems, using the SDK's built-in SOCP Barrier Solver or the plug-in MOSEK Solver Engine. These problems arise frequently in quantitative finance, and the Solver Platform SDK is the first commercial product to offer comprehensive support for such problems.