一、题目:
B题(本科生组):股指与国家经济
自1990年12月19日上海证券交易所挂牌成立,经过30年的快速发展,中国证券市场已经具有相当规模,在多方面取得了举世瞩目的成就,对国民经济的资源配置起着日益重要的作用。截至2019年年底,上海和深圳两个证券交易所交易的股票约4000种。目前,市场交易制度、信息披露制度和证券法规等配套制度体系已经建立起来,投资者日趋理性和成熟,机构投资者迅速发展已具规模,政府对证券市场交易和上市公司主体行为的监管已见成效。
随着近年来我国资本市场的发展和证券交易规模的不断扩大,越来越多的资金投资于证券市场,与此同时市场价格的波动也十分剧烈,而波动作为证券市场中最本质的属性和特征,市场的波动对于人们风险收益的分析、股东权益最大化和监管层的有效监管都有着至关重要的作用,因此研究证券市场波动的规律性,分析引起市场波动的成因,是证券市场理论研究和实证分析的重要内容,也可以为投资者、监管者和上市公司等提供有迹可循的依据。
问题一:投资者购买目标指数中的资产,如果购买全部,从理论上讲能够完美跟踪指数,但是当指数成分股较多时,购买所有资产的成本过于高昂,同时也需要很高的管理成本,在实际中一般不可行。
(1)在附件数据的分析和处理的过程中,请对缺损数据进行补全。
(2)投资者购买成分股时,过多过少都不太合理。对于附件的成分股数据,请您通过建立模型,给出合理选股方案和投资组合方案。
问题二:尝试给出合理的评价指标来评估问题一中的模型,并给出您的分析结果。
问题三:通过附件股指数据和您补充的数据,对当前的指数波动和未来一年的指数波动进行合理建模,并给出您合理的投资建议和策略。
附件:十支股票的相关重要参数。
二、代码分析:
①首先看一下我的文件夹目录:
大致说明一下:在这些文件及文件夹里面,本科生组放在的是桌面上!然后是整体在Pycharm里打开,所有生成的.idea是在第一级目录!只有【附件:十支股票参数.xlsx】是必须要的,另外的文件夹都是通过os模块创建的!
②因为是第一次要训练模型,百度了一波,发现股票的数据集都是csv,于是将这个Excel换成了csv!
"""
1、将excel文件转化为:以各指数成分股票命名的csv文件,方便后面的pandas以及matplotlib和numpy的操作
"""
# 步骤一:将excel文件转化为csv文件
import os
import csv
from openpyxl import load_workbook
# 打开excel文件
wb = load_workbook('附件:十支股票参数.xlsx')
# 列出文件中所有的表名
sheets = wb.sheetnames
path = 'csv数据集'
if not os.path.exists(path):
os.mkdir(path)
def create_csvs(title,path):
name = title
path = path
f = open(path + '/' + name + '.csv',mode="a+",newline='',encoding="utf-8-sig")
csv_write = csv.writer(f)
csv_write.writerow(['Date', 'Open', 'High', 'Low','Close','Turnover'])
f.close()
for sheet in sheets:
create_csvs(sheet,path)
f = open(path + '/' + sheet + '.csv',mode="a+",newline='',encoding="utf-8-sig")
csv_write = csv.writer(f)
table = wb[sheet]
rows = table.max_row
cols = table.max_column
for row in range(5,rows+1):
data = []
for col in range(cols+1):
data.append(str(table.cell(row,col+1).value).replace(r'/','-'))
csv_write.writerow(data[:6])
f.close()
代码很好理解:通过wb.sheetnames将Excel中的所有表名都显示出来,接着通过定义两个函数分别生成csv模板以及将我们的Excel中的几栏数据写入到对应的CSV文件中!最后是通过for循环,将10支股票生成的csv文件都放到一个文件夹【csv数据集】中!(这个文件夹是通过os模块创建的!)
csv数据集文件夹图片:
csv文件图片: