首页 > 其他分享 >梯度方法求解最优投资组合问题 (二次规划问题)

梯度方法求解最优投资组合问题 (二次规划问题)

时间:2024-07-24 20:50:47浏览次数:15  
标签:1.00 frac 组合 求解 资产 效用 梯度 投资 最优

优化程序
分析师的目标是帮助投资者“做最好的事”。他们的共同目标应该是制定一套投资策略,为投资者提供最大可能的效用。在某些情况下,这可以形式化为一个涉及目标函数最大化的问题(例如投资者的投资组合的效用),该问题受到一个或多个约束(例如投资者的财富水平所施加的约束)。在投资领域,解决这类问题的过程通常被称为最优化。有效地确定最优策略的过程通常被称为优化算法。毫不奇怪,使用这种程序的计算机通常被称为优化器。

接下来的小节,我们处理分析师经常会遇到的几类优化问题以及可用于解决这些问题的方法。

标准的资产配置问题
我们关注投资者的资产在几个资产类别之间的配置,以实现最大限度地提高投资者的资产组合效用,同时考虑投资者的风险容忍度和对资产持有的相关限制。许多分析师使用对资产风险、相关性以及预期收益的一期估计来解决这类问题,假设投资者的效用是所选投资组合的预期收益和收益标准差的函数。更准确地说,投资者的效用被表示为资产组合的均值和方差的线性函数:

\[u=ep-\frac{1}{rt}vp \]

其中

\[u 表示投资组合对投资者的效用 \]

\[ep 表示投资组合的期望收益 \]

\[vp 表示投资组合收益的方差 \]

\[rt 表示投资者的风险承受能力 \]

这里,\(rt\) 代表投资收益的方差替代期望的边际率。此外,衡量投资组合效用的 \(u\) 可以被解释为风险调整后的预期收益,因为它是通过从预期收益(\(ep\))中减去风险惩罚(\(vp/rt\))来计算的。

当然,一个投资组合的预期收益将取决于它的构成以及其组成部分的预期收益。投资组合由持股向量表示,以比例值表示。设 \(x\) 为这种比例(\(n*1\))的向量,\(e\) 为资产预期收益的(\(n*1\))向量。则投资组合 \(x\) 的预期收益为:

\[ep=x^{T}e \]

投资组合收益的方差将取决于其构成和各类资产类别之间的协方差。设 \(C\) 为这种协方差的(\(n*n\))矩阵。则投资组合 \(x\) 的收益方差为:

\[vp=x^{T}Cx \]

我们的目标是找到最佳投资组合--这里指的是具有最大可能效用的投资组合。决策变量是资产持有量--也就是向量\(x\)的元素。随着这些元素的变化,相关投资组合的效用也发生变化。我们希望改变它们,直到获得最大可能的效用。然而,在允许的组合上通常有一些限制。在标准问题中,\(x\) 值代表按比例持有的资产。在这种情况下,只有综合为 \(1\) 的 \(x\) 可以被考虑。因此,我们必须服从全投资约束:

\[\sum_{i=1}^{n}x_{i}=1 \]

通常会有进一步的资产持有约束。在许多情况下,卖空(short sales)是被禁止的,因此只允许 \(x\) 的非负值。上限也可能适用,标准问题中,我们有

\[lb\le x\le ub \]

只涉及下界的情况可以通过给上界赋正无穷值来处理,而只涉及上界的情况可以通过给下界赋负无穷值来处理。如果没有边界,两个过程都可以调用,这使得标准化问题的表述比人们最初假设的更为普遍。

我们将此称为“标准资产配置问题”,总结如下:

\[maximize: u=ep-\frac{vp}{rt}=x^{T}e-\frac{1}{rt}x^{T}Cx \]

\[subject\quad to: \sum_{i=1}^{n}x_{i}=1,\quad and\quad lb\le x\le ub \]

