首页 > 其他分享 >两目标投资组合优化

两目标投资组合优化

时间:2022-09-19 11:15:22浏览次数:98  
标签:风险 组合 我们 协方差 投资 目标 优化 回报

两目标投资组合优化

回报与风险

Photo by 帕特里克·魏森伯格 on 不飞溅

回报与风险

双目标优化问题的一个经典例子是诺贝尔经济学奖得主 Harry Markowitz 提出的投资组合优化模型。他开发了 现代投资组合理论 ,一种在可接受的风险水平内最大化投资者回报的投资策略。

免责声明:本文并非旨在提供投资建议,而是提供双目标优化的示例。

根据现代投资组合理论,我们可以找到一个 有效的投资组合 在给定风险承受能力的情况下最大化回报。或者,通过获得所需的预期收益,我们可以找到一个风险最小的有效投资组合。为了更直观地解释它,让我们看一下下面的回报与风险图。

Pareto frontier of return-vs-risk, in blue

上图中的蓝色曲线是一个示例 有效边界 (或同义词,帕累托边界)。有效投资组合是位于边界的投资组合,用蓝色标记。为什么他们高效?如果我们要在一个固定的风险水平上最大化我们的回报,例如,在 α,那么有效的投资组合 A 对我们来说是理想的投资组合,因为它是提供最大回报的投资组合。选择投资组合 C 将是“低效的”,因为在风险相同的情况下,预期回报低于投资组合 A。或者,如果我们想将目标预期回报固定在 β,投资组合 B 是最佳选择,因为它提供的金额最少的风险。同样,选择投资组合 C 将是“低效的”,因为它会在与投资组合 B 相同的预期收益的情况下带来更高的风险。请注意,预期收益与前沿风险之间存在权衡——收益越高,收益越高。风险。

PS随意看看我的 上一篇文章 ,其中我解释了双目标优化的概念,什么是帕累托前沿,以及如何分析两个目标之间的权衡。

寻找有效的投资组合

现在,假设我们有一长串感兴趣的资产,我们如何找到这些资产的有效组合?

我们可以使用加权和方法来解决两个目标的收益与风险优化问题。 (还有其他方法可用,但一篇文章无法涵盖!)在加权和方法中,我们通过加权和将两个目标合并为一个。在每次迭代中,我们改变赋予每个目标的权重,从而产生不同的有效投资组合。让我们用数学方法来表述这个问题:

Model formulation

请注意,我们添加了两个约束条件:(1) 资产配置的分数总和必须为 1,以及 (2) 目标的权重必须总和为 1。还要注意,如果我们将零权重分配给其中一个目标,它就会变成一个单一目标优化问题。例如,如果我们给风险项赋予零权重,我们实际上是在寻找一个在不考虑风险的情况下最大化预期收益的投资组合。

市场数据一瞥

是时候找点乐子了!让我们创建一个实验来使用真实市场数据构建有效的投资组合。这个实验的想法是分析历史价格数据,提取每个感兴趣资产的风险和回报信息,然后让优化模型建议一个符合我们风险/回报偏好的投资组合。

首先,我们需要数据。好消息是,我们可以从 雅虎!金融API .在这里,我下载了 5 个不同资产类别的 3 年历史每日价格数据:
1. SPY、EEM(股票)
2. IGOV(债券)
3.GLD(商品)
4. VNQ(房地产投资信托基金)
5. BTC-USD(加密货币)

Daily price data downloaded from yfinance

Daily price data downloaded from yfinance

接下来,我们需要从我们下载的数据中提取每一种资产的风险和收益信息。为了量化回报,我们通过取对数回报的 3 年平均值来获得年度预期回报。

Log return

可以找到对日志返回计算的解释 这里 .那么,计算出的年度预期回报值如下:

我们看到 BTC-USD 的平均回报率最高,约为 20%。嗯,我们应该把所有的钱都投资在 BTC-USD 上吗?想象一下,如果我们今天投资 1000 美元,复合回报将在 10 年内增加 6 倍的资金!

但是——没有投资是没有风险的。请记住,通常在回报和风险之间进行权衡。一种快速提取每种资产风险量的方法是查看每日收益的分布并检查其方差。

Return variance

虽然 BTC-USD 的平均回报率最高,但它的方差最大。方差意味着什么?方差告诉我们价格的波动性,每天上下波动。方差越大,波动性越大。因此,日收益方差较大的资产风险较高,而日收益方差较小的资产风险较低。可以说,在过去 3 年中,从方差比较中可以看出,BTC-USD 价格的波动比其他价格更剧烈,因此未来可能会带来更高的投资风险。

预期回报是可取的事物,回报的方差是不可取的事物。
— 哈里·马科维茨 —

不仅是方差,还有协方差!

查看个体差异可以让我们了解价格的波动性。然而,更有趣的是整个投资组合的整体波动性。话虽如此,资产价格之间的关系更为重要——它对投资组合业绩的影响大于对单个资产业绩的影响。 Harry Markowitz 没有投资单一股票,而是认为多元化有其好处,单一股票的表现不如它对整个投资组合表现的影响重要。这是协方差(或者我们也可以使用相关性)发挥作用的时候,我们检查资产对的综合风险。请注意,正协方差意味着资产回报正朝着相同的方向移动,反之亦然。例如,如果资产 A 和资产 B 具有正协方差,那么这两种资产的价格通常会同时上涨或下跌。

