2024山东大学创新项目实训_17

1. 获取并返回公司的基本信息,如名称、行业、国家等。
    def get_company_info(self):
        info = self.info
        result = {
            "Company Name": info['shortName'],
            "Industry": info['industry'],
            "Sector": info['sector'],
            "Country": info['country'],
            "Website": info['website']
        }
        return result

2. 获取并比较股票与标准普尔500指数(S&P 500)的表现,生成图表并保存为PNG文件。

股票与标准普尔500指数(S&P 500)的表现可以通过比较两者在一定时间段内的价格变化来体现。这种比较可以帮助投资者了解目标公司的股票在市场上的相对表现。以下是详细解释:

股票与标准普尔500指数(S&P 500)的表现

  1. 股票表现

    • 表现通常指股票在特定时间段内的价格变化。
    • 可以通过股票的收盘价来衡量。
    • 例如,计算一只股票在过去一年的价格变化率,可以显示这只股票的价格是如何变化的。
  2. 标准普尔500指数(S&P 500)的表现

    • S&P 500是美国市场上最具代表性的股票指数之一,由500家大型上市公司组成。
    • 该指数反映了这些公司的整体市场表现,是衡量美国股票市场整体健康状况的一个重要指标。
    • 类似于个股表现,可以通过该指数在同一时间段内的价格变化来衡量其表现。

可以体现什么

  1. 相对表现

    • 通过比较目标公司股票与S&P 500指数的表现,投资者可以看到这只股票是跑赢了大盘(指数)还是跑输了大盘。
    • 如果目标股票的表现优于S&P 500指数,意味着该股票在市场上表现较好,可能具有较高的投资价值。
    • 反之,如果表现不如S&P 500指数,可能表明该股票面临一些问题或风险。
  2. 市场趋势

    • 比较两者的表现可以帮助投资者了解整体市场趋势。
    • 例如,如果S&P 500指数在上升,而目标股票在下降,这可能暗示该公司面临一些特定的挑战。
  3. 风险评估

    • 通过比较两者的波动性,投资者可以评估目标股票的风险水平。
    • 如果目标股票的波动性明显高于S&P 500指数,可能表明该股票具有更高的风险。
  4. 投资决策

    • 投资者可以根据比较结果做出更明智的投资决策。
    • 例如,如果目标股票表现优异,投资者可能会考虑增加持有量。
    • 如果表现不佳,则可能需要重新评估其投资组合。

实例图表

通过图表,可以更直观地看到股票与S&P 500指数的相对表现。例如:

  • 股票表现曲线:展示股票在过去一年的价格变化率。
  • S&P 500表现曲线:展示S&P 500指数在同一时间段内的价格变化率。
  • 比较图表:同时绘制这两条曲线,可以清楚地看到股票与S&P 500指数的相对表现。

这样的图表可以帮助投资者快速了解股票的市场表现,做出更有依据的投资决策。

方法 get_stock_performance,它从雅虎财经(Yahoo Finance)获取目标公司股票和标准普尔500指数(S&P 500)的历史数据,并生成一个图表来比较它们在过去一年中的表现。最后,将生成的图表保存为PNG文件并返回其存储路径。

方法定义

内嵌函数:fetch_stock_data

fetch_stock_data 函数接受股票代码(ticker)和时间周期(默认1年,即"1y")作为参数,使用雅虎财经的API获取该股票的历史数据,并返回其收盘价。

获取目标公司股票和S&P 500指数的数据

分别获取目标公司股票(self.ticker_symbol)和S&P 500指数("^GSPC")在过去一年的收盘价数据。

计算变化率

company_change = (target_close - target_close.iloc[0]) / target_close.iloc[0] * 100 sp500_change = (sp500_close - sp500_close.iloc[0]) / sp500_close.iloc[0] * 100

这两行代码计算目标公司股票和S&P 500指数的百分比变化率,基于它们的初始收盘价。

计算额外的日期点

计算了开始日期、四个月后的日期、八个月后的日期和结束日期,以便在图表中标记这些时间点。

3.计算并绘制指定股票的市盈率(PE)和每股收益(EPS)。图表保存为PNG文件。