注意,这涉及到决策变量的二次函数的最大化,受制于一组线性约束,其中一些是不等式,具有这种特征的问题被称为一个二次规划(QP)问题。它可以用一般的二次规划算法来解决,也可以用专门设计来处理具有类似结构的问题的程序来解决。这里我们介绍一种可以简单直观地解决标准资产配置问题的算法。虽然它的应用范围有些有限,但它很容易编程,并阐明了适用于宏观投资分析中非常广泛的优化问题的关键经济学原理。

一个三资产的例子
为了说明优化过程的步骤,我们使用一个简单的例子,涉及三种资产--现金、债券和股票。它们的回报之间的标准差和相关性与1980年至1985年期间多元化指数共同基金的实际回报相似。预期收益与该时期的平均实际收益相似。所有的月值都是年变化的。值得注意的是,这段时期的平均回报率非常高。对未来预期的无偏估计很可能要低得多。

将所有与资产相关得关键信息包含在一个块中是很方便的。以下是我们示例的输入,格式化用于解决此类问题所提供的优化工作表:

最小值 初始化 最大值 期望回报率 标准差 c:现金 c:债券 c:股票
现金 0.00 1.00 1.00 2.80 1.00 1.00 0.4 0.15
债券 0.00 0.00 1.00 6.30 7.40 0.40 1.00 0.35
股票 0.00 0.00 1.00 10.80 15.40 0.15 0.35 1.00

第一列显示下界,第三列显示上界。第二列表示初始投资组合。在这种情形下,它的所有资产都以现金投资。第四列和第五列分别显示资产的预期收益和标准差,以每年的百分比回报表示(例如,股票预期回报 \(10.80%\) 一年)。最后几列提供了对资产类别之间相关性的估计。
在矩阵形式中,问题的输入是:

\[e=(2.80 \ 6.30 \ 10.80)^{T},\quad sd=(1.00 \ 7.40 \ 15.40)^{T},\quad lb=(0.00 \ 0.00 \ 0.00)^{T},\quad ub=(1.00 \ 1.00 \ 1.00)^{T} \]

\[x_{0}=(1.00 \ 0.00 \ 0.00)^{T} \]

\[cc=\left[ \begin{matrix} 1.00 & 0.40 & 0.15\\ 0.4 & 1.00 & 0.35\\ 0.15 & 0.35 & 1.00 \end{matrix} \right] \]

为了计算的目的,我们需要协方差矩阵\(C\):

\[C=sd*sd^{T}.*cc \]

这里

\[C=\left[ \begin{matrix} 1.00 & 2.960 & 2.310\\ 2.960 & 54.760 & 39.896\\ 2.310 & 39.986 & 237.160 \end{matrix} \right] \]

另一个输入是投资者的风险承受能力。这种情况下,我们假设它是\(50\)--一个代表对冒险的适度态度的值,即

\[rt=50 \]

效用等值面
尽管我们的例子中涉及三个决策变量(现金、债券和股票),但全投资约束将投资组合限制为总和为1的组合。因此,我们可以将这个问题描述为选择投资于债券和股票的比例,剩余的任何金额都用投资于现金。这样就有可能绘制出决策变量和价值衡量之间的关系图。生成的表面将具有山的一些属性。然而,这个"效用山"(等值面)中只有一部分是可行的。我们必须将搜索限制在债券和股票投资金额小于等于\(1\) 的坐标上。
image

从某种意义上说,我们的工作就是爬到山上可行的最高点。我们将分阶段完成这项工作。我们从一个可行的投资组合开始。然后我们找到可行的方向,在这个可行的方向上我们可以以最大的速度向上移动。更具体地说,我们选择一步(投资组合持有量的变化)高度(效用)增加最大的方向--也就是梯度的方向。选择了一个方向,我们就会一直往上爬,直到到达一个高峰或一个我们无法跨越的边界。然后我们再次确定最陡峭爬坡的可行方向,重复这个过程。当没有可行的上升方向时,我们就停止

资产边际效用
考虑持有一种资产的微小变化对投资组合效用的影响。回想一下:

