股市分析与Python应用

股市的股价反映了公司的估值和表现,这影响了市场的供需关系。技术分析是股市分析中的一个重要领域,本文将提供一个概览。通过使用Python分析股价,投资者可以确定何时买入或卖出股票。本文将为那些想要分析股市并理解其波动性的投资者提供一个起点。让开始使用Python进行股价分析。

目录

  • Python中用于股价分析的库
  • 数据描述
  • Python中用于股价分析的探索性分析
  • Python中用于股价分析的移动平均线
  • 散点图矩阵
  • 股票价值的百分比增长
  • 结论

Python中用于股价分析的库

以下是进行股价分析前需要安装的库,可以通过pip函数轻松下载。下面提供了库的名称和应用的简要描述。

应用
Yahoo Finance 下载股票数据
Pandas 在Python中处理数据框
Numpy 数值Python
Matplotlib 绘制图表
import pandas as pd import datetime import numpy as np import matplotlib.pyplot as plt from pandas.plotting import scatter_matrix !pip install yfinance import yfinance as yf %matplotlib inline

数据描述

使用Yahoo Finance API功能下载了每日股票价格数据,这是五年的数据,包括开盘价、最高价、最低价、收盘价和成交量。

  • 开盘价:股票市场早上开盘时的价格
  • 收盘价:股票市场晚上收盘时的价格
  • 最高价:当天股票达到的最高价格
  • 最低价:当天股票交易的最低价格
  • 成交量:当天交易的股票总量

这里以TCS、Infosys和Wipro三家公司为例,它们是提供IT服务的行业领导者。

start = "2014-01-01" end = '2019-1-01' tcs = yf.download('TCS',start,end) infy = yf.download('INFY',start,end) wipro = yf.download('WIPRO.NS',start,end)

Python中用于股价分析的探索性分析

以上图表是通过利用Python中的matplotlib库,以折线图的形式表示这三家公司的开盘股票价格。图表清楚地显示了与其它两家公司相比,Wipro的价格更高,但对这些公司的绝对价格不感兴趣,而是想了解这些股票随时间的波动情况。

tcs['Volume'].plot(label = 'TCS', figsize = (15,7)) infy['Volume'].plot(label = "Infosys") wipro['Volume'].plot(label = 'Wipro') plt.title('股票交易量') plt.legend()

图表显示了这些公司的交易量,清楚地显示了Infosys的股票交易量比其他IT股票更多。

Python中用于股价分析的移动平均线

众所周知,股票价格波动性很大,价格随时间快速变化。为了观察任何趋势或模式,可以借助50日和200日平均线。

tcs['MA50'] = tcs['Open'].rolling(50).mean() tcs['MA200'] = tcs['Open'].rolling(200).mean() tcs['Open'].plot(figsize = (15,7)) tcs['MA50'].plot() tcs['MA200'].plot()

散点图矩阵

以上图表是每家公司的直方图的组合,以及随后的散点图,每次取两家公司的股价。从图表中,可以清楚地看出Wipro股票与Infosys股票显示出线性相关性。

data = pd.concat([tcs['Open'],infy['Open'],wipro['Open']],axis = 1) data.columns = ['TCSOpen','InfosysOpen','WiproOpen'] scatter_matrix(data, figsize = (8,8), hist_kwds= {'bins':250}) tcs['returns'] = (tcs['Close']/tcs['Close'].shift(1)) -1 infy['returns'] = (infy['Close']/infy['Close'].shift(1))-1 wipro['returns'] = (wipro['Close']/wipro['Close'].shift(1)) - 1 tcs['returns'].hist(bins = 100, label = 'TCS', alpha = 0.5, figsize = (15,7)) infy['returns'].hist(bins = 100, label = 'Infosys', alpha = 0.5) wipro['returns'].hist(bins = 100, label = 'Wipro', alpha = 0.5) plt.legend()
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485