用python,matplotlib,numpy,pandas写一个程序:现有十只股票的数据"万华化学600309.xls","伊利股份600887.xls","恒瑞医药600276.xls","招商银行600036.xls","海尔智家600690.xls","海螺水泥600585.xls", "片仔癀600436.xls","贵州茅台600519.xls","通策医疗600763.xls", "长江电力600900.xls",以市值为权重捏合这十只股票,形成自定义的茅指数。市值是每天动态变化的,所以我们以当天的流通市值来捏合茅指数时,每天的权重都在变。假设mktvalue_tk为第t天,第 k 只股票的流通市值,r_kt为第t天第 k只股票的收益率。 第t 天总市值: sum_mktvalue= mktvalue_tk求和。 第t天,第 k 只股票占茅指数的权重: weight_tk = mktvalue_tk/sum_mktvalue。 “茅指数”每日收益率: mao_t = ,weight*r_kt最终结果请打印倒数三天的收益率以便检查。

时间: 2023-07-06 20:09:31 浏览: 48
以下是程序代码: ```python import pandas as pd import numpy as np import matplotlib.pyplot as plt # 定义股票代码和文件名 stocks = {"万华化学": "600309", "伊利股份": "600887", "恒瑞医药": "600276", "招商银行": "600036", "海尔智家": "600690", "海螺水泥": "600585", "片仔癀": "600436", "贵州茅台": "600519", "通策医疗": "600763", "长江电力": "600900"} file_path = "./stock_data/" # 读取数据并计算每只股票的收益率 returns = pd.DataFrame() for name, code in stocks.items(): file_name = file_path + code + ".xls" data = pd.read_excel(file_name) data.set_index("日期", inplace=True) data.sort_index(inplace=True) returns[name] = data["收盘价"].pct_change() # 计算每天的茅指数收益率 mao_returns = pd.DataFrame() for date in returns.index: mktvalue = pd.Series() for name, code in stocks.items(): file_name = file_path + code + ".xls" data = pd.read_excel(file_name) data.set_index("日期", inplace=True) data.sort_index(inplace=True) mktvalue[name] = data.loc[date]["流通市值"] sum_mktvalue = mktvalue.sum() weight = mktvalue / sum_mktvalue mao_returns[date] = weight.dot(returns.loc[date]) # 打印倒数三天的茅指数收益率 print("倒数第一天茅指数收益率:{:.2%}".format(mao_returns.iloc[-1])) print("倒数第二天茅指数收益率:{:.2%}".format(mao_returns.iloc[-2])) print("倒数第三天茅指数收益率:{:.2%}".format(mao_returns.iloc[-3])) ``` 这段代码会读取指定路径下的十只股票的数据,计算每只股票的收益率,并根据当天的流通市值来计算茅指数的权重,最终计算出每天的茅指数收益率。最后会打印倒数三天的茅指数收益率以供检查。

相关推荐

最新推荐

recommend-type

Python使用matplotlib和pandas实现的画图操作【经典示例】

主要介绍了Python使用matplotlib和pandas实现的画图操作,结合实例形式分析了Python基于matplotlib和pandas的数值运算与图形显示操作相关实现技巧,并对部分代码的图形显示进行了显示效果测试,需要的朋友可以参考下
recommend-type

Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围

主要介绍了Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

python matplotlib绘制动态曲线 数据流可视化

查看一些数据的动态变化,最容易想到的是像opencv那样直接循环使用imshow()形成动态画面,但是由于matplotlib中的显示模式是阻塞模式,在plt.show()之后程序就会暂停在那,打开一个窗口以后必须关掉才能继续执行,...
recommend-type

解决Python Matplotlib绘图数据点位置错乱问题

造成上述情况的原因其实是由于输入matplotlib.plot()函数的数据x_data和y_data从CSV文件中直接导入后格式为string,因此才会导致所有数据点的x坐标都被直接刻在了x轴上,且由于坐标数据格式错误,部分点也就表现为...
recommend-type

Numpy&pandas(八)–股票分析实例

股票数据分析 具体详见 https://github.com/kamidox/stock-analysis 分析波动幅度 %matplotlib inline import pandas as pd import numpy as np import os import matplotlib.pyplot as plt datadir = 'yahoo-data...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

解释minorization-maximization (MM) algorithm,并给出matlab代码编写的例子

Minorization-maximization (MM) algorithm是一种常用的优化算法,用于求解非凸问题或含有约束的优化问题。该算法的基本思想是通过构造一个凸下界函数来逼近原问题,然后通过求解凸下界函数的最优解来逼近原问题的最优解。具体步骤如下: 1. 初始化参数 $\theta_0$,设 $k=0$; 2. 构造一个凸下界函数 $Q(\theta|\theta_k)$,使其满足 $Q(\theta_k|\theta_k)=f(\theta_k)$; 3. 求解 $Q(\theta|\theta_k)$ 的最优值 $\theta_{k+1}=\arg\min_\theta Q(
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。