\[u=ep-\frac{1}{rt}vp \]

设\(mu(i)\)为资产\(i\) 的边际效用--\(u\)对\(x_{i}\) 的导数

\[mu(i)=\frac{du}{dx_{i}}=\frac{dep}{dx_{i}}-\frac{1}{rt}\frac{dvp}{dx_{i}} \]

有了这,我们可以直接计算\(mu\)

\[mu=e-\frac{1}{rt}2Cx \]

其中\(x\) 是当前的投资组合。在这个例子中,我们从当前投资组合\(x_{0}=(1 \ 0 \ 0)^{T}\) 开始,得到的边际效用是:

\[mu=\left[ \begin{matrix} 2.7600\\ 6.1816\\ 10.7076 \end{matrix} \right] \]

因此,只要资产\(3\) 的变动较小,效用将以每单位投资金额变动的\(10.7076%\) 的速率变化。同理,资产2的变化率为\(6.1816%\),资产3 的变化率为\(2.7600%\).

最优可行交换
边际效用提供了关于投资组合的重要信息,这些信息可以用来改善投资组合,改变投资组合的构成,从而增加投资者的效用。

在这种情况下,所有的边际效用都是正的,这表明任何资产的增加都会增加效用。如果我们能够增加对这三种资产的投资比例,或者更好的是只增加对这三种资产中最好的资产的投资比例,那就太好了。但这是不可行的。唯一可以考虑的变化是那些满足比例和等于 1 的约束的变化。因为这已经是当前投资组合的情况,我们必须限制我们的选择,使我们增加一项或多项资产的金额之和等于我们减少一项或多项其他资产的金额之和。

在这个例子中,最优吸引力的增加资产是第三种(股票)。令人高兴的是,它可以增加,因为当前金额为0,低于上限1.最没有吸引力的增加资产是第一项(现金)。但是它也是最吸引减持的资产。这暗示了一种双资产互换,即资产 3 增加,资产 1 减少。这样的互换将以 \(10.7076-2.7600\) 或 \(7.9476%\) 的单位交换量的速率增加效用,只用后者的变化较小。幸运的是,这种特殊的交换是可行的,因为(1):要增加的资产目前低于其上限;(2):要减少的资产的当前值为 1.00,远高于其下限值 0.00。

我们得出的结论是:如果要进行一次小型的两种资产互换,最好的可能性是减少现金的数量,同时增加投资于股票的数量。如果实际持有当前的投资组合,则需要出售现金,所得款项用于购买股票。在更有可能的情况下,正在进行以确定持有的最佳投资组合,“买入”和“卖出”将是假设的。然而,为简单起见,我们使用术语“卖出”,“买入” 和 “交换” 来描述这两种情况。

在这种类型的问题中,只有当要减少的资产高于其下界 而要增加的资产低于其上界时,互换才是可行的。此外,如果当前的投资组合满足约束,即持有资产的综合等于 1,那么任何由这种互换产生的投资组合也将是可行的,只要互换的幅度不是太大。由于在标准问题中不存在额外的约束,因此,这些条件既是交换可行的必要条件,也是充分条件。这些观察结果引出了寻找最优可行双安全交换的规则:

\[对于所有 x_{i}>lb_{i} 的证券,找出 mu(i)值最小的证券 i。 \]

\[设该资产为 isell,其边际效用为 mu(isell) \]

\[对于所有 x_{i}<ub_{i} 的证券,找出 mu(i)值最大的证券 i。 \]

\[设该资产为 ibuy,其边际效用为 mu(ibuy) \]

显然,如果\(mu(ibuy)-mu(isell)\) 为正,则投资组合的效用可以增加。而且,其他再小的变化也不能使效用增加这么多,因为是最大的减去最小的。因此,最优的两种证券互换是标准问题中的最优互换。

