投资学学到投资组合最优化这里,想用vba做出几组点,用描点的方式画出有效前沿
求坐标点的方式是,给定一个收益率,然后规划求解,得出其在最小方差条件下的投资组合
然后收益率以一个迭代次数递增,我选取的是0.1,然后对应着收益率0---2.4%,依次求出对应的最小方差
收益与方差组成一个点,一共25个点
以下为小弟写的代码
Sub no_short_EF()
Dim MinDeviation As Double, Step As Double
Dim i As Integer, j As Integer
Dim counter As Integer
counter = Range("M3")
Step = Range("M4").Value
For j = 1 To counter
[J4].Offset(j - 1, 0).Value = Step * (j - 1)
Next
For i = 1 To counter
SolverReset
SolverOK SetCell:=Range("M6").Value, _
MaxMinVal:=2, _
ByChange:=Range("M10", "M29")
solveradd CellRef:=Range("M10", "M29"), _
Relation:=3, _
FormulaText:=0
solveradd CellRef:=Range("M30").Value, _
Relation:=2, _
FormulaText:=1
solveradd CellRef:=Range("M7").Value, _
Relation:=2, _
FormulaText:=[J4].Offset(i - 1, 0).Value
SolverSolve UserFinish:=True
[I4].Offset(i - 1, 0) = Range("M6").Value
Next
End Sub
但是结果如图所示,坐标点一样,貌似循环里的规划求解都没有执行,小弟初学的vba,实在看不明白,请大家帮帮忙 跪谢