APP下载

优化算法在金融投资组合问题中的应用及比较研究

2018-11-03

时代金融 2018年27期
关键词:适应度方差交叉

李 蒙

(渭南师范学院,陕西 渭南 714000)

一、Markowitz均值-方差模型

投资组合是研究如何配置各种不同的金融资产,实现资产组合的最佳投资配置。1952年Markowitz提出均值-方差模型,这一模型旨在寻找一个具有较高收益和较低风险的最佳投资组合方法,之后人们根据市场信息和投资者的行为,对该模型进行了各种改进。

现在我们的目的不在于研究模型的有效性与精准性,而在于将最优化理论中所学的优化方法运用于实际问题,通过实际编程计算来理解体会各种算法的优缺点和算法的有效性。所以在此我们选择最基本的均值-方差模型,即M-V模型。

M-V模型

在Markowitz的投资组合理论中,用资产收益率的平均值作为资产的期望收益率度量指标,用资产收益率的方差作为投资组合的风险度量指标。Markowitz均值-方差模型是经典的带约束二次优化问题,在给定期望收益时,方差最小解唯一(可行解域为凸)。

二、求解算法

(一)二次规划问题(Quadratic Programming,QP)

带不等式约束的二次规划问题,即

其中H,A,Aeq是矩阵,且H为n阶对称矩阵,f,b,beq,lb,ub,x是列向量。当H是半正定矩阵,(2)为凸二次规划,否则为非凸规划。对于凸二次规划,目标函数q(x)是一个凸函数。若有至少一个向量x满足约束条件且q(x)在可行域有下界,二次规划问题就有全局最小解。当H是正定矩阵,(2)为严格凸二次规划,此时全局最优解若存在,则其必唯一。上述二次规划问题通过matlab中的quadprog函数即可求解,即

(二)遗传算法

遗传算法(Genetic Algorithm,GA)是模拟生物界自然选择和群体“适者生存”、“优胜劣汰”的进化机制形成的一种全局寻优算法。将每个可能的问题解表示成“染色体”,从而得到一个由染色体组成的“群体”,这个群体被限制在问题特定的环境里,根据预定的目标函数对每个个体进行评价,得到个体适应度值。对生存环境适应度更高的个体往往具有较高的生存概率。开始时总是随机的产生一些个体,即候选解,利用遗传算法对这些个体按“适者生存”的原则进行交叉组合产生后代,后代由于继承了父代的一些优良形状,因而明显优于上一代,这样“染色体”的群体将逐步朝着更优解的方向进化。再结合物种进化过程中的基因突变等遗传操作,就可能产生更适应环境的后代。

遗传算法主要由染色体编码、初始种群设定、适应度函数设定、遗传操作(交叉、变异)设计等几大部分所组成。编码是指把实际问题的解结构转变为染色体结构。常用的编码方法有:二进制编码、浮点数编码、符号编码等。选择是指按照选择概率和各个染色体的适应度值,从当前种群中选出若干个适应度更高的个体。适应度决定了个体的生存能力,通常采用轮盘赌选择或锦标赛选择。交叉是指按照交叉概率和交叉策略把两个染色体的部分基因进行交配重组,产生新的个体。交叉策略一般有单点交叉和多点交叉。变异是指按照变异概率和变异策略对染色体中的某些基因进行变异,这是遗传算法产生新个体的另一种方法。例如,二进制编码方式下,传统的变异操作只是简单地将基因的二进制取反,即将“0”变为“1”、“1”变为“0”。

(三)引理

在选择算子前或选择算子后保留最优解的遗传算法,能以概率1收敛到全局最优解。

图1 遗传算法流程图

遗传算法的执行步骤:

1.选择编码策略(二进制编码),将问题搜索空间中每个可能的点用相应的编码策略表示出来,即形成染色体;

2.定义遗传策略,包括种群规模N,交叉、变异方法,以及选择概率Pr、交叉概率Pc、变异概率Pm等遗传参数;

3.令迭代次数t=0,随机选择染色体初始化种群P(O),定义适应度函数 f(f> 0);

4.计算每个染色体的适应度值;

5.通过选择运算实现“适者生存”过程,选出较优个体群;

6.对所选出的较优染色体按概率pc进行交叉运算(单点交叉);

7.对染色体中的基因,以概率Pm参与变异运算(依变异概率Pm指定变异点,对变异点进行取反运算),得到新一代种群P(t+1);

8.判断群体性能是否满足预设定的终止标准,若不满足,则返回(4)。

(三)数值实验

我们选取的是沪深300指数中的十个成分股(苏宁电器、上港集团、宝钢股份、中国石化、中信证券、招商银行、中国联通、上海汽车、贵州茅台、中国平安)从2009年1月5日至2009年6月4日100个交易日的收盘价(单位:元),数据来源于新浪财经数据中心(附录中表4)。

因为我们所有的数据是各股票的历史收盘价,而实际中我们需要用到各股票的收益率(算术收益率),协方差等,所以先进行数据预处理,得到以下结果。

表1 股票的收益率均值

表2 股票的方差-协方差矩阵

对Markowitz均值-方差模型进行参数设定:r为表2中的收益率均值组成的向量,V为表3中的方差-协方差矩阵。N=10,即投资组合中共考虑十个金融资产。μ=0.0075,即考虑期望收益为0.0075。L=ones(1,10),即一行十列的全一矩阵。U=zeros(1,10),即一行十列的全零矩阵。

通过二次规划算法、遗传算法matlab编程求解、遗传算法工具箱三种方法分别对上述Markowitz均值-方差模型进行求解,并对比分析求解结果。

表3 投资组合优化模型3种方法计算结果

图2 遗传算法工具箱求解界面

图3 遗传算法迭代过程函数

四、三种算法结果的比较

二次规划算法(QP)收敛速度较快,且其收敛速度与初值选取有关,投资分散性不是很好。遗传算法在全局搜索方面性能优异,但局部搜索能力不足,使得后期收敛速度较慢,其投资分散性较QP好一些。因此,遗传算法对于金融投资组合问题的求解更加快捷、简便、有效,但是鉴于实际中,我们模型中的值并不大,所以该问题的复杂度也大大降低,遗传算法和二次规划算法对于该问题的有效性并没有太大区别。所以,当考虑投资的股票范围不大时,二次规划算法和遗传算法均能提供有效的投资组合建议。

猜你喜欢

适应度方差交叉
方差怎么算
改进的自适应复制、交叉和突变遗传算法
概率与统计(2)——离散型随机变量的期望与方差
计算方差用哪个公式
方差生活秀
连一连
基于空调导风板成型工艺的Kriging模型适应度研究
基于Fast-ICA的Wigner-Ville分布交叉项消除方法
双线性时频分布交叉项提取及损伤识别应用
少数民族大学生文化适应度调查