我今年的研究课题是使用粒子群优化(PSO)的货币进位交易组合优化。在本文中,我将介绍投资组合优化并解释其重要性。其次,我将演示粒子群优化如何应用于投资组合优化。第三,我将解释套利交易组合,然后总结我的研究结果。我的研究会议论文由Andries Engelbrecht教授,Katherine Malan女士和我本人共同撰写。


组合优化

投资组合包括资产和投资资本。投资组合优化涉及决定每项资产应投入多少资金。随着诸如多样化要求,最小和最大资产敞口,交易成本和外汇成本等限制因素的引入,这变得复杂。 使用统计技术处理约束可能很困难,因此计算机科学家已经开发出可用于优化投资组合的智能搜索算法。我使用粒子群优化(PSO)算法。

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

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

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

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

在我的研究中,我发现第三种方法是最准确的。我建议有兴趣开发自己的投资组合优化器的读者也尝试使用递归神经网络来预测每种资产的预期风险和回报。递归神经网络捕获数据的时间属性,因此非常适合识别趋势。此外,通过使用递归神经网络,可以使用财务指标来尝试预测市场。预测不需要完全准确,它们只需要比其他预测方法更准确有效。


粒子群优化(PSO)

PSO是一种基于人口的元启发式搜索算法,源自植绒鸟类的社会行为。PSO已被用于寻找非常复杂的优化问题的解决方案。通过将PSO分解为多个部分,您可以看到算法的简单性和有效性。基于群体意味着搜索算法维持一组优化问题的解决方案。这个术语来自流行的遗传算法。在PSO中,我们将此群体称为群体。Metaheuristics是将不同解决方案与同一优化问题进行比较的过程。它们允许算法从群中选择好的解决方案。启发式被称为算法的目标函数,表示为f()。

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

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

PSO的表现受到勘探开发权衡的影响。探索描述了PSO探索搜索空间不同区域的能力。Exploitation描述了PSO将搜索集中在搜索空间的有前途区域的能力。为了增强PSO的探索和开发能力,应用了以下算法增强功能:

  • 聚合粒子的随机重新初始化 - 通过在粒子聚集在全局最佳粒子上时重新启动粒子来改进探索。使用两个粒子(载体)之间的相似性函数测量收敛。

如果粒子在全局最佳粒子附近会聚,但不如全局最佳粒子适合,则在搜索空间的某处随机重新初始化。这提高了PSO的探索能力。

  • 全球最佳粒子的选择性突变 - 通过初始化邻近全球最佳粒子的邻居来改进。如果邻居比全球最佳粒子更好,则全球最佳粒子被邻居取代。

对于算法的每次迭代,在全局最佳粒子附近创建邻居。如果这些邻居中的任何一个优于全局最佳粒子,则替换全局最佳粒子。

此外,通过处理独立线程中的每个粒子并对常用函数应用memoization,显着提高了算法的运行时性能。Memoization是一种用于加速计算机程序性能的优化技术。有关更多信息,请访问 http://en.wikipedia.org/wiki/Memoization。


使用粒子群优化的投资组合优化

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. 惩罚不满足约束的粒子的适应性 - 对于不满足约束的每个粒子,惩罚该粒子的夏普比率。

对于我的研究,我修复了粒子,使它们满足了一系列约束条件。我使用第二种技术来模拟交易成本对投资组合业绩的影响。


贸易组合

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

随身携带交易一直是许多研究的主题,因为它们违反了未覆盖的利率平价条件(UIP)。UIP指出,利率差异应该被长期外汇汇率波动所抵消。在这种情况下,套利交易在理论上是无利可图的,然而,套利交易在十多年内产生了相对稳定的利润,尽管存在外汇收益或损失的风险。考虑以下假设的例子,即交易者进入日元(¥)和美元($)之间的套利交易


交易商利用10万日元从日本贷款人那里以固定利率0.10%借入90,000日元。汇率为¥1到0.01 $(或1 $到¥100),因此投机者将他的¥1,000,000兑换成10,000 $。然后投机者购买价值1万美元的1年期美国国库券,每年支付约5.50%。在年底,投机者必须向日本贷款人支付1000日元的利息,相当于1000日元。投机者通过其美国国库券投资获得了550美元的利息。但在过去一年中,美元汇率略有下降,现在汇率为1美元兑90日元(或1日元至0.0111美元)。所以投机者将他的550美元兑换成¥49,500。然后,他支付了1000日元,并获得了48,500日元的利润。这是4.85%的投资回报率,低于预期的5。由于汇兑损失,4%的回报率(利率差异为5.50% - 0.10%)。然而,由于投机者只有10万日元开始,他的实际投资回报率为48.5%。


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

