1. 绪论
1.1. 研究背景
随着我国经济的快速发展以及证券市场体系的日益完善,现如今的金融市场变得空前的繁荣,越来越多的投资者参与到证券市场中来,但市场上可供投资者选择的证券品种琳琅满目,因此如何选股成为投资者们最犯难的问题。理性的投资者进行投资是为了使收益最大化,但投资发生在现在,而收益却是未来的收入,就是这段时间差具有难以驾驭的不确定性,也就是所谓的风险。对于理性的投资者而言,仅仅考虑到某一证券的未来收益就将资金全部投入是及其不明智的,即所谓的“把鸡蛋放在一个篮子里”,这样的做法风险非常大,一旦决策失误就是满盘皆输,因此为了规避或分散加大的风险,追求“安全、低风险、高收益”,投资者们开始按不同的比例投资多种证券,构建投资组合,规避非系统性风险,同时最大化收益。
投资者在选择投资证券或其它风险资产时,最关心两个问题,一个是资产的预期收益,一个是投资的风险。在早期金融理论发展中,如何量化投资的收益和风险是投资者们迫切需要解决的问题。1952年由Markowitz [1] 提出的资产组合理论成功的解决了这一问题,从此以后,金融理论的研究进入了定量分析的阶段。资产组合理论就是研究如何有效地在复杂以及不确定的情况下进行资产配置,平衡收益与风险。金融市场现实中的复杂性与不确定性决定了研究投资组合理论需要涉及到许多不同的学科,包括经济学、数学、运筹学、控制论等。随着计算机技术的发展,金融学的研究进入了新的阶段,计算机技术的应用推动了投资组合优化理论的发展。
1.2. 国内外研究现状
投资组合理论从发展至今,诞生了许多重要的研究成果。现代投资组合理论有很多分支,如:投资组合理论、资本资产定价模型、套利定价模型、行为金融理论以及有效市场理论等。这些理论改变了人们对资产管理的传统认知,促使现代的资产管理更系统化和更科学化的发展。1952年,经济学家Markowitz发表了《证券组合选择》,其中建立了均值–方差模型,并且对收益和风险进行了量化,从而确定了最优的资产组合基本模型,这项研究成果使现代金融理论的研究进入了一个崭新的阶段。
威廉·夏普于1963年提出了单因素模型,该模型的主要贡献是成功的简化估计了协方差矩阵,极大地推动了将投资组合理论应用于实际。随后,夏普等一些经济学家又提出了CAPM,也就是著名的资本资产定价模型。该模型说明了如何评价收益和风险,为投资组合绩效的评价提供了操作方法和理论基础。
针对资本资产定价模型的不足,1976年罗斯提出了APT模型,也就是套利定价模型。该模型的出现使得多因素投资组合分析方法开始广泛应用。Mossin于1968年成功提出了多阶段投资组合问题。他利用动态规划将模型从单阶段推广到多阶段,更加完善了投资组合理论。随着投资组合相关理论的深入研究和实践,近年来基于传统的投资组合理论,产生了许多新的理论分支。它们基本都是在Markowitz的理论框架上,不同程度的改进了均值–方差模型。
20世纪中期,人们开始尝试通过模拟自然界的生物系统构造启发式算法,并将构造的算法应用于解决实际问题中。目前已经出现了很多启发式优化算法,其中应用比较广泛的有人工蜂群算法、蚁群算法、粒子群算法、鱼群算法、遗传算法、神经网络算法等,这些启发式算法能更加高效地解决实际中的各类优化问题。但由于这类算法出现的时间不长,需要研究改进的问题还很多,因此也成为了当前的研究热点。
近年来,启发式智能优化算法在解决投资组合问题时表现出越来越好的优越性。Pankaj Sinha [2] 等提出用遗传算法构建证券投资组合模型,并给出了模型的求解过程;刘晓峰等 [3] 采用粒子群算法构建证券投资组合,结果表明,与传统的算法相比,该算法得到的结果更好;马骊等 [4] 提出了一种改进的人工鱼群算法应用于投资组合中,其结果证明是可行有效的。
本文计划采用人工蜂群算法来解决投资组合优化问题。人工蜂群算法具有计算简洁、参数较少、结构简单、易于实现等优点,已经吸引了越来越多的学者关注。现在,人工蜂群算法已经在许多邻域得到了非常成功的应用,例如函数的参数优化、混沌系统控制 [5] 、数字滤波器设计 [6] 、图象处理 [7] 、生产调度 [8] 机器人路径规划等 [9] 。虽然已经有一部分启发式智能算法在投资组合优化问题中进行了初步应用,这些应用给投资者提供了更高效的决策方法,但是目前处于初步尝试阶段,基本还未进行实际应用。因此,进一步研究如何应用人工蜂群算法解决投资组合优化问题具有重要的实际意义。
1.3. 研究的目的和意义
投资组合的构建是为了规避和分散较大的风险,追求“安全、低风险、高收益”,投资者对选取的若干支证券构成的证券投资组合按不同的投资比例对其中每支证券进行投资,以期收益最大化。Markowitz提出的“均值—方差”模型是最早的求解投资组合问题的方法,但在实际中,解决投资组合优化问题需要考虑若干现实条件(如最小交易单位,交易费用,可支配资金等现实约束),采用传统的二次规划方法难以求解,导致该理论在实际应用中的应用性和可操作性不强。现实中的许多组合优化问题都存在这一难点,例如加工调度问题和旅行商问题等类似的组合优化问题。这类问题的共同点是,它们描述起来非常简单,但实际求解的过程却非常困难。其原因就在于求解这类问题的计算量非常大,需要极大的存储空间和极长的运行时间,导致现实中的可操作性非常差。由于现代优化技术的发展,人工蜂群算法这一类启发式智能优化方法也随之出现。这类方法有很多优越性:一是对求解对象没有太大限制;二是具有并行分步性,优化效率高;三是此类算法源于自然生活,具有智能化的特点。将投资组合优化理论与人工蜂群算法相结合,为投资组合优化问题提供了一种有效的解决途径。当前国内外将智能优化算法应用到投资组合优化问题中的研究还相对较少,成果还相当有限。首先,目前的绝大多数研究成果局限于求解证券数量较少的投资组合优化问题,不适合实际应用。其次,目前的研究在组合优化时只考虑了收益这一因素,却忽视了流动性和风险等因素的影响,还需要改进。因此,研究如何将人工蜂群算法这类启发式智能优化算法与投资组合优化相结合非常有必要。鉴于此,为了成功求解大规模的投资组合优化问题,本文将人工蜂群算法应用于投资组合优化问题。
2. 研究的理论基础
2.1. 人工蜂群算法的基本原理
2.1.1. 人工蜂群算法简介
蜜蜂是一种群居型的动物,虽然单个个体的行为比较简单,但是由这些个体组成的群体的行为却极其复杂且有条不紊。蜜蜂种群个体之前能够相互分工协作和信息共享,使整个种群能极其高效的找到较好的蜜源。
人工蜂群算法 [10] (Artificial Bee Colony,简称ABC)是由土耳其学者Karaboga于2005年提出的基于群体智能的一种新型的随机优化算法,人工蜂群算法是从蜜蜂采蜜行为中受到启发,通过模拟其行为而提出的启发式算法。人工蜂群算法中有三个基本要素:采蜜蜂(Employed bees)、未采蜜蜂(Unemployed bees)和食物源(Food source)。同时定义了蜜蜂单个个体的两种基本行为:招募其他蜜蜂到优质蜜源以及放弃某个食物源。
食物源:即蜜源,在蜜蜂选择蜜源时,通常要考虑蜂巢与蜜源之间的距离、蜜源所含的花蜜量多少以及提取的难易程度等因素。在ABC算法中,食物源代表优化问题的可行解,食物源的花蜜量是评价指数,代表目标函数的适应值或解的质量。
采蜜蜂:采蜜蜂是负责采集花蜜的蜜蜂。在ABC算法中,采蜜蜂的数量与食物源的数量相等。采蜜蜂的主要任务是发现蜜源并且保存于蜜源相关的信息,如蜜源到蜂巢的距离、方位和蜜源所含花蜜量的多少等。将蜜源的信息带回蜂巢,以一定的概率与其他蜜蜂共享。
未采蜜蜂:即还没有采集花蜜的蜜蜂。在ABC算法中,未采蜜蜂主要是侦察蜂(Scout bees)和观察蜂(Onlooker bees),观察蜂的数量与采蜜蜂的数量相等。观察蜂的主要任务是在蜂巢附近等待采蜜蜂回来分享食物源的信息,并以一定的概率选择要跟随的采蜜蜂,蜜源的花蜜量越丰富,采蜜蜂被观察蜂跟随的概率越大。如果某处蜜源经过一定次数开采后仍然没有更新食物源,则放弃该位置,此处的采蜜蜂变为侦察蜂在该蜜源附近搜索新蜜源从而替代原来较差的蜜源。
人工蜂群的搜索活动如下:采蜜蜂根据已有信息搜索到一个新的候选位置,检查新位置的花蜜量,如果新位置优于原位置,根据贪婪选择机制,采蜜蜂忘记原位置而记住新的位置,否则保留原位置。当采蜜蜂完成搜索过程之后,它们将回到舞蹈区跳八字舞,向观察蜂传递蜜源信息。观察蜂接收到这些信息,根据与花蜜量相关的概率选择蜜源位置,之后与采蜜蜂一样搜索新的位置,并做出相应改变。如果某处蜜源经过一定次数仍然没有改进,则放弃该位置,此处的采蜜蜂变为侦察蜂。
2.1.2. 工蜂群算法的主要步骤
1) 初始化种群
在使用ABC算法进行目标函数的优化时,蜂巢周围包含的食物源代表优化问题的目标函数的搜索空间,食物源的位置表示目标函数的可行解,食物源的花蜜量代表目标函数的适应值,也就是解的质量。
首先随机产生NP个初始解,NP即是蜜源的数量也是采蜜蜂的数量。每一个解
是一个D维向量,D是需要优化的参数的个数。同时要设置每个蜜源的最大开采次数Limit和最大迭代次数MaxCycle。
随机初始化的公式如下:
其中,
,
,
表示的是介于0到1之间的随机数,
表示食物源的位置,也就是目标函数的可行解,
和
分别表示可行解
的最大值和最小值。
随机初始化完成以后,采蜜蜂、观察蜂和侦察蜂在初始解的基础上开始循环搜索最优解。
2) 采蜜蜂进行搜索
采蜜蜂已知当前记忆位置,根据以下搜索方程产生新的候选位置
其中,k,j是随机选取的下标,
,
,
;
是属于[−1,1]之间的随机数。计算新位置的适应值,如果新位置的适应值比原位置大,则记住新位置并且忘记原位置,否则保留原位置。
3) 观察蜂进行搜索
观察蜂根据采蜜蜂传递的蜜源花蜜量信息,选择某个蜜源的概率为
其中,
是第i处蜜源的适应值。之后,观察蜂通过同采蜜蜂一样的搜索方程产生新的候选位置,计算新位置的适应值。如果新位置的适应值比原位置大,则记住新位置并且忘记原位置,否则保留原位置。
4)侦察蜂进行搜索
若蜜源经过限定的次数Limit后仍然没有改进,则放弃该位置,此处采蜜蜂成为侦察蜂,侦察蜂通过下式产生新的位置。
其中,
和
分别是搜索空间的上界和下界。
2.2. 差分进化算法
差分进化算法(Differential Evolution,简称DE) [11] 是由Stornce和Price在1995年首次提出的一种随机启发式搜索算法,主要用于求解优化问题,具有参数较少、易于实现、结构简单等特点。与其他算法一样,差分进化算法模拟生物进化,通过反复迭代,使适应环境的个体保留下来。差分进化算法通过差分变异、选择和杂交等算子来对群体不断演化,直到满足终止条件后退出。
2.3. 粒子群算法
粒子群算法(Particle Swarm Optimization,简称PSO)是由Eberhart和Kennedy在1995年提出的一种源于鸟群觅食行为的智能优化算法。设计的算法中将鸟看做无质量的粒子,其搜索思想是:在越优的粒子的领域存在适应值高的解的概率越大,所以为了增强算法的搜索效率,在较优粒子的领域分配更多的粒子;于此同时,为了避免盲目陷入局部最优,每个粒子也吸收其他信息。粒子群算法参数少收敛快是很大的优点。
2.4. 投资组合优化理论
2.4.1. Markowitz投资组合模型
通过大量的观察和分析,Markowitz认为投资者要追求高收益就必须承担高风险。为了规避和分散风险,投资者偏好持有多样化的证券投资组合。Markowitz从对收益和风险进行量化开始,系统地研究了投资组合的一些特性,从量化的角度提出了投资组合的优化方法。
基于对风险的规避,Markowitz建立了一个投资组合模型,其要点包括:投资组合的期望收益率及其方差;在给定期望收益水平下使投资组合的风险降到最低,或在给定的风险水平下使投资者的期望收益达到最高。利用数学规划,确定每只证券在投资者资金中所占的权重。Markowitz理论将期望及其波动方差作为投资者选择组合时的收益率和风险建立模型,因此也称为均值—方差模型。
均值—方差模型数学描述如下:
其中
描述证券组合的风险,
为第i支股票与第j支股票之间的协方差,
为第i支股票的期望收益率,E为可接受的最低期望收益率,
为第i支股票的投资占组合总投资的比例。给定的最低期望收益率,通过最小化证券组合的方差使得投资风险最小。
2.4.2. 均值—方差模型的局限性
均值方差模型不仅需要可接受的最低收益率和投资组合的方差,还要计算预期收益。本文采取的人工蜂群算法不需要计算上述两个参数。
均值方差模型在股票数量很大的情况下是不实用的,因为算法的关键参数涉及的计算复杂度增加了解决时间。因此,本文提出了利用人工蜂群算法来解决多目标投资组合优化问题。
均值方差模型等式中涉及的最小化风险是基于收益服从正态分布的假设。收益是简单线性相关的,等价于假设资产收益的联合分布是正态的,但是在目前的金融市场中,由于政策因素、市场规则、经济政策以及非系统性风险,现实中的很多资产的收益不是服从正态分布的,这违背了均值方差模型中的协方差条件。因此,均值方差模型得出的结果是偏离实际的。本文提到的人工蜂群算法解决了这个问题,因为它不需要假设收益是服从正态分布的。
3. 基于人工蜂群算法的投资组合优化
3.1. 问题描述
将智能优化算法应用到证券组合优化问题中,求解问题的简便性将得到不同程度的提高。国内外许多学者已经着手于这方面的研究,文献 [12] 中引入了模拟退火算法,文献 [13] 中应用了神经网络算法,文献 [14] 中介绍了遗传算法的应用。本文根据人工蜂群算法的特性,利用人工蜂群算法并结合经典的Markowitz投资组合模型和股票分析技术中市盈率、市净率等指标,构建了一个针对国内证券市场的证券投资组合优化模型。
该模型分为两步,第一步是从股票池中挑选合适的股票进入投资组合,第二步是确定投资组合中每支股票的权重,以期构建的证券组合在较低风险水平下获得较高的收益。首先本文利用3.2节中提到的一些股票的基本指标计算评估分数,分数越高越好,用于从股票池中挑选表现优秀的股票构建证券组合,然后利用人工蜂群算法确定证券组合中各股票的权重,确定投资组合各股票权重的算法由Matlab实现。
3.2. 选股策略
一般的证券投资组合会包含各种各样不同行业的股票,为了降低行业风险,本文将从各类行业中挑选优秀的股票。利用文献 [2] 中的方法,将股票池中的股票按行业分成不同的类别,在不同的类别中按下面提到的几项指标来评估股票。下面设置了一个计分函数,股票通过此函数计算各项指标的评估分数,在每一类别中各项指标的评估分数之和越高的股票将优先被选入证券组合之中。本文采用以下几项指标评估不同行业的股票:
1) EPS (每股收益)
EPS是每股收益是指本年净收益与普通股已发行股份总数的比率。从投资者角度来看,EPS越高越好
2) PE (市盈率)
PE是指股票的价格与每股收益的比率。市盈率越低,意味着股票价格被低估。投资者总是希望找到价格被低估的股票。因此,对投资者来说,PE越低越好。
3) PB (市净率)
PB是每股股价除以每股净资产,反映的是股票市场价格与公司净资产的关系,体现了公司的发展前景。对投资者来说,股票的市净率越低,投资价值越高。
4) ROE (净资产收益率)
ROE是指净利润与净资产的比率,该指标有效地反映了股东的收益水平,是评价公司自有资本运用效率的重要指标。对投资者来说,净资产收益率越高越好。
5) IncomePS (每股销售收入)
每股销售收入是指该公司销售收入与股票总数的比率。对投资者来说,每股销售收入越高越好。
如果某项指标是越高越好的,则通过下面公式计算该指标的分数:
如果某项指标是越低越好的,则通过下面公式计算该指标的分数:
其中
表示第i支股票的第j个指标的评估分数,
表示第i支股票的第j个指标的值,Min表示第j个指标的最小值,Max表示第j个指标的最大值。
为第i支股票的所有指标的评估分数之和。
由于选取了5个指标,因此评估总分的满分为5分。本文将评估总分在3.8以上的股票选入投资组合。
3.3. 实验的数据表格
本文从沪深300指数的成分股中挑选若干只股票构成证券组合,利用人工蜂群算法求出每只股票在组合中的权重,使得收益率最大且风险最小。引用的历史数据日期是从2015.6.1到2016.5.31,根据历史数据构建投资组合,并计算其2015.6.1到2016.6.30这一个月的收益率。表1所示为沪深300指数的成分股的各项技术指标,表2为股票的日收益率。由于一整年的数据过多,不方便一一列出,表1和表2只列出一部分数据。数据来源:RESSET (www.resset.cn)。
4. 结果分析与总结
4.1. 实验结果分析
为了与ABC算法作比较,本文对于被选入证券组合的股票,分别采用了PSO和DE算法计算每只股票的权重。算法运行结果如表3所示。
本文还构建了一个指数型组合,即使其所选股票与表4中所选择的股票一致,股票权重由相应的股票在沪深300指数中所占的比例决定,即每支股票的比例除以组合中各支股票比例之和。为了证明ABC算法在优化投资组合的权重上的优越性,本文不仅将ABC算法构建的投资组合与PSO和DE算法构建
![](Images/Table_Tmp.jpg)
Table 1. Technical indexes of Shanghai and Shenzhen 300 Index constituent stocks
表1. 沪深300指数成分股的各项技术指标
![](Images/Table_Tmp.jpg)
Table 2. Daily rate of return on shares
表2. 股票的日收益率
![](Images/Table_Tmp.jpg)
Table 3. Selected stocks and their weights
表3. 被选中的股票及其权重
![](Images/Table_Tmp.jpg)
Table 4. Comparison of yields and risks of several portfolios
表4. 几个投资组合收益率和风险的比较
的投资组合进行比较,而且还与指数型投资组合进行了比较。指数型投资组合是投资者不采取积极型策略优化组合权重时的投资组合,类似于市场上的指数型基金。与其他类型的投资组合相比,指数型组合是一种风险低收益也相对较低的投资组合,是一种比较受投资者们青睐的稳定型组合,本文将ABC算法构建的投资组合与之相比具有实际意义。
由于收益率不同使得风险
不具有可比性。因此,本文采用变异系数C来评价风险消除了收益率大小不同的影响。其中变异系数C的计算公式如下:
表4是这几个投资组合2016.6.1到2016.6.30这一个月的平均日收益率E、月收益率、风险
和变异系数C的对比结果。
从表中可以看出,与PSO算法、DE算法相比,ABC算法构建的投资组合的变异系数最小,风险收益比最小。因此总的来说,ABC算法构建的投资组合是相对较优的。由此可见,ABC算法是解决证券投资组合优化问题的一种有效方法。
4.2. 总结与展望
4.2.1. 总结
一直以来投资组合优化问题都是现代金融学领域的研究热点,其研究的主要内容是如何在复杂的、不确定的金融市场中有效地配置金融资本,从而均衡金融资产的风险和收益。在大多数情况下,投资者不能在概率上准确的预测资产收益的分布,通常只能用一些模糊的概念来描述收益和风险,这就在很大程度上使得资产收益表现为模糊不确定性。因此,为了解决这种模糊不确定性,在可行性理论的基础上,本文讨论了投资组合优化模型,并应用了人工蜂群算法这类较前沿的智能优化技术。本文的主要工作内容如下:
本文通过两个阶段构建了投资组合优化模型,第一个阶段是根据记分函数从沪深300指数的成分股中挑选出合适的股票,第二个阶段是利用人工蜂群算法确定各股票所占的权重。通过Matlab仿真实验,得出实验结果。同时,将ABC算法构建的投资组合与PSO算法、DE算法构建的投资组合以及指数型投资组合做比较,结果表明ABC算法得出的结果更加具有优越性。
4.2.2. 后续展望研究
今后可以从以下几个方面展开研究:
1) 在实际的证券二级市场中还存在着最小证券交易单位限制、买卖差价等摩擦因素,这些摩擦因素同样影响着投资决策,而本文并没有考虑这些摩擦因素。因此,在实际做投资决策时还需要根据具体金融市场中的各个因素对投资组合模型加以完善,以使其更加符合证券市场特征。
2) 在现实中投资者的决策往往是多期的、动态的,而本文仅讨论了单期静态的情况。因此,值得更加深入研究的是如何将本文的模型从单期静态拓展到多期投资组合优化问题中。
3) 利用智能优化算法求解多目标优化问题具有很大优势,由于将人工蜂群算法应用到投资组合优化问题的研究才刚刚起步,人工蜂群算法还有非常大的改进空间,如何提高算法在求解投资组合优化问题时的速度和精度是一个重要的研究方向。