精华内容
下载资源
问答
  • 投资组合优化.pptx

    2021-09-21 04:26:14
    投资组合优化.pptx
  • 此示例显示了条件风险价值 (CVaR) 投资组合优化工作流程,其中包括: * 如何基于正态分布和经验分布模拟资产场景*如何使用PortfolioCVaR对象构建投资组合* 如何评估有效前沿* 如何提取投资组合权重* 如何计算投资...
  • 投资组合优化是一种数学方法,它提供了预期利润和风险之间的权衡,通常用于在一系列金融资产中做出投资决策。 本次提交快速回顾了投资组合优化的概念,并介绍了这种方法在能源系统中的应用。 致谢: 本次提交是为...
  • 投资组合优化 使用MATLAB比较投资组合优化策略
  • 投资组合优化器 概述 投资组合优化器有两个接口:证券回报检索和优化。 Getstocks.py 从雅虎财经获取给定证券的月回报。 Optimize.py 利用 Harry Markowitz 的投资组合理论和 EV 理论,通过生成必要的分配来以最小的...
  • po4j Java投资组合优化
  • 本文将模拟退火(SA)算法应用于投资组合优化问题。模拟退火(SA)是一种通用的概率和元启发式搜索算法,可用于找到以具有多个最优的大搜索空间为特征的优化问题的可接受解决方案。投资组合优化涉及在资产之间分配...

     

    本文将模拟退火(SA)算法应用于投资组合优化问题。模拟退火(SA)是一种通用的概率和元启发式搜索算法,可用于找到以具有多个最优的大搜索空间为特征的优化问题的可接受解决方案。投资组合优化涉及在资产之间分配资本,以最大化风险调整回报

    基本模拟退火算法

    该算法的灵感来自冶金退火中的随机过程,其中材料被反复加热和冷却。这样做是为了增加材料晶体的尺寸并减少其缺陷。这些材料特性取决于材料中通过加热和冷却调节的热力学自由能水平。

    一开始,这个真实世界的概念似乎很难转化为优化算法,但是,通过一些“算法许可证”,得到的算法实际上非常简单。投资组合优化的模拟退火算法基本上只包含11个步骤,其中只有两个非常重要(加下划线),

     


    初始化一个随机可行解,s

    初始化找到的最佳解,s *

    赋值s *←max(f(s),f( s *))

    虽然停止条件不满足:

      生成一个可行的随机解,s'

      计算移动的概率,P(s ← s')

      如果满足移动条件:

        更新当前的解决方案,小号 ← S'

        如果健身小号大于S *,˚F(小号)> ˚F(S *):

          更新找到的最佳解决方案,s * ← s

    返回找到的最佳解决方案,s *

     


    这两个步骤特别重要的原因是它们影响了勘探开采权益。探索描述了探索搜索空间的不同区域的算法能力,而Exploitation描述了将搜索集中在搜索空间的有希望区域中的算法能力。

    本文的其余部分将进一步详细讨论这两个步骤。下图说明了具有多个最优的搜索空间中的模拟退火算法。蓝色圆圈代表当前解决方案,绿色圆圈代表随机可行解决方案,红色圆圈跟踪找到的最佳解决方案。

    模型退火的投资组合优化

    生成可行的随机解决方案

    为了理解相对于当前解s *生成随机解s'的影响,考虑这两种情况,(1)s'生成接近s *,并且(2)s'生成远离s *。假设s *在搜索空间的有前途的区域中,则在(1)中算法正在利用并且在(2)中算法正在探索。

    投资组合中任何一项资产的最大资本配置为1.00,如果我们假设不允许做空,那么投资组合中任何一项资产的最低资本配置为0.00。因为这个有效范围非常小, 所以可以通过对s *的每个维度应用随机百分比扰动来生成  新的 s'。

    小扰动与大扰动的影响如下所示,

    当前解决方案的大扰动

    来自最佳找到的解决方案的大扰动导致两个解决方案之间的总绝对距离更大。

    当前解决方案的小扰动

    来自最佳找到的解决方案的较小扰动导致两个解决方案之间的总绝对距离较小。

    通过控制最大百分比扰动, 可以控制s'  和 s *之间的距离  。因此,可以调整算法的探索和利用。使用三角分布来缩小随时间的最大扰动导致改进的模拟退火算法用于投资组合优化,

    下面的第一张图显示了更大的三角形分布,这有助于更好地探索算法的开头。第二幅图像显示较小的三角形分布,这有助于在算法结束时进行更大的利用。绿色圆圈是当前解决方案(蓝色)有可能移动的可能位置。

    更大的三角形分布,有助于更好地探索算法的开头

    关于最佳找到的解决方案s *生成的随机解s'的较大三角分布有助于更大的探索,并且应该用于算法的开头。

    更大的三角形分布,有助于更好地探索算法的开头

    关于最佳找到的解决方案s *生成的随机解s'的较小三角分布有助于更大的利用,并且应该在算法结束时使用。

    请注意,上述绿色解决方案并非像霰弹枪爬山者一样全部生成,而是根据该时间段的概率分布以迭代方式生成,例如迭代0到100将具有比迭代100更宽的三角形分布到200。

    计算移动的概率

    在模拟退火算法中,当前解s 移动到随机解s'之一的概率取决于s'相对于s的适合度以及已经过的迭代次数。在早期迭代期间,即使不太理想,s也更有可能转移到s'。这类似于随机搜索和探索。在以后的迭代期间,s更有可能移动到s',当且仅当它更理想时。这类似于贪婪和剥削。

    模型退火的投资组合优化

    为了将这个问题与投资组合优化问题联系起来,我们将每个解决方案s表示为投资组合基数的长度。然后,该向量中的每个元素s(x )表示投资组合中资产x的权重。为了使这个问题更加真实,我们通常需要对这些值和向量的含义施加一些约束,

    约束

    描述

    总分配

    断言必须分配的资本总额。这通常是100%或1.0,但如果留有现金,可能会更低。

    只有短期或长期

    断言投资组合是否被允许做空资产。空头头寸是对市场的赌注(负面分配)。

    最大和最小分配

    断言范围,指定投资组合资本对任何一项资产的最大和最小风险敞口,例如,不应将超过40%的资本分配给任何一项资产。

    最大和最小风险和回报

    断言“风险预算”代表投资组合可以承担的最大预期风险金额以及投资组合可能承担的最低预期回报金额。

    最低基数

    断言分配给该资产的资本大于零的资产数量。例如,具有基数15的投资组合要求投资组合中至少有15个资产具有非零资本分配。

    交易成本

    断言与投资组合中资产买卖相关的交易成本必须下降的范围。

    最大相关性

    断言投资组合中资产之间的最大相关性。如果投资组合中各个资产的相关性太高,那么投资组合可能会面临市场风险,例如LTCM。

     

     

    随着每个附加约束,可行解决方案集缩小。此外,搜索空间变形并且最终可能包含多个最佳值。随着随机优化算法的成功,这种复杂性导致许多确定性优化算法失败。 随机算法,例如模拟退火,即使在找到局部最优之后也可以搜索解。这是通过引入机会元素来实现的,该元素允许它们在搜索空间的不太理想的区域中随机搜索以获得更好的局部最优。

    结论

    基本的模拟退火算法和增强的模拟退火算法(使用上述三角分布技术)都是相对简单的算法,可以很容易地应用于复杂的投资组合优化问题。这些是投资组合优化问题,其中已经在引入局部最小值和/或不连续区域的搜索空间上声明了多个约束。这是一个在坚固的搜索空间中找到全局最优的算法的GIF,

    模型退火的投资组合优化

    模拟退火算法在复杂搜索空间中寻找最优解的例证。图片来源:http://en.wikipedia.org/wiki/Simulated_annealing

     

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

    展开全文
  • 投资组合优化模型研究_邓雪.caj
  • 投资组合优化 此仓库使用夏普比率着眼于投资组合优化 使用可以遍历股票行情自动收录器的投资组合,从而找出“最佳”投资组合。
  • matlab开发-简单的投资组合优化方法。短视、不变或买入并持有以及动态策略来计算最优投资组合权重。
  • 在本文中,我将介绍投资组合优化并解释其重要性。其次,我将演示粒子群优化如何应用于投资组合优化。第三,我将解释套利交易组合,然后总结我的研究结果。 组合优化 投资组合包括资产和投资资本。投资组合优化...

    原文链接: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仿真优化市场风险

    展开全文
  • 研究了Duarte提出的投资组合优化统一模型及条件风险价值(CVaR),分析了以CVaR为风险度量的投资组合优化模型的具体形式,建立了统一七种模型的投资组合优化统一模型,并发现统一模型是一个凸二次规划问题.
  • 基于高阶矩的投资组合优化研究_彭胜志.caj基于高阶矩的投资组合优化研究_彭胜志.caj基于高阶矩的投资组合优化研究_彭胜志.caj
  • 在本文中,我将介绍投资组合优化并解释其重要性。其次,我将演示粒子群优化如何应用于投资组合优化。第三,我将解释套利交易组合,然后总结我的研究结果。我的研究会议论文由Andries Engelbrecht教授,Katherine ...

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


    组合优化

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

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

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

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

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

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

     


    粒子群优化(PSO)

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

     

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

    该图显示了粒子群优化算法中每个粒子的位置相对于全局最佳(蓝色)和个人最佳位置(红色)的更新方式。 投资组合优化是PSO应用的问题。

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

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

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

    粒子群优化组合优化重新初始化

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

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

    粒子群优化组合优化选择性全局最佳突变

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

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

     


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

    PSO算法可用于优化投资组合。在投资组合优化的背景下,群中的每个粒子代表投资组合中资产之间的潜在资本分配。这些投资组合的相对适应性可以使用许多平衡风险和预期收益的金融效用函数之一来确定。我使用夏普比率,因为这已成为行业认可的基准投资组合表现标准。考虑以下适用于由三个资产组成的投资组合的PSO图示,

    使用粒子群优化(PSO)进行投资组合优化

    使用粒子群优化(PSO)的投资组合优化的例证。灰色粒子正在更新。红色粒子是灰色粒子的个人最佳位置,蓝色粒子是全球最佳位置。

    灰色粒子转换为向量(0.5,0.2,0.3),意味着投资组合资本的50%分配给资产1,20%分配给资产2,30%分配给资产3。该分配的预期夏普比率为0.38,小于个人最佳位置(红色粒子)和全球最佳位置(蓝色粒子)。这样,灰色粒子的位置被更新,使得它更接近全局最佳粒子和个人最佳粒子。

    使用粒子群优化(PSO)进行投资组合优化

    使用粒子群优化(PSO)的投资组合优化的例证。灰色粒子被更新,使其更接近全球最佳,并且是个人最佳的。得到的矢量比以前更好。

    灰色粒子已移动,现在转换为矢量(0.3,0.3,0.4),其预期夏普比率为0.48。该值高于之前的个人最佳位置,因此个人最佳位置(红色粒子)将更新为当前位置。

    使用粒子群优化(PSO)进行投资组合优化

    使用粒子群优化(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

    展开全文
  • 量化资产管理公司长期以来一直在为是构建投资组合优化模型还是购买现成的软件包的决定而苦苦挣扎。 为了满足不断变化的投资和风险管理需求,投资组合管理团队正在努力构建透明、易于采用且易于扩展的强大的投资组合...
  • 投资组合优化问题中,基数约束允许人们以N的预定值投资N种资产中的资产。人们普遍认为,选择K的“较小”值会迫使小型投资组合实现多元化。 然而,必须将K设为多小的问题仍未得到解答。 在目前的工作中,我们使用...
  • 基于二次粒子群算法的投资组合优化.pdf
  • 本文的目的是在风险受限的投资组合优化环境中评估最佳预期效用风险度量 (OEU),其中预期投资组合回报最大化。 我们将具有 OEU 约束的投资组合优化与使用风险价值作为约束的投资组合选择模型进行比较。 前者是对具有...
  • 基于CVaR的寿险公司的投资组合优化,戴道玲,, 
  • 基于风险测度理论的证券投资组合优化研究_刘俊山.caj基于风险测度理论的证券投资组合优化研究_刘俊山.caj基于风险测度理论的证券投资组合优化研究_刘俊山.caj
  • 基于Matlab图形用户界面的投资组合优化系统研究
  • 在本文中,我们展示了如何将长短期记忆 (LSTM) 类神经网络用于股票选择和投资组合优化。 我们使用 LSTM 网络来预测股票运动的方向和股票价格代理度量,并将这些用于股票选择和 Markowitz 均值方差投资组合优化框架。...
  • 连续时间投资组合优化理论方法研究_常浩.caj
  • 基于CVaR的次新股投资组合优化模型与实证分析
  • 国际多元化下投资组合优化研究_动态Copula方法_王璐.pdf国际多元化下投资组合优化研究_动态Copula方法_王璐.pdf国际多元化下投资组合优化研究_动态Copula方法_王璐.pdf
  • 基于Matlab图形用户界面的投资组合优化系统研究.pdf
  • 通过最小化加权协方差矩阵来发现最佳投资组合权重
  • 证券投资组合优化问题的实质就是有限的资产在具有不同风险收益特性的证券之间的优化配置问题。本文在马克维茨投资组合的均值一方差模型框架下,提出改进的证券投资组合优化模型,即以VAR作为风险度量工具和以RARC)C...
  • 利用tusharepro进行投资组合优化

    千次阅读 2020-07-11 20:01:52
    利用tusharepro进行投资组合优化 tushare-pro是在旧版本tushare的基础上改进的API接口,本文利用tushare-pro接口搜寻股票,并进行投资组合的优化。这里的优化主要基于马科维兹投资组合理论。 利用pro进行股票数据的...

    利用tusharepro进行投资组合优化

    tushare-pro是在旧版本tushare的基础上改进的API接口,本文利用tushare-pro接口搜寻股票,并进行投资组合的优化。这里的优化主要基于马科维兹投资组合理论。

    马科维兹投资组合理论

    基本背景

    1952年,马科维茨在他的学术论文《资产选择:有效的多样化》中,首次应用资产组合报酬的均值和方差这两个数学概念,从数学上明确地定义了投资者偏好。第一次将边际分析原理运用于资产组合的分析研究。这一研究成果主要用来帮助家庭和公司如何合理运用、组合其资金,以在风险一定时取得最大收益。
    证券及其它风险资产的投资首先需要解决的是两个核心问题:预期收益与风险。那么如何测定组合投资的风险与收益和如何平衡这两项指标进行资产分配是市场投资者迫切需要解决的问题。正是在这样的背景下,马科维茨的均值方差模型诞生了。虽然到今天资产配置领域已经发展出了各种各样的理论与模型,但是马科维茨的这套理论堪称资产配置届的“太祖”。

    MPT模型的假设

    1、投资者在考虑每一次投资选择时,其依据是某一持仓时间内的证券收益的概率分布
    2、投资者是根据证券的期望收益率估测证券组合的风险
    3、投资者的决定仅仅是依据证券的风险和收益
    4、在一定的风险水平上,投资者期望收益最大;相对应的是在一定的收益水平上,投资者希望风险最小

    模型介绍

    目标函数 m i n 1 2 σ 2 = 1 2 X T V X min\frac{1}{2}{{\sigma }^{\text{2}}}=\frac{1}{2}{{X}^{T}}VX min21σ2=21XTVX
    限制条件 : u = r p T X ; 1 T X = 1 u={{r}_{p}}^{T}X; {{1}^{T}}X=1 u=rpTX;1TX=1

    模型的符号解释

    1. X X X表示资产分配的权重,这里假设不准卖空,所以 X i X_i Xi都非负。
    2. V V V表示的需要资产之间的协方差矩阵,是非退化的。
    3. r p r_p rp表示需要投资的资产的预期收益率向量,常常用均值期望向量 ( E ( r 1 ) , E ( r 2 ) , E ( r 3 ) , E ( r 4 ) , ⋯   ) \left(E({{r}_{1}}),E({{r}_{2}}),E({{r}_{3}}),E({{r}_{4}}),\cdots \right) (E(r1),E(r2),E(r3),E(r4),)来表示。
    4.这里用方差表示投资风险,至于 σ 2 \sigma^2 σ2前面的1/2,目的是为了在进行拉格朗日乘数法的时候便于运算和推导。
    Ok,现在进行实际数据的一个应用。

    利用tushare-pro进行股票数据的收集

    利用pro进行收集数据,这里假定需要进行分配的资产的股票代码为"002022.SZ",“002879.SZ”,“300207.SZ”,“300229.SZ”
    代码如下所示:

    import pandas as pd
    import tushare as ts
    import numpy as np
    import matplotlib.pyplot as  plt
    from datetime import datetime
    ts.set_token('这里填写自己的token')
    pro = ts.pro_api()
    #利用tusharepro 获取股票数据
    #构建的投资组合需要的股票
    stockpool=["002022.SZ","002879.SZ","300207.SZ","300229.SZ"]
    indexes=pd.date_range('20180301', '20200331')#转换格式 利用datetime
    indexes = indexes.map(lambda x: datetime.strftime(x, '%Y%m%d'))
    data=pd.DataFrame()
    for i in stockpool:
        stock=pro.daily(ts_code=i, start_date="20180301", end_date="20200620")
        stock.set_index("trade_date", inplace=True)
        data[i] = stock["close"]
    #将index倒序
    data=data.reindex(index=data.index[::-1])
    #整理数据
    data=data.dropna()
    #print(data)
    #print(data.iloc[0])
    #print(data.iloc[0,0])
    #收盘价除以初始值
    (data/data.iloc[0]*100).plot(figsize=(8,5))
    plt.grid()
    plt.show()
    

    结果如下所示:

                002022.SZ  002879.SZ  300207.SZ  300229.SZ
    trade_date                                            
    20180301        13.32      31.64      10.83      13.86
    20180302        13.15      30.57      10.65      13.51
    20180305        13.20      31.05      10.81      13.80
    20180306        13.31      31.89      10.90      13.57
    20180307        13.14      33.37      10.71      13.56
    ...               ...        ...        ...        ...
    20200615        17.82      15.57      15.65      11.93
    20200616        17.84      15.77      16.19      12.01
    20200617        18.84      15.61      15.97      11.83
    20200618        17.76      15.86      17.57      11.78
    20200619        17.40      15.87      18.38      11.95
    
    [479 rows x 4 columns]
    
    Process finished with exit code 0
    
    

    在这里插入图片描述
    给资产随机分配权重,假设不允许空头

    #给资产随机分配权重
    #假设不允许建立空头头寸
    noa=4
    weights=np.random.random(noa)
    #print(np.sum(weights))
    weights=weights/np.sum(weights)
    

    计算资产组合的收益、方差、标准差

    #计算收益率,此处用log计算,此处用到shift()代表着dataframe所有数据以行的方式向上平移
    returns=np.log(data/data.shift(1))
    #计算组合收益,组合方差,组合标准差
    u=returns.mean()
    u=np.mat(u)
    ji=returns.cov()
    ji=np.mat(ji)
    weights=np.mat(weights)
    ret=u*weights.T
    risk=np.sqrt(weights*ji*weights.T)
    

    蒙特卡洛随机模拟生成大量随机组合,并可视化,这里在均值和方差之外将夏普系数也表示进来。夏普系数即单位风险的超额收益,夏普系数越高,投资的可能性越高。

    #利用蒙特卡洛随机模拟生成大量组合
    stockreturns=[]
    stockrisks=[]
    for i in range(10000):
        weights = np.random.random(4)
        weights = weights / np.sum(weights)
        weights = np.mat(weights)
        ret=weights*u.T
        risk = np.sqrt(weights * ji * weights.T)
        stockreturns.append(ret)
        stockrisks.append(risk)
    stockreturns=np.array(stockreturns).reshape(10000)
    stockrisks=np.array(stockrisks).reshape(10000)
    #无风险利率设定为
    riskfree=0.015
    #这里scatter函数的参数c指定颜色
    plt.scatter(stockrisks,stockreturns,c=(stockreturns-riskfree)/stockrisks,marker='o')
    #设置刻度
    plt.ylim(-0.0025,0.0025)
    plt.xlim(0.02,0.045)
    plt.xlabel(xlabel="stock_risk")
    plt.ylabel(ylabel="stock_returns")
    plt.colorbar(label='Sharpe ratio')
    plt.show()
    

    结果如下:
    在这里插入图片描述
    开始进行组合的优化,这里优化的目标主要有两方面,1是夏普系数尽量大;2是方差即风险尽量小。这里备注一下,由于进行的是规划问题,需要用到python的科学计算模块即scipy的优化器optimize,这里不作关于这个模块的介绍,会单独抽时间来介绍这方面的知识。
    Sharp ratio 优化

    #######################
    #组合优化,目标sharp max
    #定义一个函数目标是给一个组合权重,可以显示组合收益,组合风险即标准差,以及单位风险的收益
    def statistics(weights):
        weights = np.mat(weights)
        ret=weights*u.T
        risk=np.sqrt(weights*ji*weights.T)
        return (ret[0,0],risk[0,0],(ret/risk)[0,0])
    #print(statistics([0.1,0.3,0.2,0.4]))
    #投资组合优化需要导入科学计算SCIPY模块
    import scipy.optimize as sco
    #目标是夏普指数越大越好,那么换句话说就是负的指数越小越好
    #最小化夏普指数的负值
    def min_sharp(weights):
        return -statistics(weights)[2]
    #定义约束
    cons=({'type':'eq','fun':lambda x:np.sum(x)-1})
    #参数设置
    bnds=tuple((0,1) for x in range(noa))
    opts=sco.minimize(min_sharp,noa*[1./noa,],method='SLSQP',bounds=bnds,constraints=cons)
    

    结果所示:

         fun: -0.0339008343793833
         jac: array([ 0.00016054,  0.08137522, -0.00010567,  0.03385163])
     message: 'Optimization terminated successfully.'
        nfev: 49
         nit: 8
        njev: 8
      status: 0
     success: True
           x: array([3.92869775e-01, 0.00000000e+00, 6.07130225e-01, 1.69135539e-17])
    

    ***variance value***优化

    #组合优化,目标风险最小即方差最小
    #最小化标准差
    def min_risk(weights):
        return statistics(weights)[1]
    optv=sco.minimize(min_risk,noa*[1./noa,],method='SLSQP',bounds=bnds,constraints=cons)
    

    结果所示

         fun: 0.02319989025217268
         jac: array([0.02311588, 0.02259001, 0.0234072 , 0.02344037])
     message: 'Optimization terminated successfully.'
        nfev: 31
         nit: 5
        njev: 5
      status: 0
     success: True
           x: array([0.5711425 , 0.05611909, 0.23356549, 0.13917292])
    [0.571 0.056 0.234 0.139]
    (0.00045354912047809487, 0.02319989025217268, 0.01954962353477598)
    
    Process finished with exit code 0
    

    构造投资组合的有效前沿,这里我们假设投资人是理性的,即厌恶风险,偏好收益。那么就要满足方差尽量小以及夏普系数尽量大。

    #投资组合的有效前沿
    #有效前沿是指给定目标收益率,使得方差最小的投资组合
    #优化的约束有俩个,1、是指定收益率,2、权重为1
    #最小化标准差
    def min_risk(weights):
        return statistics(weights)[1]
    
    #给定不同的目标收益
    target_returns=np.linspace(-0.0015,0.001,100)
    target_variance=[]
    for tar in target_returns:
        cons=({'type':'eq','fun':lambda x:statistics(x)[0]-tar},{'type':'eq','fun':lambda x:np.sum(x)-1})
        res = sco.minimize(min_risk, noa * [1. / noa, ], method='SLSQP', bounds=bnds, constraints=cons)
        target_variance.append(res['fun'])
    
    #print(target_variance)
    target_variance=np.array(target_variance)
    print(target_variance)
    
    # 圆圈 蒙特卡罗随机模拟的
    plt.scatter(stockrisks,stockreturns,c=stockreturns/stockrisks,marker='o')
    print(stockrisks)
    # 叉号,有效前沿
    plt.scatter(target_variance,target_returns,c=target_returns/target_variance,marker='x')
    #标记红星 为sharp最高的组合
    plt.plot(statistics(opts['x'])[1],statistics(opts['x'])[0],'r*',markersize=15.0)
    #标记黄星 为var最低的组合
    plt.plot(statistics(optv['x'])[1],statistics(optv['x'])[0],'y*',markersize=15.0)
    plt.grid(True)
    plt.ylim(-0.0025,0.0025)
    plt.xlim(0.02,0.045)
    plt.xlabel(xlabel="stock_risk")
    plt.ylabel(ylabel="stock_returns")
    plt.colorbar(label='Sharpe ratio')
    plt.show()
    

    结果所示,
    在这里插入图片描述
    如图我们明显可以看出有效前沿的样子,计算机帮助我们验证了有效前沿。
    资产分配计算结果如下:

         fun: -0.0339008343793833
         jac: array([ 0.00016054,  0.08137522, -0.00010567,  0.03385163])
     message: 'Optimization terminated successfully.'
        nfev: 49
         nit: 8
        njev: 8
      status: 0
     success: True
           x: array([3.92869775e-01, 0.00000000e+00, 6.07130225e-01, 1.69135539e-17])
    [0.393 0.    0.607 0.   ]
    (0.000891450860963759, 0.026295838355704083, 0.0339008343793833)
    

    总结

    到这里,大致结束了这次简单的应用。
    虽然这些理论现在看来可能比较平常,但是放到那个年代,是非常具有开创性的。那个年代的投资分析很少有定量方法,大多都是靠经验和感觉,而且偏收益分析而轻风险分析。马科维茨的理论提供了可靠的量化分析方法均值方差分析方法,将收益和风险共同分析,且给出了有效前沿的模型。用现在的话说,就是大开脑洞。这套理论为投资组合管理未来的发展奠定了基础。

    展开全文
  • 几类投资组合优化模型及其算法_王贞.caj

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,969
精华内容 9,587
关键字:

投资组合优化