全文連結:http://tecdat.cn/?p=6811
最近我們被客戶要求撰寫關於粒子群優化的研究報告,包括一些圖形和統計輸出。
在PSO中,群中的每個粒子表示為向量。在投資組合優化的背景下,這是一個權重向量,表示每個資產的分配資本。矢量轉換為多維搜索空間中的位置。每個粒子也會記住它最好的歷史位置。對於PSO的每次疊代,找到全局最優位置。這是群體中最好的最優位置。一旦找到全局最優位置,每個粒子都會更接近其局部最優位置和全局最優位置。當在多次疊代中執行時,該過程產生一個解決該問題的良好解決方案,因為粒子會聚在近似最優解上。
# 此類包含群中的粒子代碼
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
點擊標題查閱往期內容
Python計算股票投資組合的風險價值(VaR)
左右滑動查看更多
01
02
03
04
該圖描繪了粒子群優化算法相對於全局最優(藍色)和局部最優位置(紅色)如何更新群體中每個粒子的位置。
# 此類包含粒子群優化算法類粒子參數優化器
class ParticleSwarmOptimizer:
solution = []
swarm = []
def __init__(self):
for h in range(swarmSize):
particle = Particle()
self.swarm.append(particle)
PSO的表現受到權重的影響。探索描述了PSO探索搜索空間不同區域的能力。Exploitation描述了PSO將搜索集中在搜索空間的有前途區域的能力。為了增強PSO的探索和開發能力,應用了以下算法增強功能:
如果粒子在全局最優粒子附近會聚,但不如全局最優粒子合適,則在搜索空間的某處隨機重新初始化。這提高了PSO的探索能力。
對於算法的每次疊代,在全局最優粒子附近創建鄰居。如果這些鄰居中的任何一個優於全局最優粒子,則替換全局最優粒子。
PSO算法可用於優化投資組合。在投資組合優化的背景下,群中的每個粒子代表投資組合中資產之間的潛在資本分配。這些投資組合的相對適應性可以使用許多平衡風險和預期收益的金融效用函數之一來確定。我使用夏普比率,因為這已成為行業認可的基準投資組合表現標準。考慮以下適用於由三個資產組成的投資組合的PSO圖示,
使用粒子群優化(PSO)的投資組合優化的例證。灰色粒子正在更新。紅色粒子是灰色粒子的局部最優位置,藍色粒子是全局最優位置。
灰色粒子轉換為向量(0.5,0.2,0.3),意味著投資組合資本的50%分配給資產1,20%分配給資產2,30%分配給資產3。該分配的預期夏普比率為0.38,小於局部最優位置(紅色粒子)和全局最優位置(藍色粒子)。這樣,灰色粒子的位置被更新,使得它更接近全局最優粒子和局部最優粒子。
使用粒子群優化(PSO)的投資組合優化的例證。灰色粒子被更新,使其更接近全局最優,並且是局部最優的。得到的矢量比以前更好。
灰色粒子已移動,現在轉換為矢量(0.3,0.3,0.4),其預期夏普比率為0.48。該值高於之前的局部最優位置,因此局部最優位置(紅色粒子)將更新為當前位置。
使用粒子群優化(PSO)的投資組合優化的例證。局部最優位置(紅色粒子)現已更新為粒子的當前位置。
使用粒子群優化的真正挑戰是確保滿足投資組合優化的約束。如前所述,存在許多限制。最常見的限制因素首先是資產之間不再分配和不少於100%的可用資本(即權重向量必須加起來為1.0)。其次,不允許對資產進行負分配。最後,資本應該分配給投資組合中至少這麼多資產。後者是基數約束。兩種常用技術用於確保粒子滿足約束條件,
對於我的研究,我將這種技術應用於套利交易組合。套利交易組合包括多個套利交易。套利交易是一種交易策略,其中交易者賣出利率相對較低的貨幣,並使用這些資金購買不同的貨幣,從而產生更高的利率。使用此策略的交易者試圖找到稱為利率差異的利率之間的差異。
通過使多種貨幣的投資多樣化,可以減輕外匯損失的風險,但不能消除。因此,套利交易的投資組合本身風險低於個別套利交易。在套利交易投資組合的背景下,投資組合優化的目標是進一步降低外匯損失的風險,同時提高投資組合實現的投資收益。
投資組合優化的目標是確定應為每筆交易分配多少資金以優化風險調整收益。
在我的研究中,我使用粒子群優化算法來確定一組套利交易之間的投資資本的最優分配。我的研究中的套利交易投資組合包括22種不同的貨幣。貨幣包括澳元,加拿大元,瑞士法郎,人民幣等。
非常感謝您閱讀本文,有任何問題請在下面留言!
本文摘選 《 Python基於粒子群優化的投資組合優化研究 》 ,點擊「閱讀原文」獲取全文完整資料。
點擊標題查閱往期內容
動量和馬科維茨Markowitz投資組合(Portfolio)模型實現
Python風險價值計算投資組合VaR、期望損失ES
極值理論 EVT、POT超閾值、GARCH 模型分析股票指數VaR、條件CVaR:多元化投資組合預測風險測度分析
Fama French (FF) 三因子模型和CAPM模型分析股票市場投資組合風險/收益可視化
R語言Fama-French三因子模型實際應用:優化投資組合
R語言動量和馬科維茨Markowitz投資組合(Portfolio)模型實現
Python計算股票投資組合的風險價值(VaR)
R語言Markowitz馬克維茨投資組合理論分析和可視化
R語言中的廣義線性模型(GLM)和廣義相加模型(GAM):多元(平滑)回歸分析保險資金投資組合信用風險敞口
Python基於粒子群優化的投資組合優化研究
多均線趨勢策略玩轉股票投資R語言中的廣義線性模型(GLM)和廣義相加模型(GAM):多元(平滑)回歸分析保險資金投資組合信用風險敞口Python基於粒子群優化的投資組合優化研究隱馬爾科夫模型(HMM)在股票市場實戰R語言隱馬爾可夫模型HMM識別不斷變化的股票市場條件基於ARCH模型股價波動率建模分析
R使用LASSO回歸預測股票收益
IBM SPSS Modeler通過數據挖掘我們能從股市數據得到什麼
用R語言實現神經網絡預測股票實例
使用R語言對S&P500股票指數進行ARIMA + GARCH交易策略
用R語言實現神經網絡預測股票實例
用機器學習識別不斷變化的股市狀況—隱馬爾科夫模型(HMM)股票指數預測實戰