在Python上是否有计算Yahoo Finance DatasReader市场Beta的方法?
我目前正试图从雅虎金融数据阅读器获得的股票中获得市场beta。我想知道是否有一种方法可以计算每个股票市场的贝塔,并将其放在一个数据框中 到目前为止,我的代码是这样的:在Python上是否有计算Yahoo Finance DatasReader市场Beta的方法?,python,finance,yahoo,Python,Finance,Yahoo,我目前正试图从雅虎金融数据阅读器获得的股票中获得市场beta。我想知道是否有一种方法可以计算每个股票市场的贝塔,并将其放在一个数据框中 到目前为止,我的代码是这样的: import pandas_datareader.data as pdr Tickers=['SBUX','TLRY'] SD='2005-01-31' ED='2018-12-31' TickerW=pdr.datareader(Tickers,'yahoo',SD,ED) TickerW.head() 好的,为了确
import pandas_datareader.data as pdr
Tickers=['SBUX','TLRY']
SD='2005-01-31'
ED='2018-12-31'
TickerW=pdr.datareader(Tickers,'yahoo',SD,ED)
TickerW.head()
好的,为了确保我们在同一页上,我们使用以下公式和市场贝塔的定义: 贝塔=协方差(股票收益、市场收益)/方差(市场收益) 因此,首先,我们需要市场和股票的报价器。你在这里使用哪种股票代码很大程度上取决于你想要比较的市场:总股票市场?只有标准普尔500指数?也许是其他一些国际股票指数?这里没有100%正确的答案,但一个好的选择方法是思考谁是你股票的“推动者”,以及他们持有哪些其他股票。(查看Damodaran的估价课程,如果你用谷歌搜索,可以在互联网站上免费获得) 现在你的问题是:我如何计算股票收益的协方差和方差 首先,熊猫票有一大堆信息。我们想要的是“调整后的收盘价”。这是股票的每日收盘价,可追溯调整任何“特殊”事件,如股票拆分、反向拆分和股息。因为假设一只股票一天交易1000美元,然后进行一对二的股票分割,所以现在不是1000美元一股,而是500美元一股。在一张“原始”价格表中,你的股票似乎在一天内跌了50%,而实际上什么都没发生。调整后的收盘时间序列会考虑到这一点,以确保只反映股票价值的“真实”变化 你可以通过调用
prices=TickerW['Adj.Close']
或雅虎金融目前使用的任何关键功能来实现这一点。通过查看TickerW
数据帧,您应该能够自己找到答案:)
接下来,我们将把价格转化为回报。这只是价格。shift(1)/prices(或者反过来说:D查阅文档,自己尝试一下)。(书呆子注:从数学上讲,使用对数回报比使用这些回报更合理,因为它们具有某些合理的属性。如果你愿意,可以在回报周围加一个“对数”
最后,我们现在有一系列回报(或对数回报)。一系列用于股票回报,一系列用于市场回报(例如,从SPY获得的,用于标准普尔500指数)。现在我们只需要在beta公式中使用它们
好吧,我要做的就是我刚才做的:点击谷歌搜索“两个系列之间的熊猫协方差”,我们就可以
所以基本上,cov=stock\u returns.cov(market\u returns)
和var=market\u returns.var
然后beta=cov/var
我想说的是,这些信息应该足以让你在路上看到。祝你好运。好的,为了确保我们在同一页上,我们从这里使用市场测试版的公式和定义: 贝塔=协方差(股票收益、市场收益)/方差(市场收益) 因此,首先,我们需要市场和股票的报价器。你在这里使用哪种报价器在很大程度上取决于你想与哪个市场进行比较:整个股票市场?只有标准普尔500指数?也许是其他一些国际股票指数?这里没有100%正确的答案,但一个好的选择方法是思考谁是“搬家者”你的股票有多少,以及他们持有的其他股票有多少。(查看Damodaran的估值课程,如果你用谷歌搜索,可以在互联网上免费获得) 现在你的问题是:我如何计算股票收益的协方差和方差 首先,熊猫股票有一系列信息。我们想要的是“调整后的收盘价”。这是该股票的每日收盘价,可以追溯到任何“特殊”的调整股票拆分、反向拆分和股息等事件。因为假设一只股票每天的交易价格为1000美元,但随后进行了1:2的股票拆分,所以现在,你的股票价格不是1000美元的1股,而是500美元的2股。在“原始”中在价格图表中,你的股票似乎在一天内损失了50%的价值,而实际上什么都没有发生。调整后的收盘时间序列会考虑到这一点,以确保只反映股票价值的“真实”变化 你可以通过调用
prices=TickerW['Adj.Close']
或雅虎金融目前使用的任何关键功能来实现这一点。只要看看TickerW
数据框,你就应该能够自己解决:)
接下来,我们将把价格转化为回报。这只是价格。shift(1)/prices(或者反过来说:D查阅文档,自己尝试一下)。(书呆子注:从数学上讲,使用对数回报比使用这些回报更合理,因为它们具有某些合理的属性。如果你愿意,可以在回报周围加一个“对数”
最后,我们现在有一系列回报(或对数回报)。一系列用于股票回报,一系列用于市场回报(例如,从SPY获得的,用于标准普尔500指数)。现在我们只需要在beta公式中使用它们
好吧,我要做的就是我刚才做的:点击谷歌搜索“两个系列之间的熊猫协方差”,我们就可以
所以基本上,cov=stock\u returns.cov(market\u returns)
和var=market\u returns.var
然后beta=cov/var
我想说,这些信息应该足以让你一路顺风。祝你好运。你到底被困在哪里?你知道市场贝塔是如何“理论上”计算的吗你被困在实现上了吗?我被困在如何实现上了,因为股票代码是通过datareader从yahoo finance派生出来的。理论上,我知道如何计算它,但我不确定在这种情况下。任何帮助都是非常感谢的,即使是一个小例子