1、基于引力搜索算法的投资组合研究
1.1算法
介绍自然界中存在四种基本的力,即万有引力、电磁相互作用力、弱相互作用力和强相互作用力。万有引力是最早用数学方法进行描述的一种自然力,它存在于一切有质量的物体之间。万有引力的作用强度与距离的平方成反比,即物体间随着距离的增大,相互作用力将减弱。虽然万有引力与另外三种相互作用力相比小得几乎可以忽略不记,但由于强、弱相互作用力是短程力;而在较大的物体中正、负电荷都几乎等量存在,被相互抵消,电磁作用也会被削弱。所以在相距遥远的天体之间,万有引力就处于绝对的支配地位。在自然界,每个粒子都会与其他所有粒子相互吸引,粒子在万有引力的作用下相互之间不断靠近。根据牛顿的万有引力公式,万有引力的大小和两个粒子的质量成正比,与两个粒子之间的欧氏距离的平方成反比。F=GM1M2S2其中:F是万有引力的大小,G代表引力常数,M1和M2分别代表两个粒子的惯性质量,S为两个物体之间的欧氏距离。根据牛顿第二定律,当一个力F作用在一个物体上时,该物体会加速向该作用力的方向运动,加速度a的大小取决于这个物体的惯性质量M和作用力F的大小:a=F/M在一个D维的搜索空间中,假设有N个粒子组成的种群X={X1,X2,X3,…,Xi,…,XN}。其中,Xi=x1i,x2i,x3i,…,xdi,(…,x)Di,xdi表示第i个粒子在第d维的位置。在时刻t,定义第j个粒子作用于第i个粒子的第d维上的引力为Fdij(t)=Mpi(t)×Maj(t)Dij(t)+ε×G(t)×(xdj(t)-xdi(t))其中:Mpi(t)和Maj(t)分别表示粒子i和j的惯性质量;ε是一个很小的常量;G(t)是时刻t的引力常数,G(t)=G0e-αtT(G0=100,α=20,T是算法迭代的总次数);Sij(t)是粒子i和j之间的欧氏距离。在引力搜索算法中,假设在第d维上作用在第i个粒子上的总作用力Fdi(t)是来自其他所有粒子对该粒子在第d维上作用力的总和,为了增加随机特性,通常引入一个介于0~1间的随机数ξ,Fdi(t)=∑Nj=1,j≠iξFdij(t)。根据牛顿第二定理,定义粒子i在第d维上时刻t的加速度adi(t)=Fdi(t)Mi(t)。在GSA中,在每一次的迭代过程中,粒子i都会根据以下公式更新其速度vdi和位置xdi。vdi(t+1)=rand×vdi(t)+adi(t)xdi(t+1)=xdi(t)+vdi(t+1)为了避免基本的GSA易于陷入局部搜索的问题,引入惯性递减权重,在算法初期权值较大,适于在较大空间进行全局搜索,算法进行一定阶段后,权值线性递减,使得算法适于在局部进行进一步的探索;修改后的速度更新公式为vdi(t+1)=τmax-τmax-τminT×t。vdi(t)+adi(t)惯性质量通常是根据适应值的大小进行计算的,粒子的惯性质量越大,就意味着它越接近最优值,也就意味着该粒子有更大的吸引力,并且移动的速度也就越慢。在GSA中,使用以下公式更新粒子的惯性质量:Mai=Mpi=Mii=Mii=1,2,3,…,Nmi(t)=fiti(t)-worst(t)best(t)-worst(t)Mi(t)=mi(t)∑Ni=1mi(t)其中:fiti(t)表示在时刻t粒子i的适应值,fiti(t)=SR;best(t)=maxfiti(t)i∈1{,…,}N,worst(t)=minfiti(t)i∈1{,…,}N
1.2基于引力搜索算法的投资组合优化模型
假设某机构投资者拥有初始资金若干万元,计划投资于D支股票,则对应于GSA中的搜索空间就有D维,也即引力搜索算法中的每个粒子有D维,此时每一维度的值就对应于某支股票的权值,即该支股票的投资比例。另外,第i个粒子的位置用向量表示为Xi=x1i,x2i,x3i,…,xdi,(…,x)Di(其中∑Dd=1xdi=1,xdi≥0),第i个粒子的速度表示为Vi=v1i,v2i,v3i,…,vdi(,…,v)Di,加速度表示为Ai=a1i,a2i,a3i,…,adi(,…,a)Di。本文假定各支股票的预期收益率为其期望收益率Yi,计算公式为Yi=1n∑nt=1yt-yt-1yt-1其中:n为交易日天数。目标函数为maxP=max(SR)=maxCRtVaRt假设所有资本需要全部投资,且市场不存在买空行为,所以该问题的约束条件为∑ni=1xi=1xi≥{0其中:xi表示第i种资产的投资权重。该算法的流程如图1所示。
2、仿真算例及结果分析
本文采用上证50指数中的50支成分股在2012年1月4日~2012年6月29日半年间共116个交易日经过前复权处理的日收盘价作为数据集,测试算法的优化性能。实现该算法的仿真环境为IntelPentiumDualT24102GHz,2GB内存,Win-dowsXP,MATLABR2008a。设定初始参数:种群规模N=24,优化维数D=50,最大迭代次数T=2000,惯性权重τmax=0.9,τmin=0.4。在相同参数设置下,改进的万有引力搜索算法(gGSA)和基本的万有引力搜索算法(sGSA)在最优投资组合实验中仿真结果分别如表1、2所示。将计算得到的最优投资组合在2012年1月4日-2012年6月29日间116个交易日的日收益率和同期上证50指数日收益率进行比较,结果分别如图2、3所示,它们分别是前58天和后58天日收益率对比结果。图4是以10个交易日为一个周期进行的累计收益率的对比。计算结果显示,改进的引力搜索算法(gGSA)和基本的引力搜索算法(sGSA)相比,同期上证50指数均能得到较好收益,其中,gGSA计算得到的最优投资组合比上证50指数的日平均收益率高161.4%,sGSA计算得到的最优投资组合比上证50指数的日平均收益率高144.4%,而gGSA比sGSA的日平均收益率高6.95%。由此说明运用引力搜索算法得到的投资组合收益明显高于同期的市场收益,同时本文提出的改进的引力搜索算法能够取得比基本的引力搜索算法更好的结果。
3、结束语
本文提出了一种改进的引力搜索算法(gGSA),对粒子的运行速度采用惯性加权更新的规则,从而提高基本引力搜索算法的局部搜索能力,并将改进后的引力搜索算法应用到证券投资组合问题中。实验结果表明,根据新算法得到的最优投资比例计算出的股票组合的收益率高于基本的引力搜索算法及上证50指数同期的收益率,从而验证了本算法能够用于解决最优投资组合的问题。
作者:晓勇 单位:华南理工大学 工商管理学院