




已阅读5页,还剩77页未读, 继续免费阅读
(产业经济学专业论文)基于遗传算法的股票指数跟踪研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
i 摘要 摘要 随着股指期货在中国的推出, 指数化投资作为一种投资模式越来越受到青睐, 指数化投资的研究也越来越受到重视。指数化投资是被动投资领域的一种重要的 投资方法。指数化投资策略的核心内容就是构造并保持一个能尽量拟合指数收益 的股票组合,及如何跟踪指数的问题。研究指数跟踪问题有着重要的理论意义和 应用价值,它是指数衍生品产品设计、指数套利及实施指数化投资策略的一个核 心环节。 本论文通过对指数跟踪技术国内外发展现状的分析和指数跟踪技术的研究, 确定了以通过成分股自身数据自动进行指数跟踪作为研究方向,采用遗传算法与 二次规划方法相结合进行指数跟踪算法设计。通过指数跟踪问题遗传算法模型化 后,相应的进行了染色体设计、群体设计、遗传因子设计和股票权重算法的设计。 在算法的实现上, 采用了当前流行的面向对象的编程语言 java 语言进行遗传 算法的开发,同时采用了 matlab 语言。借助 matlab 当中强大的计算功能,实现 矩阵运算与二次规划函数计算, 并通过 matlab build for java 工具箱将用 matlab 编写的 m 函数编译成 java 语言当中的类方法。从而通过 java 语言编写遗传算法 和 matlab 编译的函数进行矩阵与二次规划计算相结合,实现了基于遗传算法与 二次规划方法的指数跟踪算法。 在实证分析当中,一方面,通过样本期与预测期进行跟踪效果的对比,另一 方面,通过遗传算法与最大市值占比法进行跟踪效果对比。通过两方面的对比分 析,从而验证指数跟踪领域采用遗传算法的效果。 通过实证分析得到,本论文的遗传算法和二次规划方法的结合算法,所产生 的股票组合达到了很好的跟踪效果,股票组合与指数的相关性与跟踪误差都很 好。证明了遗传算法与二次规划算法结合是解决指数跟踪问题的不错的选择。 关键字:指数跟踪,遗传算法,二次规划 ii abstract as stock index futures is launching in china, the index investment increasingly will be favored. passive index investment is an important investment in the field of investment methods. the core of the investment strategy is to construct and maintain an portfolio which should be fitted to index, in other words, the question of how to track the index. index tracking study has important theoretical significance. it is the core of index derivatives product design and the implementation of index arbitrage and the investment strategy. through the analysis of the index tracking technology development at home and abroad and index-tracking studies, the paper identified tracking index automatically through their own component data as a research direction, and by the combination of genetic algorithms and quadratic programming method design index tracking algorithm. after index tracking is modeled as a genetic algorithm problem, the paper make a design of chromosome, groups, the genetic factor and stock weighting algorithm. in the realization of the algorithm, java language as a popular object-oriented programming language was used to develop the genetic algorithm. and with matlab are powerful computing capabilities to achieve matrix and quadratic programming calculation, and matlab function is encapsulated as a method of a java class and can be invoked from within a java application. thus java was used to develop genetic algorithms and matlab make a computation of matrix and quadratic programming. the combination of java and matlab to achieve the index-tracking algorithm based on genetic algorithms and quadratic programming method. in empirical analysis, on the one hand, through the comparison of index-tracking effect between the sample period and the forecast period, on the other hand, through the comparison of the genetic algorithm and the largest market share of tracking method. through empirical analysis, this paper proved that genetic algorithm and quadratic programming algorithm is a good choice to solve the problem of tracking. keywords: index tracking, genetic algorithm, quadratic programming 学位论文原创性声明学位论文原创性声明 本人郑重声明: 所呈交的学位论文, 是本人在导师的指导下, 独立进行研究工作所取得的成果。除文中已经注明引用的内容 外,本论文不含任何其他个人或集体已经发表或撰写过的作品成 果。对本文所涉及的研究工作做出重要贡献的个人和集体,均已 在文中以明确方式标明。本人完全意识到本声明的法律责任由本 人承担。 本人郑重声明: 所呈交的学位论文, 是本人在导师的指导下, 独立进行研究工作所取得的成果。除文中已经注明引用的内容 外,本论文不含任何其他个人或集体已经发表或撰写过的作品成 果。对本文所涉及的研究工作做出重要贡献的个人和集体,均已 在文中以明确方式标明。本人完全意识到本声明的法律责任由本 人承担。 特此声明特此声明 学位论文作者签名:学位论文作者签名: 年年 月月 日日 学位论文版权使用授权书学位论文版权使用授权书 本人完全了解对外经济贸易大学关于收集、保存、使用学位 论文的规定,同意如下各项内容:按照学校要求提交学位论文的 印刷本和电子版本;学校有权保存学位论文的印刷本和电子版, 并采用影印、缩印、扫描、数字化或其它手段保存论文;学校有 权提供目录检索以及提供本学位论文全文或部分的阅览服务;学 校有权按照有关规定向国家有关部门或者机构送交论文;在以不 以赢利为目的的前提下,学校可以适当复制论文的部分或全部内 容用于学术活动。保密的学位论文在解密后遵守此规定。 本人完全了解对外经济贸易大学关于收集、保存、使用学位 论文的规定,同意如下各项内容:按照学校要求提交学位论文的 印刷本和电子版本;学校有权保存学位论文的印刷本和电子版, 并采用影印、缩印、扫描、数字化或其它手段保存论文;学校有 权提供目录检索以及提供本学位论文全文或部分的阅览服务;学 校有权按照有关规定向国家有关部门或者机构送交论文;在以不 以赢利为目的的前提下,学校可以适当复制论文的部分或全部内 容用于学术活动。保密的学位论文在解密后遵守此规定。 学位论文作者签名:学位论文作者签名: 年年 月月 日日 导师签名:导师签名: 年年 月月 日日 1 第1章 绪论 第1章 绪论 1.1 研究背景 随着股指期货在中国的推出,指数化投资在作为一种投资模式越来越收到青 睐,指数化投资的研究也越来越受到重视。 指数化投资是被动投资领域的一种重要的投资方法。它是以复制和跟踪某一 市场指数为目标,通过充分分散化和被动式管理来最小化交易成本并取得平均收 益率的一种投资模式。 指数化投资策略的核心内容就是构造并保持一个能尽量拟合指数收益的股票 组合,及如何跟踪指数的问题。指数化投资理论发展至今,产生了各种不同的跟 踪指数的方法,按原理不同,可以分为两大类,完全复制方法和优化复制方法, 当目标指数的成分股较多时,就会有过多无法实现买卖的零散股产生,导致产生 一定的跟踪误差。而且完全复制指数的指数组合通常规模巨大,如果市场容量较 小,市场深度不足,短时间内买入或抛出整个指数组合必然会对市场造成很大的 冲击,使得构造指数组合以及随后的组合调整所承受的冲击成本较高,此外,完 全复制指数还可能面临很大的流动性风险,可能导致较高的调整频率和追踪成 本。而优化复制法使用目标指数的成分股的某个子集来复制目标指数,使得构建 出来的指数组合与目标指数之间的跟踪误差控制在可以接受的范围之内。因此, 考虑在最少的跟踪误差范围内如何用少量的成分证券来实现对整个目标指数的 优化复制就显得尤为重要。 1.2 国内外发展的现状 下面介绍了股票指数跟踪研究领域,国内外的发展的情况,对指数跟踪研究 所采用的方法与技术做了说明。 1.2.1 国外研究现状 roll(1992)在 markowitz 建立的均值-方差模型的基础上较早地研究了指数 的优化复制问题,其通过最小化组合收益率与标的指数收益率之差的平方和,即 2 追踪误差波动率的最小化来改进组合对标的指数的复制效果。ytabata 另一方面, 由于各种估计值主要依赖于历史数据,优化方法过多地照顾了对过去数据的 拟合效果,而对未来的预测能力较弱,在一些极端的情形下可能会出现较大的偏 差。因此,优化抽样法一般要比其它的指数化投资方法占用更多的监控资源,在 实际中较少采用。 目前国外所用的最优化算法模型包括二次规划、线性规划、鲁棒回归、蒙特 卡洛模拟、遗传算法、启发式算法等多种方法对指数组合进行优化求解。 9 3、分层抽样法 分层抽样法是一种两阶段优化法,即第一阶段是抽样,第二阶段则是权重的 优化再配置。其选择投资对象的过程分为两个步骤:首先,将市场上所有证券按 某一特征分成几个或几十个互不相交的行业类别,以不同行业类别在目标指数中 所占的权重来决定在该行业类别内的投资量;然后,分别从每个行业类别中按照 与行业整体相关性、总市值及市盈率水平等有关指标的综合评价结果,选取最能 代表该行业类别的样本证券构造投资组合来拟合目标指数。当行业的划分比较适 当的时候,采用分层抽样法可以对市场变化的主要部分进行较好的控制。在样本 证券选择过程中,可以对多种指标进行综合考虑,使得每一段指标范围内都有相 应的代表,选取的样本证券更具有代表性和稳定性,从而减少指数跟踪过程中的 调整频率。 可见,分层抽样法在两个不同的步骤上分别结合了完全复制法和优化抽样法 的长处,同时又巧妙地回避了两者的不足之处,使其成为一种较为实用有效的方 法。当然,如果行业的划分不科学,使用分层抽样法同样难以取得满意的效果。 因此,合理的行业划分是分层抽样法中最重要的环节。 2.1.3 优化指数跟踪投资组合的选择方法 在确定指数化投资组合的投资对象时,由于存在不同的选择标准,因而产生 了不同的选择方法,以下将简要介绍常用的几种确定投资对象的方法。 1、最大市值占比法 这种方法的出发点是基于目标指数的编制规则。指数的计算采用派许加权综 合价格指数公式,以成份股的调整股本数为权数进行加权计算,计算公式为: 基期指数 即期成分股调整市值 即期成分股调整市值 即期指数= (2.2) 其中,调整市值=调整股本数)(市价。这意味着,指数反映的其实是指 数中所有成分股以其流通市值加权的价格变动情况,而流通市值占比反映了成分 股的价格变动对指数变动的影响。一般而言,指数的变动在很大程度上是由那些 流通市值较大的成分股的价格变动所引起的,这也就意味着如果我们所构造的投 资组合中成份股的市值总和占指数中所有成分股市值总和的比重越大,那么投资 组合的收益变动情况将越接近于指数的收益变动情况,也即投资组合对指数的复 10 制效果越好。为此,我们引进“市值覆盖率”指标来衡量投资组合中股票的市值 总和占指数中所有成分股的市值总和的比重,即: 100%= 值总和指数中所有成分股的市 总和投资组合中股票的市值 市值覆盖率 (2.3) 而投资组合的收益率可以表示为: 1- 市值总和基期投资组合中股票的 市值总和即期投资组合中股票的 投资组合收益率 = 值总和基期指数中成份股的市市值总和基期投资组合中股票的 值总和即期指数中成份股的市市值总和即期投资组合中股票的 / / = 1- 值总和基期指数中成分股的市 总和值即期指数中成份股的市 (2.4) 那么对上式化解可得: 盖率基期投资组合的市值覆 盖率即期投资组合得市值覆 指数收益率 投资组合收益率 = + + 1 1 (2.5) 在实践中,随着投资组合中股票数量的增加,其市值覆盖水平也将随之增加, 而当投资组合中包含了指数中所含有的所有成分股时,其市值覆盖率将等于1, 但这与优化投资策略的初衷是相违背的。因此,我们必须在投资组合中的股票数 量与投资组合的市值覆盖率之间做出权衡,以找到两者的最佳平衡点。 2、最大相关系数法 相关系数是衡量两个序列的变动趋势的一个指标,对于两个时间序列而言, 较大的相关系数意味着两者将具有相似的变动趋势,令x、y为两个序列,则两 者的相关系数)(xy等于: (2.6) 在选股过程中,如果某只成分股的收益率序列与指数的收益率序列具有较大 的相关系数时,则意味着两者具有相似的变动趋势。当投资组合的收益率序列与 指数的收益率序列的相关系数较大时,其对指数的复制也将取得较好的复制效 果。 由于投资组合的收益率水平可以表示为其含有的成分股的收益率序列的线性 表达形式,因此我们会想当然的认为当投资组合中的个股的收益率与指数的收益 )()( )( )( yvarxvar xycov xy = 11 率具有较大的相关系数时,则投资组合的收益率也将与指数的收益率具有较大的 相关系数。但实际上并不存在这种必然的联系,其原因在于与收益率的线性形式 不同,相关系数并不具有这种线性性质,即由与指数收益率序列具有较大的相关 系数的个股所组成的投资组合,其并不必然与指数序列具有较大的相关系数,因 而并不具有良好的指数复制效果。 同时,由于相关系数只是衡量了两个序列的变动趋势,而并没有考虑其绝对 水平,因而较大的相关系数并不能保证投资组合序列与指数序列之间具有相似的 收益水平,进而也不能保证两个序列之间具有较小的跟踪误差。因此,最大相关 系数法这种选择投资组合的方法能否具有预期的效果还有待于实证研究的进一 步检验。 3、行业分层抽样法 这种方法是基于证券投资分析中的行业分析或板块分析的方法,其理论基础 是认为由于经济周期或行业周期的影响,不同行业的股票在经济周期的不同时期 会具有不同的表现,即具有一种轮动的效应。而按行业抽样复制指数的原理是让 投资组合中各行业股票的投资比重尽量等同于目标指数所含有的成分股中各行 业股票的所占比重,从而减少各行业轮动所带来的收益偏差,在投资组合中所含 的样本股数量一定的前提下,最大限度地获取与目标指数相同的收益水平,尽量 减小跟踪误差。 具体而言,按照行业抽样法选取投资对象的过程可以分为两个步骤:首先,将 市场上所有证券按某一特征分成几个或几十个互不相交的行业类别,以不同行业 类别在目标指数中所占的权重来决定在该行业类别内的投资比重;然后,分别从 每个行业类别中按照与行业整下相关性、总市值及市盈率水平等有关指标的综合 评价结果,选取最能代表该行业类别的样本证券构造投资组合来拟合目标指数。 当行业的划分比较适当的时候,采用行业分层抽样法可以对市场变化的主要部分 进行较好的控制。在样本证券选择过程中,可以对多种指标进行综合考虑,使得 每一段指标范围内都有相应的代表,选取的样本证券更具有代表性和稳定性,从 而减少指数跟踪过程中的调整频率。 可见,分层抽样法在两个不同的步骤上分别结合了完全复制法和优化复制法 的长处,同时又巧妙地回避了两者的不足之处,使其成为一种较为实用有效的方 法。当然,如果行业的划分不科学,使用分层抽样法同样难以取得满意的效果。 因此,合理的行业划分是分层抽样法中最重要的环节。 12 4、聚类分层抽样法 与前述的行业分层抽样法类似,聚类抽样复制法也是根据某种划分标准将指 数所包含的成分股按照某种特征划分为不同的类别,然后按照不同类别成分股在 目标指数中所占的权重来决定投资组合在该类别内的投资比重。之后,按照一定 的抽样方法从各个类别中抽取股票以构造投资组合。 与行业分层抽样法利用行业属性划分类别不同的是,为避免在分类中的人为 的主观倾向,使得划分类别的方法更具科学性,因此引入了多元统计中的时间序 列聚类分析法对指数的成分股进行分类。该方法的主要步骤是:首先将成分股的 历史价格走势整理为标准的时间序列数据,然后按照聚类分析的方法对其进行分 类,在此基础上进行抽样复制以构造投资组合。 5、遗传算法 从前述介绍的几种方法来看,我们都是采用某种人为设定的标准从目标指数 的所有成分股中选择一部分成分股来构造投资组合,并以此投资组合来拟和目标 指数。由于各种方法自身存在的不足,并非每一种方法都能得到最优解,为此我 们尝试能否有一种方法可以最大限度的利用成分股自身的数据特性而减少人为 因素的影响,因此我们引进了遗传算法。遗传算法(genetic algorithm)是 一种通过 模拟目然进化过程搜索最优解的方法,在过去二三十年中,在解决复杂的全局优 化问题方面,遗传算法己经取得了成功的应用,以下我们将简要介绍遗传算法的 基本群体个体施加遗传操作实现群体内个体结合重组的迭代过程。在这一过程 中,群体个体一代一代地得到优化并逐渐逼近最优解。遗传算法是具有“生成加 检测”的迭代过程的搜索算法。 结合本论文“算法本身自动实现股票指数的优化复制”的研究方向,对上述 几种方法进行了对比。 最大市值占比法是从股票指数的编制规则出发,股票指数编制的采用加权平 均法。所以构造的投资组合中成份股的市值总和占指数中所有成分股市值总和的 比重越大,那么投资组合的收益变动情况将越接近于指数的收益变动情况,也即 投资组合对指数的复制效果越好。最大市值占比法是选择成分股当中市值较大的 股票组成股票组合。最大市值占比法满足自动进行股票组合选择的要求,但是其 跟踪效果取决于市值覆盖率。 最大相关系数法是选择与目标指数具有较大相关系数的成分股,但是与指数 收益率序列具有较大的相关系数的个股所组成的投资组合,其并不必然与指数序 13 列具有较大的相关系数,因而并不具有良好的指数复制效果。本论文出于此考虑 没有选择方法。 行业分层抽样法是通过对成分股进行行业分类,再从每个行业类别中按照与 行业整体相关性、总市值及市盈率水平等有关指标进行综合评价来进行股票组合 的选择,分层抽样法在两个不同的步骤上分别结合了完全复制法和优化复制法的 长处,同时又巧妙地回避了两者的不足之处,但是此方法当中对股票的综合评价 很难通过程序来进行实现,必须通过计算出各个指标,通过认为的经验来判断, 所以考虑到本论文的研究方向,故没有选择此方法。 聚类分层法与行业分层抽样法类似,只是类别的划分采用了聚类方法,但是 股票的评价还是参杂了太多人为的经验,故没有选择此方法。 上述几种方法都是采用某种人为设定的标准从目标指数的所有成分股中选择 一部分成分股来构造投资组合,并以此投资组合来拟合目标指数。由于各种方法 自身存在的不足,论文都没有选择这些方法,为此我们尝试能否有一种方法可以 最大限度的利用成分股自身的数据特性而减少人为因素的影响,因此我们引进了 遗传算法。 2.2 遗传算法理论概述 本节介绍了遗传算法的基本思想;遗传算法的元素,其中包括染色体编码、 种群初始化、适应度函数、遗传因子等。 2.2.1 遗传算法的基本思想 遗传算法是从代表问题可能潜在解集的一个种群 (即初始种群)开始的, 而一 个种群则由经过基因编码的一定数目的个体组成。每个个体实际上是染色体带有 特征的实体。初始代种群产生后,按照适者生存和优胜劣汰的原理,逐代演化产 生越来越好的近似解。在每一代,根据问题域中个体的适应度大小选择个体,并 借助于自然遗传学的遗传算子进行组合交叉和变异,产生出代表新的解集的种 群。这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境, 末代种群中的最优个体经过解码可以作为问题的近似最优解。 14 2.2.2 遗传算法的要素 2.2.2.1 染色体编码 实际问题模型化后,一般表现为对变量的讨论,这可视为遗传算法的表现型 形式,从表现型到基因型的映射称为编码。常用的编码方法有浮点数编码和二进 制编码。 2.2.2.2 初始种群 遗传算法开始之时,首先产生一些待求解问题的可能解,每个解称之为一个 个体,所有这些个体构成初始种群。产生初始种群的方法通常有两种。一种是完 全随机的方法产生,它适合于对问题的解无任何先验知识的情况。有时可以根据 先验知识产生一组满足一定条件的可能解,这样的初始种群可使遗传算法以更快 的收敛速度达到最优解。 2.2.2.3 适应度函数 遗传算法在进化搜索过程中基本不利用外部信息,仅以适应度函数为依据, 利用种群中个体的适应度值来进行搜索。因此,适应度函数的选取至关重要,它 直接影响遗传算法的收敛速度以及能否找到最优解。一般而言,适应度函数由目 标函数转换而来。 2.2.2.4 遗传算子 1、选择 选择是用来在种群中确定重组或交叉的个体。选择的第一步是确定种群中每 个个体的选择概率。个体的选择概率的确定一般有两种方法:按比例的适应度分 配和基于排序的适应度分配。选择过程的第二步是确定选择的方法,选择方法一 般有轮盘赌选择法、随机遍历抽样法、局部选择法、截断选择法、锦标赛选择法 等。 2、交叉 交叉是遗传算法中获得优良个体的重要手段。该过程是从种群中选择两个 父代个体进行杂交。在杂交过程中,两个父代个体的部分结构加以替代重组而 生成新的个体。 交叉操作也分为两部分:首先是对选择操作形成的配对按预先给定的交叉概 率来决定是否进行交叉;其次,在确定需要交叉后,选择合适的方法进行交叉操 作。 15 3、变异 变异操作是遗传算法中一个很重要的操作。它能使个体发生突然变异,导入 新的遗传信息,使寻优过程有可能指向未探知区域,是提高遗传算法全局最优搜 索能力的有效步骤,也是保持种群中群体差异,防止过早出现收敛现象的重要手 段。 变异操作的第一步是对指定个体,按预先给定的变异概率判断是否需要进行 变异操作:第二步,在确定需要变异后再采用合适的方法对个体进行变异。 16 第3章 指数跟踪算法设计 第3章 指数跟踪算法设计 本章通过为了解决股票指数的自动跟踪问题,确定了遗传算法与二次规划方 法的优化策略,从而进行了了遗传算法的模型设计(包括染色体设计、群体设计、 适应度函数设计、遗传因子设计)和股票权重计算方法的设计。 3.1 设计思路 目前指数跟踪领域应用中,构造一个优化的指数投资组合采用两阶段法: 首先,在目标指数的成分股中选择一部分证券作为投资对象,我们将其称为 “选股”过程;其次,确定投资组合中各资产的投资权重,以构造一个能较好复 制目标指数的投资组合,我们将其称为“资金配置”的过程。 本论文在设计过程不可避免的要考虑上边两个阶段的问题: 选股和计算权重。 但是同时提出了这样两个问题:如何选股与如何计算权重。 在选股的方法上目前的方法有最大市值占比法、最大相关系数法、行业分层 抽样法、聚类分层法、遗传算法等。通过第2章几种方法的对比,论文选择了遗 传算法作为选择股票的方法。 结合遗传算法自身的进化特点,同时结合两阶段法,确定了本论文的设计思 路。遗传算法初始化一个种群,种群中的每个染色体代表一个股票组合,在遗传 算法的选择的过程当中,适应值的计算用的是适应值函数为二次规划模型,通过 二次规划方法进行计算,得到适应值,在经过遗传算法选择、交叉与变异,逐代 优化,最终达到优化的目的。 首先通过遗传算法对指数跟踪问题模型化, 然后进行染色体设计、群体初始 化和进化设计、适应度函数设计、遗传因子设计、股票投资组合权重优化算法设 计等,进而设计指数跟踪的整体的遗传算法模型。下边是指数跟踪遗传算法模型 的整体设计思路图。 17 首先将指数跟踪问 题进行分析,解释 成适合于遗传算法 能够解决的问题。 对股票指数成分股 进行二进制编码构 造染色体 产生初始种群 适应度函数计算与 权重计算 结束进化 输出结果 遗传操作 选择 交叉 变异 图 3.1 算法的整体设计思路 资料来源:本论文整理 3.2 染色体编码设计 首先需要指数跟踪的实际问题进行模型化成遗传算法能解决的问题,对染色 体问题的转化结果是股票组合对应染色体,染色体的群体也就是遗传算法的群 体,染色体上的每一位基因代表一支股票。 在遗传算法当中有关染色体的编码方法有:二进制编码、十进制编码、浮点 型编码、布尔型编码等。 由于本论文运用遗传算法进行股票的选择和检测,染色体就是代表一个股票 18 组合,而基因代表单支股票,所以本论文采用了二进制的编码方式。染色体是有 指数的所有的成分股组成, 而基因相应的就对应某一指数成分股, 当基因位为 “1” 时,代表股票被选择;当基因位为“0”时,代表这支股票没有被选择,所以这 个染色体当中所有基因位为“1”的就代表了一个股票组合。 在这里二进制的编码方式,根据股票指数成分股的数目确定基因的位数,首 先对成分股进行按股票代码进行升序排序,使其对应染色体当中从低到高中的某 一位。 染色体在这里用b表示,() n bbbbb 321 ,= n 代表股票指数成分股数目。 股票没有被选中 被选中股票 , ,i 0 1 = i b 例如上证 50 指数,首先对上证 50 指数的成分股按股票代码排序,这样保证 排序的上证 50 指数成分股位置和染色体基因位置建立起对应关系。明确了染色 体的每一位对应的是哪支股票的问题。 在初始化染色体时,对染色体的基因赋予 0 或 1,就表明了股票是否被选择。 上证 50 指数成分股构造的染色体“1000111001”所代表的意义如下表所 示: 表 3.1 染色体意义解析表 序号 股票代码 股票名称 是否被选入股票组合 1 600000 浦发银行 是 2 600001 邯郸钢铁 否 3 600005 武钢股份 否 4 600009 上海机场 否 5 600010 包钢股份 是 46 601600 中国铝业 是 47 601628 中国人寿 是 48 601872 招商轮船 否 49 601988 中国银行 否 50 601998 中信银行 是 资料来源:本论文整理 19 3.3 遗传算法适应度函数 遗传算法在进化搜索中基本不用外部信息,仅用目标函数即适应值函数为依 据。遗传算法的目标函数不受连续可微的约束且定义域可以为任意集合。对目标 函数的唯一要求是,针对输入可计算出能加以比较的非负结果。适应度函数评估 是选择操作的依据,适应度函数设计直接影响到遗传算法的性能。 在遗传算法的求解问题当中,其适应度函数就是问题的目标函数的转化。本 论文的适应度函数也是采用其目标函数的转化,目标函数为股票组合与指数的跟 踪误差的最小值。 这里的首要任务是选择一种跟踪误差最小化模型作为目标函数。 目前跟踪误差的最小化模型,主要有二次规划方法与线性规划方法。 二次规划方法是通过最小化组合收益率与标的指数收益率之差的平方和最小 化(跟踪误差波动率的最小化) ,来改进股票组合对标的指数的复制效果。 设组合中有 n 种资产(如股票和债券) ,令 x 为 n 种资产的收益矩阵, w 为组合 中各资产的权重矢量, y 代表组合所要跟踪的标的指数的收益矢量, 则该模型把 组合的跟踪误差定义为: xwy = (3.1) 式中: y t r , x nt r , w n r , t r ; t 为观测值数目; r 代表实 数空间.定义追踪误差为组合收益率与标的指数收益率之差的平方和,通过w的 变化使得追踪误差最小,即目标函数为: )()(xwyxwyminmin= (3.2) 求解得最优权重为: y)x (x)x (w 1 = (3.3) 还可在模型中加入组合资产不能卖空(权重不能为负) 及组合资产权重之和 为 1 的约束 baw (3.4) 式中: a nk r , w n r , b k r ;k 为约束个数. =1w (3.5) 20 线性规划方法包括 4 个线性追踪误差最小化模型,分别是均值绝对偏差、 均值 绝对下方偏差、最小最大化、下方最小最大模型. 各数学表达式如下: |)(|1 mad te yxwmin= (3.6) ywxywxmin=|,1 madd te (3.7) |)(| minmax te yxwmax= (3.8) ywxywxmax=|,| dminmax te (3.9) 式中: x 为 n 种资产(如股票和债券)的收益矩阵; w 为各资产的权重矢量; y 为组合所要跟踪的标的指数的收益矢量; x和y分别是仅包含指数收益率低 于组合收益率时的组合收益矩阵和指数收益矢量。 本论文考虑到二次规划方法在应用中被广泛采用,容易实现的特点,故采用 了二次规划模型作为论文的目标函数。 接下来,论文将目标函数映射成适应度函数,即使股票组合与指数的跟踪误 差的最小值表示成最大值得形式。由于遗传算法当中,适应度函数要比较排序并 在此基础上计算选择概率,所以保证适应度函数取正值,而且,跟踪误差越小, 选择概率越大。 本论文把一个最小化问题转化为最大化问题,把跟踪误差乘以-1,然后被一 足够大的值减去。在这里,我们的适应度函数为一个混合函数: mbsumgn mbsumbsummn bf = = )(),( )(|,)(| )( (3.10) 式中: )()()( min 1)(| yxyxg sum = = (3.11) mt kkk x xxx m =),( 21 (3.12) 其中, n bbbbsum+= 21 )(表示总共选中的股票个数,如果选中的股票个 数不等于 m,则适应度函数是| )(|bsummn,如果等于m,则适应度函数由 )(gn给定。 xxx kkk m , 21 为选中的股票收益率序列,y为指数的收益率序列, 21 代表这m只股票在投资组合中所占的权重,权重之和等于1,投资组合与目标 指数的跟踪误差为yx,则)(g为调整权重使跟踪误差的平方和最小时取 得值, 函数)(g的求解对应资金配置过程, 它是一个普通的有约束的最优化过程。 3.4 遗传算子设计 遗传操作是模拟生物基因遗传的操作。在遗传算法中,通过编码组成初始群 体后,遗传操作的任务就是对群体的个体按照他们对环境的适应程度施加一定的 操作,从而实现优胜劣汰的进化过程。从优化搜索的角度而言,遗传操作可使问 题的解,一代一代地优化,并逼近最优解。 遗传操作包括三个遗传算子:选择、交叉、变异。下边论文进行三个遗传算子 的设计。 3.4.1选择算子 从群体当中选择优胜的个体,淘汰劣质的个体的操作叫选择。选择的目的把 优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。本 论文的选择操作,也就是为了实现股票组合与指数的跟踪误差小的遗传到下一 代。 选择操作建立在对群体当中个体的适应度评估基础之上,针对本论文就是跟 踪误差的评估上的。目前选择算法有适应度比例方法、最佳个体保存、排序选择 等方法,下边做简单介绍。 1、适应度比例方法 适应度比例方法是目前遗传算法中最基本的也是最常用的选择方法,也叫赌 轮选择。在该方法中,各个个体的选择概率和其适应度成比例。 设群体大小为 n,令 i f表示群体的适应度值之总和, i f表示种群中第 i 个 染色体的适应度值,它被选择的概率正好为其适应度值所占份额 i f/ i f。个体 适应度越大,其被选择的概率越高,反之,则越小。 2、最佳个体保存方法 该方法的思想是把群体中适应度最高的个体不进行配对交叉而直接复制到下 一代中,此种选择操作又称复制。采用此方法的优点是,进化过程中某一代的最 优解可不被交叉变异操作的破坏。但是隐含了一种危机,即局部最优个体的遗传 22 基因会急速增加而使进化陷入局部解。也就是全局搜索能力差。 3、排序选择方法 所谓排序选择方法是指在计算每个个体的适应度后,根据适应度大小顺序对 群体中个体进行个体排序,然后把事先准备好的概率表按序分配给个体,作为选 择概率。 综合考虑各方面因素,本论文采用适应度比例方法作为指数跟踪遗传算法的 选择因子。具体的设计如下: 首先计算群体当中各个染色体的适应度及群体适应度总和,然后用每个染色 体的适应值除以群体适应度总和,得到各个染色体的选择概率 pi,同时计算群 体当中染色体个体当中位置位于其前边的染色体概率之和 qi。 然后随机生成一 个 0-1 的随机数,判断第一个染色体的选择概率是否大于其随机数,如果大于则 把第一个选择进入下一代,否则,在后续的染色体当中选择随机数小于 qi的染 色体,进入下一代。 3.4.2交叉算子 所谓交叉是指把两个父代个体的部分结构加以替换重组而生成新个体的操 作。通过交叉遗传算法的搜索能力得以飞跃。 交叉算子包括单点交叉、两点交叉等。 1、单点交叉 单点交叉是在个体串当中随机设定一个交叉点,实行交叉时,该点前或后的 两个个体的部分结构进行了互换,并生成两个新个体。 2、两点交叉 两点交叉与单点交叉相似,只是交叉点有两个。 本论文的交叉算子采用单点交叉算子,具体设计按照如下步骤进行: 第一步,从有选择操作形成的配对库中,对个体随机配对并按预先设定的交 叉概率来决定每对是否需要进行交叉操作; 第二步,随机产生配对个体的交叉点,并对这点前后的部分基因进行相互交 换。 23 3.4.3变异算子 变异算子的目的主要是有两个:一是使遗传算法具有全局搜索能力。当遗传 算法进入局部最优解时,利用变异算子的全局搜索能力可以加速向最优解收敛, 此时要取较小值。二是使遗传算法可维持群体多样性,以防止出现未成熟的收敛 现象,此时要取较大值。 变异算子的基本内容是对群体中的个体串的某些基因位上的基因值作变动, 针对本论文所采用的二进制编码而言,变异操作就是使基因位上的基因值取反, 即 0 变 1 或 1 变 0。 变异算子主要有基本变异算子和逆转算子两种: 1、基本变异算子 基本变异算子是指对群体中的个体码串随机挑选一个或多个基因位并对这些 基因为的基因值作变动。 2、逆转算子 逆转算子是变异算子的一种特殊形式。它的基本操作内容是,在个体码串中随机 挑选两个逆转点,然后将两个逆转点间的基因值以一定的逆转概率逆向排序。 由于本论文在变异算子的应用上主要是维持群体的多样性,所以选择了实现 比较容易得基本变异算子。 在具体的设计上则是按下边的步骤进行的。 第一步,在群体中所有个体的基因当中随机的确定基因位; 第二步,选择一定的次数来对基因位的基因值进行变异。 3.5 种群设计 遗传操作是对众多个体同时进行的,这众多的个体组成了群体。在遗传算法 处理流程中,继编码设计后的任务是初始群体的设定,并以此为起点一代代进化 直到按某种进化停止准则终止进化过程,由此得到最后一代(或群体)。关键问题 是,群体规模,即群体中包括的个体数目如何设定,本论文主要考虑两个因素: 1、初始群体的设定; 2、进化过程中各代(或群体)的规模如何维持。 初始群体与群体规模的设定对遗传算法效能的发挥是很有影响的。 遗传算法中初始群体中的个体是随机产生的。一般来讲,初始群体的设定可 24 采取如下的策略: 1、根据问题固有知识,设法把握最优解所占空间在整个问题空间中的分布 范围,然后在此分布范围内设定初始群体; 2、先随机生成一定数目的个体, 然后从中挑出最好的个体加到初始群体中。 这种过程不断迭代,直到初始群体中个体数达到了预先确定的规模。 群体规模的确定受遗传算法中选择操作的影响最大。模式定理告诉我们, 若群体规模为 m,则遗传操作可从这 m 个个体中生成和检测 m3 个模式,并在 此基础上不断形成和优化积木块,直到找到最优解。显然 m 越大,遗传操作所处 理的模式就越多,生成有意义的积木块并逐渐进化为最优解的机会就越高。换句 话说,群体规模越大,群体中个体的多样性越高,算法陷入局部解的危险就越小。 所以,从考虑群体多样性出发,群体规模应较大。 但是 ,群体规模太大会带来若干弊病:一是从计算效率着眼,群体越大,其 适应度评估次数增加,所以计算量也增加,从而影响算法效能:二是群体中个体 生存下来的概率大多采用和适应度成比例的方法,当群体中个体非常多时,少量 适应度很高的个体会被选择而生存下来,但大多数个体却被淘汰,这会影响配对 库的形成,从而 i f影响交叉操作。另一方面,群体规模太小,会使遗传算法的 搜索空间中分布范围有限,因而搜索有可能停止在未成熟阶段,引起未成熟收敛 现象。显然,要避免未成熟收敛现象,必须保持群体的多样性,即群体规模不能 太小。 本论文对群体规模的设定采用了尝试的策略,首先给定一个群体规模,然后 通过程序的运行,看一下其效率和全局搜索能力,然后通过多次取不同的群体规 模,通过对比最终确定规模的大小。 3.6 股票投资组合权重优化算法设计 本节主要是股票投资组合权重计算的设计,同时也是适应度函数对应的目标 函数的计算问题。 由于目标函数选择了二次规划方法,即)()()( min 1)(| yxyxg sum = = 作为 目标函数,所以权重优化算法的设计就是围绕如何求解,使得)(g取得最小。 本论文采用二次优化方法来求解。 目标函数: 25 )()()( min 1)(| yxyxg sum = = (3.13) 约束条件: =1 (3.14) 通过二次优化算法可以求解出和对应的)(g。 为了实现上述的二次优化算法,本论文设计借助了 matlab 的强大的计算能 力,matlab 当中有求解二次优化的算法 quadprog。 完整的调用格式如下: x,fval,exitflag,output,lambda=quadprog(h,f,a,b,aeq,beq,lb,ub,x0, options,varargin) 由于在 matlab 当中的 quadprog 函数求解问题的标准形式如下: 目标函数: xfhxx tt x + 2 1 min (3.15) 约束条件: bax (3.16) beqxaeq= (3.17) ubxlb (3.18) 所以需要对论文的二次优化目标函数进行标准化,标准化如下: 目标函数: =)(gyyyxxx ttttt +)2()2( 2 1 (3.19) 约束函数: =1 (3.20) 可以看出:xx t 2对应h,yx t 2对应f。 26 第4章 指数跟踪算法实现 第4章 指数跟踪算法实现 根据上一章的设计,本章进行了指数跟踪算法的实现。本论文指数跟踪算法 的实现采取了java与matlab相结合的方式。通过java语言进行遗传算法的整体 各个部分的实现 (包括染色体、 群体、 遗传因子等) 和数据库的操作, 而用matlab 语言实现了矩阵与二次规划方法的计算,并且通过matlab builder for java编译成 java函数。 4.1 算法实现总体介绍 上一章进行了指数跟踪算法的设计,在这一章将进行实现。 为了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司职工安全培训课件
- 《论语》十则课件
- 现场施工工作总结
- 公司级安全培训目标课件
- 事故安全培训新闻稿课件
- 护理危重病人查房
- 医院战略合作协议书范本6篇
- 电信销售工作汇报
- 电梯维保部半年工作总结
- 血战一法两规培训
- 2025湖南益阳安化县事业单位招聘工作人员61人考试参考试题及答案解析
- 7 呼风唤雨的世纪 课件
- 电瓶托盘堆垛车安全培训课件
- 快递分拣中心操作流程及安全规范
- 机加工安全质量培训计划课件
- 2025年全国计算机等级考试三级网络技术模拟题及答案
- 建设项目环境影响评价分类管理名录(报告书、表、登记表)
- 2025年杭州市上城区九堡街道社区卫生服务中心招聘编外4人笔试备考试题及答案解析
- 2025年煤矿从业人员安全培训考试题库及答案
- 《智能建造概论》高职完整全套教学课件
- 比较思想政治教育学-课件
评论
0/150
提交评论