最优的可行互换金额
最优可行交换将以最大可能的单位交换率增加效用。但增加的速度会随着交换规模的增加而变化。在某一止咳,效用将达到顶峰,然后下降。此外,互换的可行金额将受到购买资产的上界和出售资产的下界的限制。所有这些因素都需要考虑,以便为任何期望的交换找到最优可行规模。

为了通用性,我们用资产持有变化的向量 \(s\) 来表示交换,其中元素的总和为零。在我们的例子中,最优可行交换是:

\[s=\left[ \begin{matrix} -1\\ 0\\ 1 \end{matrix} \right] \]

现在,设 \(a\) 代表交换的金额,因此,净效果是改变投资组合的金额等于\(s*a\)。
例如,如果 \(a=0.1\),

\[s*a=\left[ \begin{matrix} -0.1\\ 0\\ 0.1 \end{matrix} \right] \]

设 \(cx\) 表示这组变化:

\[cx=s*a \]

那么,如果对投资组合 \(x\) 进行这样的改变,结果将是一个新的投资组合 \(xx\),给出如下:

\[xx=x+cx \]

或者

\[xx=x+s*a \]

现在,我们考虑投资组合 \(x\) 和 \(xx\) 的效用:

\[u(x)=x^{T}e-\frac{1}{rt}x^{T}Cx \]

\[u(xx)=(x+cx)^{T}e-\frac{1}{rt}(x+cx)^{T}C(x+cx) \]

我们感兴趣的是效用的变化 \(cu=u(xx)-u(x)\)。展开第二个公式,减去第一个公式,得到

\[cu=cx^{T}e-\frac{1}{rt}(2x^{T}Ccx+cx^{T}Ccx) \]

用 \(s*a\) 代替 \(cx\),化简得到

\[cu=[s^{T}e]*a-\frac{1}{rt}([2x^{T}Cs]a+[s^{T}Cs]a^2) \]

重新排列,将 \(cu\) 表示为交换量的函数,我们得到

\[cu=k0*a-k1*(a^2) \]

其中

