陳婷婷,殷 賀,江紅莉,王 露
1(江蘇大學(xué) 理學(xué)院,鎮(zhèn)江 212013)
2(江蘇大學(xué) 財(cái)經(jīng)學(xué)院,鎮(zhèn)江 212013)
如何在充滿不確定性的復(fù)雜系統(tǒng)中優(yōu)化資本配置是投資組合的關(guān)鍵問(wèn)題.Markowitz在1952年提出的均值-方差模型標(biāo)志著投資組合理論的出現(xiàn).然而該模型沒(méi)有考慮到投資實(shí)踐中的一些限制,比如買空賣空限制、投資數(shù)量、最小交易單位、交易成本等,這嚴(yán)重限制了均值—方差模型在投資實(shí)踐中的實(shí)用性.考慮現(xiàn)實(shí)約束條件的投資組合模型雖然更貼近實(shí)際,但模型將是一個(gè)有大量約束條件和離散變量、結(jié)構(gòu)復(fù)雜的非線性規(guī)劃問(wèn)題,傳統(tǒng)的數(shù)值優(yōu)化算法失效[1,2].
由于具有收斂速度快、運(yùn)算簡(jiǎn)單和魯棒性好等優(yōu)點(diǎn),粒子群算法(PSO)在求解復(fù)雜的非線性優(yōu)化問(wèn)題中得到廣泛應(yīng)用[3-5],但存在易陷入局部最優(yōu)點(diǎn),搜索精度不高等缺點(diǎn).為平衡全局搜索和局部搜索,劉冬華等(2013)提出基于捕食策略的粒子群算法,通過(guò)調(diào)節(jié)限制級(jí)別對(duì)粒子群的搜索空間進(jìn)行控制[6].吳喆珺(2014)在PSO公式中的社交部分引入社交系數(shù),使粒子的搜索行為受到粒子最優(yōu)位置的影較大影響,從而提高粒子群收斂速度[7].朱沙等(2016)利用極值優(yōu)化方法增強(qiáng)混合算法對(duì)搜索空間的挖掘能力,引入混沌變異算子提高粒子群的探索能力[8].但目前尚未有對(duì)粒子群算法中的基礎(chǔ)和關(guān)鍵部分——粒子更新規(guī)則的優(yōu)化研究.天牛須搜索(BAS)算法作為2017年新提出的智能優(yōu)化算法,初步應(yīng)用在微電網(wǎng)多目標(biāo)能量管理、無(wú)線傳感器網(wǎng)絡(luò)覆蓋[9],目前在投資組合領(lǐng)域的應(yīng)用還鮮被關(guān)注.本文基于我國(guó)證券市場(chǎng)的實(shí)際環(huán)境及其特點(diǎn),建立考慮完整費(fèi)用的證券投資組合模型,在粒子群算法中引入天牛須搜索的概念,設(shè)計(jì)基于天牛須搜索(BAS)的粒子群優(yōu)化算法求解模型(簡(jiǎn)稱BSO),有效克服PSO算法的穩(wěn)定性差、傾向于局部最優(yōu)等問(wèn)題.文章選取9只人工智能概念股,利用它們?cè)?017年6月23日到2017年8月18日(9周)的周數(shù)據(jù).通過(guò)和基本PSO對(duì)比仿真發(fā)現(xiàn),收斂所需的迭代次數(shù)少、求解組合風(fēng)險(xiǎn)值低,在多維約束問(wèn)題中求解全局最優(yōu)解更有效.
首先設(shè)置投資組合模型參數(shù): 總投資為T(mén),第i種股票的每股買入價(jià)格和收益率分別為pi(i=1,2,···,n),yi(i=1,2,···,n).投資組合中各支股票的投資比例用向量X=(x1,x2,···,xn)表 示,其中n).無(wú)風(fēng)險(xiǎn)資產(chǎn)的投資比例(假設(shè)為國(guó)債)為x0,投資組合的方差-協(xié)方差矩陣為 σ .V表示可以反映整個(gè)投資組合總風(fēng)險(xiǎn)的總方差.Markowitz的均值-方差模型的目標(biāo)函數(shù)可表示為:
考慮到我國(guó)股票交易時(shí)有一手(100股)的最小交易單位限制,現(xiàn)假設(shè)第i種股票的交易手?jǐn)?shù)為ni,交易手?jǐn)?shù)須為整數(shù),則有如下約束條件:ni∈I,I為非負(fù)整數(shù)(i=1,2,···,n).
考慮到我國(guó)證券市場(chǎng)禁止買空和賣空行為,只能將投資金額用于投資n種股票上或無(wú)風(fēng)險(xiǎn)資產(chǎn).同時(shí),交易中必然發(fā)生的交易成本(包括稅收和各種交易費(fèi)用)是投資者進(jìn)行證券投資的重要考慮因素.以上海證券交易所為例,交易成本包括以下費(fèi)用:
(1)印花稅.按成交金額的1‰向賣方收取,由券商代扣后由交易所統(tǒng)一代繳.
(2)委托費(fèi).5元/次.
(3)證券監(jiān)管費(fèi).約按成交金額的0.23‰收取.
(4)證券交易經(jīng)手費(fèi).按成交金融的0.0696‰收取.
(5)傭金.交易完成后,投資者向券商支付交易金額3‰的費(fèi)用,最低5元起.
(6)過(guò)戶費(fèi).交易股票后,需支付更改證券戶名的費(fèi)用,即按交易股票面值的1‰支付過(guò)戶費(fèi),因?yàn)槲覈?guó)面值為一股一元,也就是按股票數(shù)量收費(fèi),不足一元按一元收.
那么風(fēng)險(xiǎn)證券的所有交易成本是:
其中,
其中,C0表示無(wú)風(fēng)險(xiǎn)資產(chǎn)的交易成本,Ci(ni)表示投資于第i種股票且交易手?jǐn)?shù)為ni時(shí) 的交易成本.k0=5表示委托費(fèi),k1(ni),k2(ni),k3(ni)分別表示第i種股票交易手?jǐn)?shù)為ni時(shí)的傭金、過(guò)戶費(fèi)、證券監(jiān)管費(fèi)和證券交易費(fèi),μ1=0.3%為 傭金的成本系數(shù),μ2=0.1%為每股股票過(guò)戶費(fèi)的成本系數(shù),μ3=0.2996為證券監(jiān)管費(fèi)和證券交易經(jīng)手費(fèi)的成本總系數(shù).
此外,投資組合模型中無(wú)風(fēng)險(xiǎn)投資為一年國(guó)債,年利率為y=3.85%,國(guó)債交易費(fèi)用為交易金額的0.1%,交易成本系數(shù)為μ0=0.1%.則國(guó)債的交易費(fèi)用是:
綜合上述條件,投資組合的總交易成本如下:
假設(shè)在時(shí)刻T的預(yù)期收益率為Y0,此時(shí)第i種股票的股價(jià)和收益率為pi和yi,約束條件:
投資組合模型及其約束條件表示如下:
基于社會(huì)行為比擬的粒子群優(yōu)化算法由Eberhart博士和Kennedy博士于1995年提出[10].它起源于對(duì)鳥(niǎo)群捕食行為的研究.基本概念是群體中的個(gè)體共享信息,以便整個(gè)群體的運(yùn)動(dòng)在問(wèn)題解決過(guò)程中從無(wú)序變?yōu)橛行?并最終獲得問(wèn)題的最佳解決方案.PSO算法包括一些極大地影響算法性能的參數(shù),通常被稱為探索-開(kāi)發(fā)權(quán)衡: 探索是在問(wèn)題空間中測(cè)試各個(gè)區(qū)域以便找到最優(yōu)的能力.
PSO算法通過(guò)設(shè)計(jì)無(wú)質(zhì)量粒子來(lái)模擬鳥(niǎo)群中的鳥(niǎo)類.粒子有兩個(gè)屬性: 速度v和位置x,速度代表運(yùn)動(dòng)速度,位置代表運(yùn)動(dòng)方向.算法中個(gè)體的極值Pbest是每個(gè)粒子分別在搜索空間中搜索最佳解,然后,粒子與整個(gè)粒子群中的其他粒子共享個(gè)體極值Pbest并找到最優(yōu)個(gè)體極值,將其作為整個(gè)粒子群的當(dāng)前全局最優(yōu)解Gbest.粒子群中的所有粒子基于其當(dāng)前的個(gè)體極值Pbest和整個(gè)粒子群共享的當(dāng)前全局最優(yōu)解Gbest,調(diào)整它們自己的速度和位置變量.圖1是PSO的流程圖.
天牛須搜索(BAS)算法基于天牛的覓食原理,是在2017年提出的一種尋找的最佳解決方案的新技術(shù)[11,12].當(dāng)覓食時(shí),天牛不知道食物的具體位置,使用兩個(gè)觸角來(lái)檢測(cè)食物的氣味并決定其自身的方向.具體來(lái)說(shuō),如果甲蟲(chóng)左側(cè)接收的氣味強(qiáng)于右側(cè),則甲蟲(chóng)向左移動(dòng),否則向右移動(dòng).基于這個(gè)簡(jiǎn)單的原理,它可以很容易地找到食物.與PSO類似,BAS使用迭代方法逐步逼近最優(yōu)解,而不是了解具體公式.在BAS算法中,只有個(gè)體.具體步驟如下:
圖1 PSO算法流程圖
(1)假設(shè)甲蟲(chóng)頭隨機(jī)向任何方向前進(jìn),因此從右天線到左天線的矢量方向也必須是隨機(jī)的.因此,對(duì)于n維空間中的優(yōu)化問(wèn)題,可以生成隨機(jī)向量來(lái)表示和標(biāo)準(zhǔn)化它.
其中,k是空間維度,rands()是隨機(jī)函數(shù).
(2)左右天線之間的關(guān)系可表示為:
xlxr,可以用質(zhì)心表示如下:
其中,xl代 表搜索區(qū)域的左側(cè),xr代表右側(cè).
(3)確定左右觸角的氣味強(qiáng)度,用f(xl)和f(xr)代替左右位置,f(x)是適應(yīng)度函數(shù).
(4)為了制定檢測(cè)行為指南,本文進(jìn)一步生成以下迭代模型,通過(guò)考慮搜索行為并迭代更新甲蟲(chóng)的位置來(lái)檢測(cè)氣味.
其中,xt表示在甲蟲(chóng)的第t次迭代中的質(zhì)心坐標(biāo),xlt表示在第t次迭代時(shí)的左側(cè)天線坐標(biāo),表示在第t次迭代時(shí)的右側(cè)天線坐標(biāo).第t次迭代的步長(zhǎng)是 δt,sign(x)代表符號(hào)功能.
(1)基于天牛須搜索的粒子群優(yōu)化算法(BSO)原理
BAS算法僅針對(duì)個(gè)體,不考慮群體之間的連接.PSO側(cè)重于群體對(duì)單個(gè)粒子的影響,忽略了粒子在搜索過(guò)程中自己的判斷.因此,本文將BAS和PSO模型集成在一起,提出基于天牛須搜索的粒子群優(yōu)化算法(BSO).PSO中的每個(gè)粒子都被描述為天牛并進(jìn)行搜索,天牛的初始位置和速度的過(guò)程與標(biāo)準(zhǔn)PSO的過(guò)程相同.然而,在迭代過(guò)程中,更新天牛群位置的方式不再僅僅依賴于歷史最佳解決方案和天牛個(gè)體的當(dāng)前全局最優(yōu)解,而是添加了天牛天線搜索的思想,在每次迭代中都有自己對(duì)環(huán)境空間的判斷.BSO中的個(gè)體將在每次迭代期間比較其左側(cè)和右側(cè)的適應(yīng)度函數(shù)值,并比較兩者的更好的值,其可用于更新天牛群的位置.通過(guò)該方法構(gòu)造的BSO可以很好地克服PSO算法導(dǎo)致的穩(wěn)定性差,傾向于局部最優(yōu)等問(wèn)題.甲蟲(chóng)群位置的更新公式如下:
其中,vki+1,表示第k次迭代后的第i個(gè)粒子的速度,xik+1表示第k次迭代后第i個(gè)粒子的位置,vbi表示BSO生成的更新率,c3是 學(xué)習(xí)因子,sign()是符號(hào)函數(shù).
(2)算法過(guò)程
1)初始化算法參數(shù),設(shè)置PSO的大小為N,學(xué)習(xí)因子為c1,c2,c3,慣性權(quán)重為W,以及每個(gè)甲蟲(chóng)兩個(gè)天線之間的距離為d0.
2)隨機(jī)初始化位置x和速度v,計(jì)算每個(gè)位置的適應(yīng)度,使用當(dāng)前位置作為個(gè)體最優(yōu)解Pbest,最后通過(guò)比較得到當(dāng)前的全局最優(yōu)值Gbest.
3)輸入迭代:
① 隨機(jī)化甲蟲(chóng)頭部.根據(jù)甲蟲(chóng)的位置計(jì)算每個(gè)甲蟲(chóng)的左側(cè)距離xleft和適合度f(wàn)left,右側(cè)距離xright和適合度f(wàn)right.通過(guò)比較兩者,獲得由群體中每個(gè)甲蟲(chóng)的左右適合度生成的速度更新規(guī)則:
② 通過(guò)比較每個(gè)甲蟲(chóng)當(dāng)前位置的適應(yīng)度和,得到個(gè)體最優(yōu)解Pbest和全局最優(yōu)解Gbest,通過(guò)當(dāng)前的個(gè)體最優(yōu)解和全局最優(yōu)解生成速度更新規(guī)則.
③ 結(jié)合上述兩種速度更新規(guī)則,獲取每種天線速度的當(dāng)前更新規(guī)則:
當(dāng)前位置更新規(guī)則:
④ 更新的學(xué)習(xí)因素和慣性權(quán)重分別為c1,c2,c3,w,更新的個(gè)人最優(yōu)解決方案和全局最優(yōu)解決方案Pbest,Gbest.
⑤ 完成迭代后,可得到全局最優(yōu)解Gbest,以及與之對(duì)應(yīng)的最優(yōu)解位置f(Gbest).
具體算法過(guò)程如表1所示.
表1 BSO算法過(guò)程
為了測(cè)試BSO算法是否更優(yōu)于解決投資組合問(wèn)題,本文將BSO算法與標(biāo)準(zhǔn)PSO算法進(jìn)行了比較,即將兩者在求解投資組合時(shí)所獲得的風(fēng)險(xiǎn)值與需要的迭代次數(shù)進(jìn)行了對(duì)比.
為了測(cè)試BSO對(duì)人工智能投資組合模型的結(jié)果,本文選擇了9只人工智能概念股,并獲取股票從2017年6月23日到2017年8月18日(9周)的周回報(bào)率.計(jì)算出協(xié)方差矩陣如表2,可以用來(lái)衡量九種股票的風(fēng)險(xiǎn).收益率和股票報(bào)價(jià)分別選擇周收益率和價(jià)格近似于9周收益率和平均價(jià)格,如表2所示.同時(shí),無(wú)風(fēng)險(xiǎn)資產(chǎn)為一年期國(guó)債(收益率為3.85%),假設(shè)總共有100萬(wàn)資產(chǎn)可用于投資,并且在投資前沒(méi)有購(gòu)買任何證券.
表2 所選股票的協(xié)方差矩陣
文章以交易手?jǐn)?shù)向量作為粒子群和天牛群的位置變量,股票的數(shù)目為變量空間的維度數(shù)目,因此模型的空間維度數(shù)為9.PSO和BSO算法設(shè)置的粒子數(shù)和天牛數(shù)都為40,粒子群設(shè)置的迭代的次數(shù)為8000次,天牛群設(shè)置的迭代次數(shù)為4000次.PSO算法的學(xué)習(xí)因子設(shè)置為c1=0.5,c2=2;BSO算法使用的學(xué)習(xí)因子為c1=0.5,c2=2,c3=3;兩種算法的慣性權(quán)重相同,都設(shè)置為w=0.9.兩種學(xué)習(xí)因素都是隨時(shí)間變化的,并采用懲罰法來(lái)處理約束條件.
為驗(yàn)證算法的性能,將總股資T設(shè)為100萬(wàn),股價(jià)為pi、 收益率yi設(shè)置為9只人工概念股的平均價(jià)格與周 收益率(見(jiàn)表3).PSO和BSO參數(shù)比較見(jiàn)表4.將預(yù)期投資組合回報(bào)率分別設(shè)置為0.06、0.08和0.10.算法確定投資組合中各種股票的投資比例xi及投資于無(wú)風(fēng)險(xiǎn)資產(chǎn)的投資比例x0,如表5所示.無(wú)風(fēng)險(xiǎn)資產(chǎn)的收益率為3.85%,將表2確定的協(xié)方差矩陣,表5確定的投資比例向量代入目標(biāo)函數(shù)(7)及約束條件(8),計(jì)算相應(yīng)的風(fēng)險(xiǎn)值,結(jié)果見(jiàn)表5.
表3 所選股票的周收益率和價(jià)格
表4 PSO和BSO算法參數(shù)的比較
表5 所選股票投資組合的投資比例
從表5的結(jié)果可以看出,對(duì)于不同的預(yù)期收益率,BSO計(jì)算的風(fēng)險(xiǎn)值低于PSO.也就是說(shuō),BSO可以在相同的預(yù)期回報(bào)率下獲得相對(duì)更好的結(jié)果.這表明BSO算法具有更強(qiáng)的全局搜索能力,并且該算法更容易找到全局最優(yōu)解.另一方面,當(dāng)預(yù)期收益率增加時(shí),兩種算法獲得的風(fēng)險(xiǎn)值增加,無(wú)風(fēng)險(xiǎn)資產(chǎn)的投資比例顯著下降,高收益股票的風(fēng)險(xiǎn)值顯著上升.可以看出,本文構(gòu)建的投資組合模型符合實(shí)際市場(chǎng)條件.在迭代時(shí)間上,PSO的迭代時(shí)間為60 s,BSO的迭代時(shí)間為40 s,BSO的迭代時(shí)間更短,更具優(yōu)勢(shì).
圖2和圖3顯示了兩種算法的收斂性.從算法收斂的角度來(lái)看,PSO算法大約有3000次迭代收斂,而B(niǎo)SO算法大約只有1500次.可以看出,與標(biāo)準(zhǔn)PSO相比,在引入天牛須搜索概念后,BSO算法每個(gè)粒子的更新方法不再僅依賴于自身的歷史最優(yōu)解和全局最優(yōu)解,在每次迭代期間增添粒子自己的獨(dú)立判斷,這使得粒子的迭代方法更靈活,更智能,使得收斂所需的迭代次數(shù)更少,結(jié)果更好.
圖2 PSO算法收斂曲線
圖3 BSO算法收斂曲線
本文針對(duì)標(biāo)準(zhǔn)粒子群容易陷入局部最優(yōu)和搜索精度不高的缺點(diǎn),在粒子群算法中引入了天牛須搜索概念,提出基于甲殼蟲(chóng)觸角搜索(BAS)的粒子群優(yōu)化算法,即BSO算法,并將其應(yīng)用在考慮現(xiàn)實(shí)約束條件、包含完整費(fèi)用的投資組合模型求解中.在迭代過(guò)程中,每個(gè)粒子的更新規(guī)則源自BAS,更新粒子群位置的方式不再僅僅依賴于歷史最佳解決方案和粒子個(gè)體的當(dāng)前全局最優(yōu)解,而是增添粒子在每次迭代中對(duì)環(huán)境空間的自身判斷.經(jīng)實(shí)證分析,對(duì)于不同的預(yù)期收益率,BSO計(jì)算的風(fēng)險(xiǎn)值低于PSO,算法收斂所需的迭代次數(shù)遠(yuǎn)少于PSO.并且,從迭代時(shí)間來(lái)看,BSO所需時(shí)間僅為PSO 的2/3.BSO顯示出比標(biāo)準(zhǔn)PSO更強(qiáng)的全局搜索能力,在求解多維約束問(wèn)題時(shí)尋找全局最優(yōu)解穩(wěn)定性和有效性更佳.