原文链接:http://tecdat.cn/?p=6811

我今年的研究课题是使用粒子群优化(PSO)的货币进行交易组合优化。在本文中,我将介绍投资组合优化并解释其重要性。其次,我将演示粒子群优化如何应用于投资组合优化。第三,我将解释套利交易组合,然后总结我的研究结果。


组合优化

投资组合包括资产和投资资本。投资组合优化涉及决定每项资产应投入多少资金。随着诸如多样化要求,最小和最大资产敞口,交易成本和外汇成本等限制因素的引入,我使用粒子群优化(PSO)算法。

投资组合优化的工作原理是预测投资组合中每种资产的预期风险和收益。该算法接受这些预测作为输入,并确定应在每个资产中投入多少资本,以使投资组合的风险调整收益最大化并满足约束。每种资产的预期风险和收益的预测需要尽可能准确,以使算法表现良好。存在各种方法,在本研究中,我研究了三种常用的方法。

  1. 正态分布式收益- 在此方法中,创建历史资产值的分布并随机抽样以获得每个资产的未来值。该方法假设历史和未来值是正态分布的。

  2. 收益遵循布朗运动 - 在这种方法中,随着时间的推移生成每个资产的随机游走,表示每日收益。由此计算出投资组合的总体收益。这种方法假设未来的收益遵循随机游走。

  3. 收益遵循几何布朗运动 - 在这种方法中,再次生成随机游走,但根据每日方差和长期市场漂移进行标准化。该方法假设未来的收益遵循标准化的随机游走。

在我的研究中,我发现第三种方法是最准确的


粒子群优化(PSO)

在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

该图描绘了粒子群优化算法相对于全局最优(蓝色)和局部最优位置(红色)如何更新群体中每个粒子的位置。

# 此类包含粒子群优化算法类粒子参数优化器
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)。其次,不允许对资产进行负分配。最后,资本应该分配给投资组合中至少这么多资产。后者是基数约束。两种常用技术用于确保粒子满足约束条件,

  1. 修复不满足约束的粒子 - 对于不满足约束的每个粒子,应用一组规则来改变粒子的位置。

  2. 惩罚不满足约束的粒子的适应性 - 对于不满足约束的每个粒子,惩罚该粒子的夏普比率。

套利交易组合组合

对于我的研究,我将这种技术应用于套利交易组合。套利交易组合包括多个套利交易。 套利交易是一种交易策略,其中交易者卖出利率相对较低的货币,并使用这些资金购买不同的货币,从而产生更高的利率。使用此策略的交易者试图找到称为利率差异的利率之间的差异。


通过使多种货币的投资多样化,可以减轻外汇损失的风险,但不能消除。因此,套利交易的投资组合本身风险低于个别套利交易。在套利交易投资组合的背景下,投资组合优化的目标是进一步降低外汇损失的风险,同时提高投资组合实现的投资收益。

投资组合优化的目标是确定应为每笔交易分配多少资金以优化风险调整收益。

在我的研究中,我使用粒子群优化算法来确定一组套利交易之间的投资资本的最优分配。我的研究中的套利交易投资组合包括22种不同的货币。货币包括澳元,加拿大元,瑞士法郎,人民币等。

非常感谢您阅读本文,有任何问题请在下面留言!


最受欢迎的见解

1.用机器学习识别不断变化的股市状况—隐马尔科夫模型(HMM)的应用

2.R语言GARCH-DCC模型和DCC(MVT)建模估计

3.R语言实现 Copula 算法建模依赖性案例分析报告

4.R语言COPULAS和金融时间序列数据VaR分析

5.R语言多元COPULA GARCH 模型时间序列预测

6.用R语言实现神经网络预测股票实例

7.r语言预测波动率的实现:ARCH模型与HAR-RV模型

8.R语言如何做马尔科夫转换模型markov switching model

9.matlab使用Copula仿真优化市场风险