\[k0=s^{T}(e-\frac{1}{rt}2Cx,\quad k1=\frac{s^{T}Cs}{rt} \]

在我们的例子中,

\[k0=7.9476,\quad k1=4.6708 \]

下面将 \(cu\) 绘制为 \(a\) 的函数
image
注意,效用的变化是以递减的速率增加的。这并不奇怪,因为函数是二次的,有一个负的二次项。这是投资组合构成中,所有变化的一个特征。鉴于协方差矩阵的性质,对于向量 \(s\) 表示的任何一组变化, \(s^{T}Cs\) 都为正。只要投资者的风险承受能力为正,\(k1\) 也将为正。因此,我们得出结论:

\[投资组合修正受制于规模收益递减。修正幅度越大,投资组合效用进一步增长的速度就越小--也就是说,效用将以递减的速度增长。 \]

注意,这个表达式中的第一项 \(k0\) 等于交换的净边际效用。这并不奇怪,因为边际效用衡量的是持有量无限小的变化对效用的影响。

在这种情况下,效用的最大可能变化是通过交换大量的投资组合来获得的。实际的金额可以直接计算出来。我们求 \(a\)的值,此时 \(cu\) 最大。由于 \(cu\) 在原点处的斜率必须为正,切斜率必须随 \(a\) 减小,因此,我们只需要将倒数设为零,

\[a=\frac{k0}{2k1} \]

在这种情况下,

\[a=0.8508 \]

因此,最优交换金额为0.8508。

当然,这个计算并没有考虑到持仓的上下界。为了保持可行性,交换的最优可行数量为:

\[a=min([\frac{k0}{2k1},\quad ub(ibuy)-x(ibuy),\quad x(isell)-lb(isell)]) \]

在我们的例子中,

\[a=0.8508,\quad cu=k0*a-k1*(a^2)=3.3808 \]

所以,交换的最优量将在原来投资组合的效用上增加3.3808个单位。

标签:1.00,frac,组合,求解,资产,效用,梯度,投资,最优
From: https://www.cnblogs.com/Tri-StateTraveler/p/18321401

相关文章

  • 求解!do...while 语句嵌套switch语句为何会出现死循环?
    这是我写的一段实现通讯录的代码voidmenu(){ printf("**************************************\n"); printf("*******1.Add2.Del*****\n"); printf("*******3.Search4.Modify*****\n"); printf("*******5.Show......
  • 应用数学与机器学习基础 - 数值计算之梯度之上Jacobian和Hessian矩阵篇
    序言在数值计算与优化理论的广阔天地里,梯度作为一阶导数的向量表示,是理解函数局部变化率及进行最优化求解的基础工具。然而,当问题的复杂度提升,单一梯度信息往往不足以全面刻画函数的多变量间相互作用及更高阶的变化特性。此时,Jaco......
  • 基于树种算法优化的TSP问题求解
    智能优化算法应用:基于树种算法的TSP问题求解-附代码文章目录智能优化算法应用:基于树种算法的TSP问题求解-附代码1.TSP问题3.树种算法4.实验参数设定5.算法结果6.Matlab代码7.Python代码摘要:TSP是数学领域内一道著名的难题之一,如何求解一直是学术界研究的热点问......
  • 基于平衡优化器算法优化的TSP问题求解
    智能优化算法应用:基于平衡优化器算法的TSP问题求解-附代码文章目录智能优化算法应用:基于平衡优化器算法的TSP问题求解-附代码1.TSP问题3.平衡优化器算法4.实验参数设定5.算法结果6.Matlab代码7.Python代码摘要:TSP是数学领域内一道著名的难题之一,如何求解一直是......
  • KMP算法中next数组以及nextval的求解(简单,通俗易懂版)
    以一个题为例:计算上图中next[j]以及nextval[j]的值。【本文中j的下标从1开始。】最长公共前后缀:···前缀:不包含最后一个字符的所有以第一个字符开头的连续子串。···后缀:不包含第一个字符的所有以最后一个字符结尾的连续子串。先看next[j],(1)j的下标......
  • 稀疏迭代求解器无矩阵方法预处理器
    如何为无矩阵左侧的稀疏迭代方法(TFQMR、GMRES、CGS等)定义预处理器(SPILU、SPAI等)?我使用无矩阵A(使用LinearOperator和matvec)定义了Ax=b。因此,我没有创建矩阵A并将其保存在内存中。例如,在这种情况下,我如何构建SPILU预处理器?我在所有教程和示例中看到预处理器是使用矩阵L......
  • 战斗机飞行的最优高度 为什么低空飞不快 高空也飞不快
    战斗机在不同高度飞行的速度受到多种因素的影响,这包括空气密度、引擎效率和空气阻力等。以下是对不同高度对战斗机速度影响的简要分析:低空飞行:空气密度高:在低空,空气密度较大。这会导致较大的空气阻力,增加战斗机飞行时的阻力,从而限制速度。引擎效率:某些类型的引擎在低空时效......
  • 从 OR-Tools 设置 CP-SAT 求解器的 IntVar 值
    我目前正在使用googleOR-toolsCP-SAT求解器来解决规划问题。我使用IntVars作为日期的表示。所有这些IntVar都在字典中。我有一些可以正常工作的约束,但我想强制求解器使大约2/3的Intvars低于400。我尝试使用BoolVars解决问题,但没有成功,我运行了出于如何将2/3......
  • 【SLAM】最最最简单的直线拟合情形下的多种求解方法
    本文我们讨论一个最最最简单情况下的拟合的情形,并尝试使用不同的方法来进行求解。假如有一组数x1,x......
  • 支付宝商户池最优质的支付通道
     支付宝商户池,作为国内领先的支付服务提供商,始终致力于为广大商户提供最优质、最安全、最便捷的支付通道。在数字化时代,支付通道的顺畅与否直接关系到商户的运营效率和客户体验,因此,选择一家可信赖的支付服务提供商显得尤为重要。支付宝商户池通过多年的积累和技术创新,已经成......