关于数据挖掘:Python用Markowitz有效边界构建最优投资组合分析四只股票

102次阅读

共计 4106 个字符,预计需要花费 11 分钟才能阅读完成。

原文链接:http://tecdat.cn/?p=25749

在这篇文章中,我想介绍 _古代投资组合实践 (MPT)_、_无效边界_ 以及它对投资组合构建的一些影响。

我对如何设计和构建投资组合十分感兴趣。只管 _古代投资组合实践_ 有其局限性,但它依然很好地介绍了投资组合构建和投资组合实践。

第一局部将简要回顾了解_MPT_ 及其含意 所需的一些数学和概念。

第二局部 将探讨 _MPT_ 和 _无效边界_。

第三局部 将深入探讨应用实在市场数据的 Python 实现。我将在这部分博客中应用我之前构建的数据仓库。

第一局部

让咱们探讨投资组合收益、投资组合标准差、相关性和夏普比率。_古代投资组合实践_ 建设了一种构建组合资产组合的办法,因而咱们将在雷同的背景下定义这些概念。

让咱们应用具备以下规范的虚构投资组合:

  • 咱们的投资组合蕴含三个资产:A、B 和 C。
  • 每个持股在咱们的投资组合中的权重雷同(每个 33%)。
  • 持股 A、B 和 C 的冀望收益率别离为 5%、8% 和 10%。

投资组合 收益

要计算投资组合的冀望收益,咱们只需将每只股票的冀望收益乘以它们在咱们投资组合中的权重,而后将所有局部相加。在这种状况下,咱们的权重总和为 1.0,冀望收益将代表一个百分比。

应用咱们虚构投资组合的信息:

投资组合标准偏差——又名投资组合危险或稳定率

人们会认为计算投资组合标准差与投资组合收益雷同,但这就是 _古代投资组合实践_的一些魅力所在。

投资组合标准差不是每只股票的危险权重乘以其权重的总和,还必须思考每只股票与所有其余股票的相关性。

让咱们用符号 ’σ’_示意标准偏差,将两种资产之间的相关性示意为 ‘ _Corr(x,y) ‘ 并将权重示意为 _’w’_。

在三资产组合中,咱们将按如下形式计算投资组合标准差:

下面的公式看起来很简略。

如果咱们在咱们的投资组合中引入第四种资产,即资产“D”,咱们将简略地扩大咱们的公式:

相关性

我不会深入研究如何计算相关性,但我的确想探讨它如何影响个别证券。

在两个资产的简略例子中,x 和 y,相关性将掂量资产 y 绝对于资产 x 的变动水平,这个衡量标准能够是正的或负的,范畴从 -1.0 到 +1.0。

两种资产的相干公式将产生一个相关系数(也被称为 “r”),这个数字是一个数值,将通知咱们两种资产之间的关系有多强。

-0.8 相关性意味着每次“_x”_ 减少 1 元,“_y”_ 将缩小 0.80 元。对于 +0.80 的相关性,状况正好相同。0.0 的相关性通知咱们,两种资产之间没有任何线性关系。

夏普比率

我想介绍 _夏普比率_,因为在接下来的工作中,咱们将尝试拆散出 _夏普比率_最高的投资组合。该比率为咱们提供了如何比拟具备不同收益和危险的不同投资组合的根底。

为了计算 _夏普比率,_ 咱们将投资组合收益减去无风险利率,而后除以投资组合的 _标准差_。

设想一下以下两个投资组合:

  • 投资组合 A:冀望收益率为 10%,投资组合标准差为 5%。
  • 投资组合 B:冀望收益率为 15%,投资组合标准差为 10%。

哪个投资组合更好?

只管投资组合 B 具备更高的冀望收益,但如果咱们依据投资组合危险比拟这些投资组合,实际上是投资组合 A 具备更好的“危险调整后”收益。

第二局部

古代投资组合实践

1952 年,Harry Markowitz 博士撰写了题为“投资组合抉择”的论文。他的实践基于以下对于投资者的假如:

  • 每个投资者的指标都是在给定的危险程度下最大化收益。
  • 通过个别的、不相干的证券使投资组合多样化,能够升高危险。
  • 所有投资者都能够应用雷同的信息。

过后,投资者次要围绕冀望收益建设投资组合。Markowitz 解释说,通过联合低相干危险资产,能够实现比独自持有一项资产更好的整体投资组合,或者比简略地抉择具备最高冀望收益的股票更好。

Markowitz 的整个论文将相关性纳入投资组合构建中。这容许应用高风险和低相干资产构建投资组合,同时与独自领有每个独自的证券相比,为投资者提供整体较低的投资组合危险!

什么被认为是“更好”的整体投资组合?

“_更好_”的投资组合被定义为在给定危险程度下最大化收益的投资组合。危险被定义为咱们在 第一局部 中介绍的投资组合标准差。

依据古代投资组合实践建设投资组合

要建设基于 _MPT_的投资组合,投资者须要以下数据:

  • 资产的冀望收益,E(r)。
  • 资产的标准差,σ
  • 资产与投资组合中持有的其余资产的相关性,corr(X,Y)

应用上述数据,咱们能够为每种资产随机调配不同的权重,并计算该特定投资组合的收益和标准差。

投资组合示例

在下图中,您会发现 50,000 个不同的投资组合,由四种股票组成:股票代码别离为:NOC、AAPL、MSFT、MMM。底轴(x 轴)是投资组合的计算危险(_标准差_),左轴(y 轴)是投资组合的冀望收益。