拓端tecdat|Python基于粒子群优化的投资组合优化研究相关推荐

  1. 基于粒子群算法的配电网重构研究matlab程序

    基于粒子群算法的配电网重构研究matlab程序 参考文献:基于改进灰狼算法的含分布式电源配电网重构研究 (本文未考虑分布式电源) 摘要:使用基本环矩阵编码的智能优化算法在处理配电网重构问题中,通常使用 ...

  2. python基于粒子群优化的投资组合优化

    我今年的研究课题是使用粒子群优化(PSO)的货币进位交易组合优化.在本文中,我将介绍投资组合优化并解释其重要性.其次,我将演示粒子群优化如何应用于投资组合优化.第三,我将解释套利交易组合,然后总结我的 ...

  3. 【FNN分类】基于粒子群结合引力搜索算法优化前向反馈神经网络实现数据分类附matlab代码

    1 内容介绍 引力搜索算法(GSA)是一种基于引力定律和质量相互作用的新型启发式优化方法.实践证明,该算法具有较好的全局最优搜索能力,但在最后一次迭代中存在搜索速度较慢的问题.这项工作提出了粒子群优化 ...

  4. python粒子群喷发_Python基于粒子群优化的投资组合优化研究

    原文链接:http://tecdat.cn/?p=6811 我今年的研究课题是使用粒子群优化(PSO)的货币进位交易组合优化.在本文中,我将介绍投资组合优化并解释其重要性.其次,我将演示粒子群优化如何 ...

  5. python 组合优化_python基于粒子群优化的投资组合优化研究

    我今年的研究课题是使用粒子群优化(PSO)的货币进位交易组合优化.在本文中,我将介绍投资组合优化并解释其重要性.其次,我将演示粒子群优化如何应用于投资组合优化.第三,我将解释套利交易组合,然后总结我的 ...

  6. 多目标粒子群优化算法_基于粒子群优化的投资组合优化研究

    原文链接: 基于粒子群优化的投资组合优化研究​tecdat.cn 我今年的研究课题是使用粒子群优化(PSO)的货币进位交易组合优化.在本文中,我将介绍投资组合优化并解释其重要性.其次,我将演示粒子群优 ...

  7. 【故障诊断】基于粒子群和多元宇宙算法优化最大相关峭度解卷积(MCKD)实现信号处理附matlab代码

    1 内容介绍 1.1研究背景及意义 制造业的发展支撑着国家经济的稳定快速发展,是人民生活幸福和国家局势 稳定的保障.发展制造业离不开科技创新.加强制造业创新.推动产业转型升级是 提升我国国际地位.实现 ...

  8. 度量相似性数学建模_一种基于粒子群位置更新思想灰狼优化算法的K-Means文本分类方法与流程...

    技术特征: 1.一种基于粒子群位置更新思想灰狼优化算法的k-means文本分类方法,其特征在于:包括以下步骤: s1:对文本数据进行预处理,得到预处理后文本数据: s2:采用余弦角度为相似性度量,分别 ...

  9. 【ELM预测】基于粒子群算法PSO优化极限学习机预测含Matlab源码

    1 模型 为了提高空气质量预测精度,提出一种基于粒子群算法优化极限学习机的空气质量预测模型.运用粒子群算法优化极限学习机的初始权值和偏置,在保证预测误差最小的情况下实现空气质量最优预测.选择平均绝对百 ...

  10. 基于粒子群优化的MPPT控制

    目录 仿真图: 完整代码: 仿真文件: 仿真图: 完整代码: function [sys,x0,str,ts] = BFOA_PSO_pwm(t,x,u,flag) % %u为输入变量,u(1)为电流 ...

最新文章

  1. redis的分布式解决方式--codis (转)
  2. springboot 启动时could not exec java_面试被问为什么使用Spring Boot?答案好像没那么简单...
  3. xen挂载虚拟机分区删除日志 破解密码无所不能
  4. sequelize 增加数据库字段_使用Sequelize动态创建新表
  5. 利用ISCSI存储技术构建IP存储网络(安全篇)
  6. U盘无法拷贝超过4G的大文件
  7. OpenCV视频加速Video acceleration的实例(附完整代码)
  8. 洛谷 P2046 BZOJ 2007 海拔(NOI2010)
  9. SAP Spartacus 的路由配置
  10. mysql和springboot对照_SpringBoot(六) SpirngBoot与Mysql关系型数据库
  11. php 识别图片指定区域,简单实现图片局部识别的方法
  12. android listView与adapter
  13. java定时任务插件_Spring 定时任务插件quartz
  14. Python 最好用的8个VS Code扩展
  15. python编写简单漏洞扫描器(通过实别服务版本号)
  16. IEEE1588v2解析(1)--同步的概念
  17. java coherence_coherence配置说明
  18. ubuntu 16.04无法上网
  19. 设置MobaXterm复制粘贴快捷键
  20. C#调用百度大脑API初探2

热门文章

  1. 【并查集】亲戚(Relations)
  2. 所有类型的基类Object,所有类型的基类Type
  3. 全面综合的管理平台,让所有网络都有管理员
  4. 动手学PyTorch知识点汇总
  5. 查看anaconda环境下各个包的版本
  6. 第四季-专题17-LCD驱动程序设计
  7. php--变量与常量
  8. 79.iOS 设备的UI规范和iOS各控件默认高度
  9. python下的MySQLdb使用
  10. 算法篇---java算法应用