股票的市盈率(Price to Earnings Ratio, PE)和每股收益(Earnings Per Share, EPS)是两个重要的财务指标,用于评估公司股票的投资价值和盈利能力。以下是详细解释:

每股收益(Earnings Per Share, EPS)

定义

  • EPS是指公司在一定期间(通常是一年)的净利润除以公司流通在外的普通股股数。
  • 公式:EPS=净利润流通在外的普通股股数,EPS = 净利润\流通在外的普通股股数

用途

  • EPS是衡量公司盈利能力的重要指标。它表示公司每一股普通股在该期间内所能分配到的净利润。
  • 较高的EPS通常意味着公司盈利能力强,股票的投资价值可能较高。

市盈率(Price to Earnings Ratio, PE)

定义

  • PE是指股票的市场价格与每股收益(EPS)之间的比率。
  • 公式:PE=股票价格每股收益PE = 股票价格\每股收益

用途

  • PE是衡量公司股票估值的重要指标。它表示投资者愿意为每一美元的收益支付多少美元的价格。
  • 一般来说,较高的PE可能表明投资者对公司的未来增长抱有较高的期望,但也可能意味着股票被高估。较低的PE可能表明股票被低估,但也可能反映出市场对公司未来表现的担忧。

PE和EPS的意义和应用

  1. 投资决策

    • EPS帮助投资者评估公司当前的盈利能力。
    • PE帮助投资者判断股票的估值水平,了解市场对公司未来盈利的预期。
  2. 比较不同公司

    • 投资者可以使用PE来比较不同公司的估值水平,选择性价比高的投资标的。
    • EPS则可用于比较相同行业内不同公司的盈利能力。
  3. 分析股票走势

    • 分析公司EPS的历史数据和增长趋势,了解公司盈利的稳定性和成长性。
    • 结合PE的变化,判断市场对公司估值的变化。

综合应用

  • 成长型投资:投资者通常关注PE较高但EPS增长迅速的公司。这类公司可能处于快速扩展期,未来盈利预期较高。
  • 价值型投资:投资者通常关注PE较低但EPS稳定或略有增长的公司。这类公司可能被市场低估,具有较高的安全边际。

从类的方法 get_income_stmt 中获取损益表数据,并提取出 "稀释每股收益"(Diluted EPS)这一行的数据。"稀释每股收益"(Diluted EPS)是公司财务报表中的一个重要指标,用于衡量在考虑所有潜在稀释因素后的每股收益。它提供了一个更保守和全面的每股收益计算方式,尤其在公司存在可能会增加已发行股票数量的金融工具时,如期权、可转换债券和认股权证等。

获取股票历史数据

historical_data = self.stock.history(period="5y")

获取股票过去五年的历史数据,包含每日的收盘价。

日期处理

dates = pd.to_datetime(eps.index[::-1], utc=True)

将EPS的日期索引转换为UTC时区的日期对象,并逆序排列(从最旧到最新)。

查找最接近的交易日数据

遍历每一个EPS日期,查找对应的最接近的交易日股价:

  • 如果指定日期不是交易日,使用 asof 方法找到最近的交易日股价。
  • 否则,直接获取该日期的收盘价。
  • 将结果存储在 results 字典中,键为日期,值为收盘价。

计算市盈率(PE)

  • 计算每个日期的市盈率:将股价除以每股收益。
  • 更新 dateseps 为逆序排列,确保与 results 中的日期和股价顺序一致。

4. 获取并返回股票最近的分析师推荐。

  1. recommendations = self.stock.recommendations

    • 从股票对象中获取分析师推荐数据,存储在 recommendations 变量中。
  2. row_0 = recommendations.iloc[0, 1:]

    • 获取推荐数据的第一行,排除 'period' 列。
  3. max_votes = row_0.max()

    • 找到推荐数据中投票最多的值。
  4. majority_voting_result = row_0[row_0 == max_votes].index.tolist()

    • 找到与最大投票值相等的索引,并将这些索引转换为列表。
  5. return majority_voting_result[0], max_votes

    • 返回包含最多推荐选项和其数量的元组。

返回值

该函数返回一个元组,其中包含:

  • 分析师推荐的最多选项(字符串形式)。
  • 该选项的推荐数量(整数形式)。
  • 17
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值