每次随机生成投资组合时,它都会为咱们的四只股票中的每一种调配不同的权重,而后计算投资组合的收益和标准差。

通过运行 50,000 次随机模仿,咱们能够看到一个看起来像子弹形态的图。咱们生成如此多的投资组合的起因是,咱们能够尝试找到最优的投资组合权重,从而在给定的危险程度下最大化咱们的收益。

每次咱们生成一个随机投资组合时,每只股票的权重都会发生变化。在某些投资组合中,苹果可能占投资组合的 20%、投资组合的 75% 甚至是投资组合的 1%,对于咱们资产组合中蕴含的所有其余股票也是如此。然而,所有权重的总和始终等于 1。

这是一张图表,阐明了 50,000 个随机生成的投资组合:

x 轴:投资组合稳定率(危险),y 轴:投资组合收益

为了进一步阐明咱们的示例,假如在咱们生成的 50,000 个随机投资组合中,投资者想要危险不超过 20% 的投资组合(垂直绘制在 x 轴上的 0.20 标记处)。位于这条线右侧的所有投资组合都将被疏忽,位于这条线左侧的所有投资组合都是可承受的投资组合。

在 0.2 处绘制黄线时,_MPT _揣测投资者会抉择在这条线上具备 最高 收益的投资组合。在这种状况下,这将是咱们的两条线相交的中央。_应该_依据 _MPT _抉择准确的投资组合,以使所选 危险 程度 的收益最大化。

对于给定的投资组合危险程度,在咱们曲线的顶部边缘最大化收益的所有其余投资组合呢?

进入无效边界

无效边界是一条在每个危险程度上都遵循最高收益的曲线。在下图中,无效边界是红色曲线。

依据 _MPT_的说法,除了沿着这条曲线找到的投资组合之外,任何投资者都不应该投资于投资组合。

第三局部

Python 实现

当初让咱们回顾一下这个实现中应用的一些 Python 代码,并尝试生成一些新的无效边界。

于以下代码,应用以下标准创立一个 pandas 数据_框“dta”_:

  • dfta:每列是个股的价格,按日期排序。就我而言,数据框的索引是参考日期。
import seaborn as sns# 生成咱们市场数据的每日收益率
dans = df_mage()# 生成咱们每日收益率的相关矩阵 df
tns.corr()# 应用 seaborn 生成一个热图
heatmap(corre)

下面的代码将生成一个丑陋的表格来可视化每只股票的相关性。在 第一局部 中,须要相关性来计算投资组合标准差。

相关性热图

上面是用于生成咱们的无效边界图和 50,000 个随机投资组合的代码。

col = coy * 252for sio in range(nuos):


    利润率 = 收益率 / 稳定率
    pots.append(reuns)
    potity.append(votty)
    stts.append(eihs)# 每个投资组合的收益和危险值
portfolio = {'Returns': orttrns,
             'Volatility': potvtilty,
             '夏普比率': shp_tio}。# 数据框架
df = pd.DataFrame
    
# 为所需的列的安顿取得更好的标签

df = df\[cm_der\]

当初,为了生成一个丑陋的无效边界图,让咱们找到夏普比率最高的投资组合和稳定率最低的投资组合。

ma\_a\_row = df.iloc\[df\['夏普比率'\].idxmax()\]。maxhr\_TN = mashrow\_\['收益率'\]
maha\_VOL = m\_hae\_o\_\['Volatility'\]

plt.scatr
plt.corar(label='夏普比率')
plt.scaer(ma\_p\_OL, axhpTN, c='red', s=50)
plt.sow()

上方点:夏普比率最高的投资组合,下方点:稳定率最低的投资组合。

咱们对 50000 个随机生成的投资组合进行了很好的可视化,并带有两个额定的点。回忆一下,上方的点代表具备最高夏普比率的投资组合,而下方的点代表咱们具备最低危险(波动性)的投资组合。

让咱们检查一下从咱们最后的四只股票中产生这些投资组合的权重。

论断

_MPT _的次要限度之一是它应用历史(过来)数据。依据历史收益、相关性和危险(标准差)创立投资组合,并不能保障将来看起来是一样的。

然而,MPT 的确为咱们提供了一些十分有用的益处,如资产配置、多样化和投资组合再均衡。

  • 资产配置 容许投资者依据他们的年龄和财务指标设定肯定的危险。
  • 多元化 有助于评估高风险、低相关性资产作为一个整体投资组合,并以易于了解和评估的形式(危险和收益)。
  • 投资组合再均衡 为投资者提供路线图,以定期审查其以后的投资组合,并在须要时帮忙从新调整头寸。

 

最受欢迎的见解

1.R 语言对 S&P500 股票指数进行 ARIMA + GARCH 交易策略

2.R 语言改良的股票配对交易策略剖析 SPY—TLT 组合和中国股市投资组合

3.R 语言工夫序列:ARIMA GARCH 模型的交易策略在外汇市场预测利用

4.TMA 三均线期指高频交易策略的 R 语言实现

5.r 语言多均线量化策略回测比拟

6. 用 R 语言实现神经网络预测股票实例

7.r 语言预测稳定率的实现:ARCH 模型与 HAR-RV 模型

8.R 语言如何做马尔科夫转换模型 markov switching model

9.matlab 应用 Copula 仿真优化市场危险

正文完
 0