Python基于粒子群優(yōu)化的投資組合優(yōu)化研究
原文鏈接:http://tecdat.cn/?p=6811
?
我今年的研究課題是使用粒子群優(yōu)化(PSO)的貨幣進(jìn)位交易組合優(yōu)化。在本文中,我將介紹投資組合優(yōu)化并解釋其重要性。其次,我將演示粒子群優(yōu)化如何應(yīng)用于投資組合優(yōu)化。第三,我將解釋套利交易組合,然后總結(jié)我的研究結(jié)果。
組合優(yōu)化
投資組合包括資產(chǎn)和投資資本。投資組合優(yōu)化涉及決定每項(xiàng)資產(chǎn)應(yīng)投入多少資金。隨著諸如多樣化要求,最小和最大資產(chǎn)敞口,交易成本和外匯成本等限制因素的引入,我使用粒子群優(yōu)化(PSO)算法。
投資組合優(yōu)化的工作原理是預(yù)測投資組合中每種資產(chǎn)的預(yù)期風(fēng)險(xiǎn)和回報(bào)。該算法接受這些預(yù)測作為輸入,并確定應(yīng)在每個(gè)資產(chǎn)中投入多少資本,以使投資組合的風(fēng)險(xiǎn)調(diào)整回報(bào)最大化并滿足約束。每種資產(chǎn)的預(yù)期風(fēng)險(xiǎn)和回報(bào)的預(yù)測需要盡可能準(zhǔn)確,以使算法表現(xiàn)良好。存在各種方法,在本研究中,我研究了三種常用的方法。
正態(tài)分布式回報(bào) - 在此方法中,創(chuàng)建歷史資產(chǎn)值的分布并隨機(jī)抽樣以獲得每個(gè)資產(chǎn)的未來值。該方法假設(shè)歷史和未來值是正態(tài)分布的。
返回遵循布朗運(yùn)動(dòng)?- 在這種方法中,隨著時(shí)間的推移生成每個(gè)資產(chǎn)的隨機(jī)游走,表示每日回報(bào)。由此計(jì)算出投資組合的總體回報(bào)。這種方法假設(shè)未來的回報(bào)遵循隨機(jī)游走。
返回遵循幾何布朗運(yùn)動(dòng)?- 在這種方法中,再次生成隨機(jī)游走,但根據(jù)每日方差和長期市場漂移進(jìn)行縮放。該方法假設(shè)未來的回報(bào)遵循縮放的隨機(jī)游走。
在我的研究中,我發(fā)現(xiàn)第三種方法是最準(zhǔn)確的
?
粒子群優(yōu)化(PSO)
?
在PSO中,群中的每個(gè)粒子表示為向量。在投資組合優(yōu)化的背景下,這是一個(gè)權(quán)重向量,表示每個(gè)資產(chǎn)的分配資本。矢量轉(zhuǎn)換為多維搜索空間中的位置。每個(gè)粒子也會(huì)記住它個(gè)人最好的歷史位置。對(duì)于PSO的每次迭代,找到全局最佳位置。這是群體中最好的個(gè)人最佳位置。一旦找到全球最佳位置,每個(gè)粒子都會(huì)更接近其個(gè)人最佳位置和全球最佳位置。當(dāng)在多次迭代中執(zhí)行時(shí),該過程產(chǎn)生一個(gè)解決該問題的良好解決方案,因?yàn)榱W訒?huì)聚在近似最優(yōu)解上。
# 此類包含群中的粒子代碼
class Particle:
velocity = []
pos = []
pBest = []
def __init__(self):
for i in range(dimension):
self.pos.append(random.random())
self.velocity.append(0.01 * random.random())
self.pBest.append(self.pos[i])
return

?
該圖描繪了粒子群優(yōu)化算法相對(duì)于全局最佳(藍(lán)色)和個(gè)人最佳位置(紅色)如何更新群體中每個(gè)粒子的位置。
# 此類包含粒子群優(yōu)化算法類粒子參數(shù)優(yōu)化器
class ParticleSwarmOptimizer:
solution = []
swarm = []
def __init__(self):
for h in range(swarmSize):
particle = Particle()
self.swarm.append(particle)
PSO的表現(xiàn)受到權(quán)衡的影響。探索描述了PSO探索搜索空間不同區(qū)域的能力。Exploitation描述了PSO將搜索集中在搜索空間的有前途區(qū)域的能力。為了增強(qiáng)PSO的探索和開發(fā)能力,應(yīng)用了以下算法增強(qiáng)功能:
聚合粒子的隨機(jī)重新初始化 - 通過在粒子聚集在全局最佳粒子上時(shí)重新啟動(dòng)粒子來改進(jìn)探索。使用兩個(gè)粒子(載體)之間的相似性函數(shù)測量收斂。

?
如果粒子在全局最佳粒子附近會(huì)聚,但不如全局最佳粒子適合,則在搜索空間的某處隨機(jī)重新初始化。這提高了PSO的探索能力。
最佳粒子的選擇性突變 - 通過初始化鄰近全球最佳粒子的鄰居來改進(jìn)。如果鄰居比全球最佳粒子更好,則全球最佳粒子被鄰居取代。

