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

组合优化

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

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

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

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

返回遵循几何布朗运动 - 在这种方法中,再次生成随机游走,但根据每日方差和长期市场漂移进行缩放。该方法假设未来的回报遵循缩放的随机游走。

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

粒子群优化(PSO)

在PSO中,群中的每个粒子表示为向量。在投资组合优化的背景下,这是一个权重向量,表示每个资产的分配资本。矢量转换为多维搜索空间中的位置。每个粒子也会记住它个人最好的历史位置。对于PSO的每次迭代,找到全局最佳位置。这是群体中最好的个人最佳位置。一旦找到全球最佳位置,每个粒子都会更接近其个人最佳位置和全球最佳位置。当在多次迭代中执行时,该过程产生一个解决该问题的良好解决方案,因为粒子会聚在近似最优解上。

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

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 组合优化_python基于粒子群优化的投资组合优化研究相关推荐

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

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

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

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

  3. 【选址优化】基于粒子群算法求解配电网抢修选址优化问题含Matlab源码

    1 简介 基于粒子群算法求解配电网抢修选址优化问题​. 2 部分代码 function DrawCircle(Circle1, Circle2, r, 3600, s)​plot(model.trou ...

  4. 优化算法 | 基于粒子群优化算法的Bp神经网络预测21~22赛季NBA总冠军(附MATLAB代码)

    文章目录 前言 一.数据准备 二.基于PSO的Bp神经网络预测 1.粒子表达方式 2.目标函数 3.粒子速度和位置的更新 三.MATLAB代码 四.预测结果 五.代码获取方式 总结 近期你可能错过了的 ...

  5. 【微电网优化】基于粒子群算法求解混合储能系统容量优化问题含Matlab源码

    1 简介 为了提高供电的稳定性.可靠性,实现日夜发电,在太阳能.风能资源比较丰富的区域,建立风能.太阳能互补发电系统.但是由于系统投入成本过高,风.光又存在间歇性和不稳定性等问题,需要配置储能系统来平 ...

  6. 【布局优化】基于粒子群算法求解集线器位置分配问题附matlab代码

    1 内容介绍 ​本文基于MATLAB软件结合粒子群算法,实现了粒子群算法中粒子的适应度计算,极大的减少了优化计算耗时,对适应度计算较为耗时的优化计算,有着明显的效果;最后本文采用粒子群优化算法优化计算 ...

  7. 【配电网优化】基于粒子群算法实现GARVER-6节点配电网络直流潮流计算附matlab代码

    1 内容介绍 一种基于粒子群算法的交直流混联配电网潮流最优化控制算法,属配电调控领域.根据配电网结构图确定区域间配电网互联的线路并编号;设定以线路分类的二维矩阵,关联线路编号与线路上的功率流动值;应用 ...

  8. 【微电网优化】基于粒子群算法求解智能微电网调度问题附matlab代码

    1 简介 搭建光伏,风力发电机和储能电池的数学模型.充分考虑对蓄电池的充放电保护,制定优化调度策略.应用粒子群算法(PSO)对其优化调度模型进行求解,在算法中增加了蓄电池满充满放的限制条件,同时使系统 ...

  9. 【布局优化】基于粒子群求解物流选址matlab源码

    一.简介 粒子群优化(PSO)是一种基于群体智能的数值优化算法,由社会心理学家James Kennedy和电气工程师Russell Eberhart于1995年提出.自PSO诞生以来,它在许多方面都得 ...

最新文章

  1. IDEA中的项目没有被SVN管理解决办法
  2. java 反射 int_Java 反射由浅入深 | 进阶必备
  3. Android转载一:Android文件命名规范
  4. 计算机专业用锐龙笔记本,轻松应对工作挑战——ThinkPad T14 锐龙版,适合办公的笔记本电脑...
  5. 傻子都能看懂的马拉车Manacher
  6. 一个问题就可以辨别真假NLP(自然语言处理)研究者
  7. NBU客户端安装(linux和windows)
  8. 2019.01.21 bzoj2441: [中山市选2011]小W的问题(树状数组+权值线段树)
  9. 【Elasticsearch】为什么我在Elasticsearch集群中看到大量的拒绝?
  10. 接口 java性能_MyPerf4J 一个极快的Java接口性能监控和统计工具
  11. supervisor详解
  12. Mac OS下将iso镜像写入U盘
  13. json多层集合转对象
  14. 架构之美第三章-美丽架构之道
  15. 事件修饰符(2) .prevent 阻止默认事件
  16. STM32F4 IAP实现总结
  17. Axure下拉框的多选与取消
  18. c#文件名去掉后缀_C#如何从文件路径中分离出文件名以及文件扩展名
  19. 揭露强奸犯的黑客被判有罪?审视CFAA计算机欺诈法
  20. 计算机编程好难啊,揭秘|为什么我们觉得编程好难?

热门文章

  1. 云视通2.0本地开发新方案
  2. 教你用Python画笔填充颜色
  3. 制作 USB 启动盘
  4. 前端必看书籍总结(哪些值得看)
  5. 关于技术高手:理念与知识
  6. Python环境变量PYTHONPATH设置和easy_install简单使用
  7. python 任务队列 huey_python huey中文文档(二)
  8. 国新办就深化出租汽车行业改革等相关情况举行发布会直播
  9. python读取数据文件、并把里面的数据变成x的二维坐标_python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法...
  10. 绩效管理与企业文化的关系