Python Example:
from mplpy import mpl from numpy import arange, float32 from matplotlib import pyplot as plot CPLEX_OPTIMAL = 1 iterCount = 100 origTarget = 4.0 deltaTarget = 0.1 model = mpl.model model.WorkingDir = mpl.ModelDirectory modelFilename = mpl.ModelDirectory + "Portfolio.mpl" result = model.ReadModel(modelFilename) VarianceMacro = model.Variance MeetTargetCon = model.MeetTarget TargetArray = arange(iterCount, dtype=float32) VarianceArray = arange(iterCount, dtype=float32) for i in range(iterCount): targetReturn = origTarget + i * deltaTarget MeetTargetCon.RHSValue = targetReturn model.Solve(mpl.cplex) print(str(i) + ") " + str(targetReturn) + ", " + str(VarianceMacro.Value)) if model.Solution.ResultCode == CPLEX_OPTIMAL: TargetArray[i] = targetReturn / 100.0 VarianceArray[i] = VarianceMacro.Value else: solCount = i print(str(solCount+1) + ") " + model.Solution.ResultString + " (" + str(model.Solution.ResultCode) + ")") break TargetArray = TargetArray[0:solCount] VarianceArray = VarianceArray[0:solCount] print(TargetArray) print(VarianceArray) plot.plot(VarianceArray, TargetArray, marker='.', c='r') plot.title("Efficient Frontier with MPL OptiMax") plot.grid(True) plot.xlabel("Risk") plot.ylabel("Return") plot.axis([0, 100, 0, 0.14]) plot.show()