?
對(duì)于算法的每次迭代,在全局最佳粒子附近創(chuàng)建鄰居。如果這些鄰居中的任何一個(gè)優(yōu)于全局最佳粒子,則替換全局最佳粒子。
?
使用粒子群優(yōu)化的投資組合優(yōu)化
PSO算法可用于優(yōu)化投資組合。在投資組合優(yōu)化的背景下,群中的每個(gè)粒子代表投資組合中資產(chǎn)之間的潛在資本分配。這些投資組合的相對(duì)適應(yīng)性可以使用許多平衡風(fēng)險(xiǎn)和預(yù)期收益的金融效用函數(shù)之一來確定。我使用夏普比率,因?yàn)檫@已成為行業(yè)認(rèn)可的基準(zhǔn)投資組合表現(xiàn)標(biāo)準(zhǔn)??紤]以下適用于由三個(gè)資產(chǎn)組成的投資組合的PSO圖示,

?
?
使用粒子群優(yōu)化(PSO)的投資組合優(yōu)化的例證?;疑W诱诟隆<t色粒子是灰色粒子的個(gè)人最佳位置,藍(lán)色粒子是全球最佳位置。
灰色粒子轉(zhuǎn)換為向量(0.5,0.2,0.3),意味著投資組合資本的50%分配給資產(chǎn)1,20%分配給資產(chǎn)2,30%分配給資產(chǎn)3。該分配的預(yù)期夏普比率為0.38,小于個(gè)人最佳位置(紅色粒子)和全球最佳位置(藍(lán)色粒子)。這樣,灰色粒子的位置被更新,使得它更接近全局最佳粒子和個(gè)人最佳粒子。

??
?
使用粒子群優(yōu)化(PSO)的投資組合優(yōu)化的例證?;疑W颖桓拢蛊涓咏蜃罴眩⑶沂莻€(gè)人最佳的。得到的矢量比以前更好。
灰色粒子已移動(dòng),現(xiàn)在轉(zhuǎn)換為矢量(0.3,0.3,0.4),其預(yù)期夏普比率為0.48。該值高于之前的個(gè)人最佳位置,因此個(gè)人最佳位置(紅色粒子)將更新為當(dāng)前位置。

?
使用粒子群優(yōu)化(PSO)的投資組合優(yōu)化的例證。個(gè)人最佳位置(紅色粒子)現(xiàn)已更新為粒子的當(dāng)前位置。
使用粒子群優(yōu)化的真正挑戰(zhàn)是確保滿足投資組合優(yōu)化的約束。如前所述,存在許多限制。最常見的限制因素首先是資產(chǎn)之間不再分配和不少于100%的可用資本(即權(quán)重向量必須加起來為1.0)。其次,不允許對(duì)資產(chǎn)進(jìn)行負(fù)面分配。最后,資本應(yīng)該分配給投資組合中至少這么多資產(chǎn)。后者是基數(shù)約束。兩種常用技術(shù)用于確保粒子滿足約束條件,
修復(fù)不滿足約束的粒子 - 對(duì)于不滿足約束的每個(gè)粒子,應(yīng)用一組規(guī)則來改變粒子的位置。
懲罰不滿足約束的粒子的適應(yīng)性 - 對(duì)于不滿足約束的每個(gè)粒子,懲罰該粒子的夏普比率。
?
?貿(mào)易組合
對(duì)于我的研究,我將這種技術(shù)應(yīng)用于套利交易組合。套利交易組合包括多個(gè)套利交易。 套利交易是一種交易策略,其中交易者賣出利率相對(duì)較低的貨幣,并使用這些資金購買不同的貨幣,從而產(chǎn)生更高的利率。使用此策略的交易者試圖捕捉稱為利率差異的利率之間的差異。
?
通過使多種貨幣的投資多樣化,可以減輕外匯損失的風(fēng)險(xiǎn),但不能消除。因此,套利交易的投資組合本身風(fēng)險(xiǎn)低于個(gè)別套利交易。在套利交易投資組合的背景下,投資組合優(yōu)化的目標(biāo)是進(jìn)一步降低外匯損失的風(fēng)險(xiǎn),同時(shí)提高投資組合實(shí)現(xiàn)的投資回報(bào)。

?
日元,美元,南非蘭特和巴西雷亞爾之間的交易組合。投資組合優(yōu)化的目標(biāo)是確定應(yīng)為每筆交易分配多少資金以優(yōu)化風(fēng)險(xiǎn)調(diào)整回報(bào)。
在我的研究中,我使用粒子群優(yōu)化算法來確定一組套利交易之間的投資資本的最優(yōu)分配。我的研究中的套利交易投資組合包括22種不同的貨幣。貨幣包括澳元,巴西雷亞爾,加拿大元,瑞士法郎,人民幣,丹麥克朗,歐元,英鎊,印尼盾,以色列新謝克爾,印度盧比,墨西哥比索,馬來西亞林吉特,挪威克朗,新西蘭元,菲律賓比索,俄羅斯盧布,瑞典克朗,泰銖,土耳其里拉和美元。
?
非常感謝您閱讀本文,有任何問題請(qǐng)?jiān)谙旅媪粞裕?/h1>
?