欢迎光临散文网 会员登陆 & 注册

北太天元求解现代投资组合理论问题的代码

2023-04-02 22:43 作者:卢朓  | 我要投稿


证券在未来的某个时间点的收益率是一个随机变量,我们用它的均值和方差来刻画它,

均值被称为期望收益率, 方差和风险相关。

多个证券在某个时间的收益率是一个随机向量, 均值(r_i) 和协方差矩阵(sigma_ij)分别是期望收益率向量和 风险相关的矩阵。 针对下面的脚本,

MPT theory 给出的模型是下面的二次规划问题:

  找投资比例 x = (x_1, x_2, x_3)  使得下面的目标函数

 lambda ( \sum_i \sum_j sigma_ij x_i x_j ) - (1-lambda) \sum_i r_i x_i

在满足下面的约束下

\sum_i x_i  = 1

x_i >= 0 , i = 1,2,3

最小

%投资组合的计算 (使用北太天元软件)
% 科普部分可以参考 https://www.creditdonkey.com/modern-portfolio-theory.html
% 总共有三个证券,
% 期望收益率 ExpectReturn
% 协方差矩阵 ExpCovariance
% 总的资金看成1,
% 投资三个不同的证券上比例是

%显示的更加紧凑
format compact
format long e

% 假设等权重配置
% 组合中每个证券的预期收益率
ExpectReturn = [0.16 0.2 0.3];
% 组合中证券的协方差矩阵
ExpCovariance = ...
[ 0.1 0 0;
  0    0.2  0;
  0    0     0.3];


%目标函数 1/2 (x.' * H  * x)  + f * x;
lambda = 0.7;
H = (2*lambda) * ExpCovariance;
H = sparse(H);
f = -(1-lambda)* ExpectReturn;
%约束
A = ones(1,3);
A = sparse(A);
rl = 1;
ru = 1;
cl = zeros(3,1);
cu = [];
% 相当于portstats 函数 (待查实)
epsilon = 1e-8;
options = optimset('LargeScale', 'off', 'Display', 'off');
load_plugin("optimization");
[PortWts,~,~,output] = optimization::quadprog(H, f, A, rl, ru, cl, cu, options);
% 组合中每个证券的权重 PortWts
PortWts
%目标函数的值
output.fval

北太天元求解现代投资组合理论问题的代码的评论 (共 条)

分享到微博请遵守国家法律