另一方面,如果资产 C 和 D 具有负协方差,则它们的资产价格会朝相反的方向移动。例如,利率上升通常会对债券产生负面影响,但它可能会提高商品价格和租金。如果我们选择协方差很小甚至为负的资产组合,我们可以降低投资组合的整体风险。现在让我们看看我们选择的资产的协方差:

Return covariance

请注意,BTC-USD 和 SPY 对具有相对较高的协方差,表明两者之间的价格走势在历史上是一起上涨/下跌的。如果我们想降低整体投资组合风险,我们应该避免这种情况。相比之下,像 SPY 和 IGOV 这样的组合具有相对较低的协方差,因此更可取。

Python 中的示例

解释就够了,让我们一起编码吧!首先,让我们从 ** yfinance** .

然后,我们计算预期年回报率和协方差。请注意,我在这里创建了两个函数: ** get_expected_return** 和 __获取协方差 .这两个函数稍后将用于访问优化模型中的返回值和协方差值。

然后,我们可以使用选择的优化建模库/包来创建优化模型。下面的示例使用 ** 皮莫** 包(我最喜欢的!)。您可以将下面的代码与我在本文第三张图中分享的数学模型进行比较。请注意,在目标 2 中,风险为 ** 否定的** ——这是因为我们正在解决一个最大化问题,并且我们想要最小化的风险。

最后,我们遍历一个不同权重的列表,解决优化问题,并产生一组 ** 高效的解决方案,** 每次迭代中的一个。

结果

最后,让我们看看结果!下图显示了我们通过迭代解决两目标优化问题获得的有效投资组合的回报与风险。多漂亮!看看不同回报/风险水平的资产配置——根据我们之前看到的回报和方差/协方差来验证它。我会让你进一步检查它 - 希望它现在对你更有意义!

一点额外的

为了进一步说服您,让我向您展示为什么我们的高效投资组合是 高效的 .我已经创建了 500 种资产的随机组合——并用我们获得的有效投资组合绘制了风险与回报的关系图。没有一个随机投资组合支配任何有效的投资组合!

概括

在本文中,我们首先讨论了投资的风险和回报,以及有效的投资组合意味着什么。然后,我们看看如何通过迭代解决两目标优化问题来获得有效的投资组合。最后,我们创建了一个 Python 脚本来试验优化问题。在评论中让我知道你的想法!

参考

  1. 投资组合选择,Harry Markowitz
  2. 第 23 章:二次规划。在线性规划中:基础和扩展

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/37894/59491910

标签:风险,组合,我们,协方差,投资,目标,优化,回报
From: https://www.cnblogs.com/amboke/p/16707003.html

相关文章

  • 组合模式
    组合模式的核心思想就是:一个组织有很多子组织,而无论子组织是单独一个部门或是一个分组织。该组织都希望把它们当成一样的子组织来管理。对于分组织,只用通知分组织就可以了,......
  • centos 查看程序文件数量_centos 7.x 文件数量限制优化
    https://blog.csdn.net/weixin_42342010/article/details/111951283?utm_medium=distribute.wap_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_......
  • ES6 对String做的常用升级优化
    ES61.let有什么用,为什么有了var还要使用let在ES6之前,声明变量只能用var,var声明变量有很多不合理的点,准确的说是因为ES5中没有块级作用域是很不合理的,甚至可以说是一门语......
  • 记一次sql优化
    目录记一次sql优化记一次sql优化总数据70w原sql--优化前SELECTCOUNT(CASEWHENBUREAU_TASK='0'ANDDECLARE_PERSON_ID='bfa800bd0000000014e1beec0000000......
  • Problem P24. [算法课回溯]组合问题
    采用递归遍历所有可能性,再使用剪枝减小运行时间,利用回溯,代码有注释#include<iostream>#include<bits/stdc++.h>#include<cstdio>#include<string>usingnamespace......
  • MySQL 优化篇(二)
    分析查询语句:EXPLAIN定位了查询慢的SQL之后,我们就可以使用EXPLAIN或DESCRIBE工具做针对性的分析查询语句。DESCRIBE语句的使用方法与EXPLAIN语句是一样的,并且分析结果也......
  • Max-Min Sums(组合计数,算贡献)
    题意对于一个有限集合\(X\),令\(f(X)=\maxX-\minX\)给定\(N\)个整数\(A_1,A_2,\dots,A_N\)我们要从中选择\(K\)个元素构成一个新的集合\(S\)。如果我们根据下标......
  • 组合模式
    理论 组合模式(Composite),将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。  透明方式与安全方式透明......
  • 并查集优化
    并查集及其优化并查集可以动态地连通两个点,可以非常快速判断两个点是否连通。假设存在n个节点,我们先将所有结点的leader标为自身;每次连接节点i和j时,我们可以将i......
  • 算法中的最优化方法01
    算法中的最优化方法0100课程简介优化尽可能用最佳的方式处理一下事项计算机中基于优化的算法多准则控制器的设计模糊建模中的聚类机器人轨迹规划流程工业中的调度......