日元,美元,南非兰特和巴西雷亚尔之间的交易组合。投资组合优化的目标是确定应为每笔交易分配多少资金以优化风险调整回报。

在我的研究中,我使用粒子群优化算法来确定一组套利交易之间的投资资本的最优分配。我的研究中的套利交易投资组合包括22种不同的货币,每种货币由日元(¥)资助。货币包括澳元,巴西雷亚尔,加拿大元,瑞士法郎,人民币,丹麦克朗,欧元,英镑,印尼盾,以色列新谢克尔,印度卢比,墨西哥比索,马来西亚林吉特,挪威克朗,新西兰元,菲律宾比索,俄罗斯卢布,瑞典克朗,泰铢,土耳其里拉和美元。

还有问题吗?联系我们!

大数据部落 -中国专业的第三方数据服务提供商,提供定制化的一站式数据挖掘和统计分析咨询服务

统计分析和数据挖掘咨询服务:y0.cn/teradat(咨询服务请联系官网客服)

​QQ:3025393450

【服务场景】  

科研项目; 公司项目外包;线上线下一对一培训;数据采集;学术研究;报告撰写;市场调查。

【大数据部落】提供定制化的一站式数据挖掘和统计分析咨询服务


转载于:https://www.cnblogs.com/tecdat/p/10538402.html

python基于粒子群优化的投资组合优化相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. 【回归预测-ELM预测】基于粒子群算法PSO优化极限学习机预测附matlab代码

    1 内容介绍 风电功率预测为电网规划提供重要的依据,研究风电功率预测方法对确保电网在安全稳定运行下接纳更多的风电具有重要的意义.针对极限学习机(ELM)回归模型预测结果受输入参数影响的问题,现将粒子群 ...

  9. 基于多目标算法的冷热电联供型综合能源系统运行优化 综合能源 冷热电三联供 粒子群算法 多目标优化 多目标粒子群 冷热电联供 综合能源系统 运行优化

    多目标粒子群 冷热电联供 综合能源系统 运行优化 关键词:综合能源 冷热电三联供 粒子群算法 多目标优化 参考文档:<基于多目标算法的冷热电联供型综合能源系统运行优化> 仿真平台:MATL ...

最新文章

  1. 2018“硅谷技划”随笔(一):再论中美员工福利巨大差距的背后
  2. vm虚拟机下linux安装python_机器人编程01——虚拟机VM安装Ubuntu并配置python开发环境...
  3. python从txt读取数据并画图_Python读取txt某几列绘图的方法
  4. Android 应用开发---ViewPager----1.相关基本知识
  5. “人,落魄时,千万别装可怜”你怎么看?
  6. JavaScript 基础知识个人总结
  7. WIN10你不能访问此共享文件夹,因为你组织的安全策略
  8. 通过尾注设置参考文献
  9. 使用学信网验证报告免费使用jetbrains全家桶
  10. Flask+ZUI 开发小型工具网站 3.1 ——ZUI漂浮消息
  11. K.M.P算法个人浅谈
  12. 重庆生小孩可以领那些钱
  13. html中怎麼添加箭头,html – 向滚动条添加箭头
  14. 特斯拉如何恢复出厂设置_iphone如何恢复手机出厂设置
  15. 洛谷 P1008 三连击
  16. 微信小程序支付-java对接微信
  17. 在fedora 15 中安装汉语拼音输入法
  18. 微信小程序汽车租赁平台+后台管理系统
  19. 唯品会osp简介(转)
  20. Python choice() 函数语法及参数介绍

热门文章

  1. 达芬奇系列RBL 简介
  2. 如何使用FTP软件连接WordPress网站
  3. Java服务-常用技术-maven-assembly-plugin打包springboot、打包目录结构及启动命令
  4. Java代码获取三位数的百位、十位、个位
  5. 计算机与书法专业,厉害了!计算机应用专业的他获省级书法比赛一等奖
  6. 【6s965-fall2022】剪枝✂pruningⅠ
  7. html文件自动批阅器怎么设计,只要这样做,就可以实现自动批阅试卷了
  8. 绝地求生服务器维护7月7日,绝地求生最新维护公告时间 7月7日维护时间内容一览...
  9. springboot 2.x 406(Not Acceptable)错误处理
  10. Java Protected关键字权限控制实例解析