Python调用Tushare抓取上证指数并作初步分析示例

简介:

1.关于Tusahre

Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据。其网址为:http://tushare.org/,打开之后的界面如下:

a637804ba54b8d904428c2624f910d27f0602c81

在界面左侧,可以看到能够抓取很多数据。

2.Tushare的安装与使用

在Tushare界面有对其安装与使用的介绍:

4ce490f029c8e0f2d1e819859362d21611d3b7e9

初步的调用方法为:


import tushare as ts
ts.get_hist_data('600848') #一次性获取全部日k线数据

得到结果:

b7ef1547deca424997be76952176ffe0f1caa524

第一列是日期,后边的是各类价格,包括开盘价、最高价、收盘价等等,具体在Tushare里边都有详细介绍。

3.调用Tushare抓取上证指数并作可视化

上证指数的代码为00001,在这里抓取2017-01-01到2018-03-31期间的数据,并对其涨跌幅,也就是收益率进行初步可视化。代码如下:


import tushare as ts
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
df = ts.get_hist_data('000001',start='2017-01-01',end='2018-03-31')
df.head(10)

8fb37d967bb2b0b371d8034c45bc291ad55755b7

可以看到转去了上证指数的各类价格数据以及最后turnover的换手率。但是有一个问题就是数据的date的降序的,即日起从2018年3月往2017年1月排列的,需要排序。


sz=df.sort_index(axis=0, ascending=True) #对index进行升序排列
sz_return=sz[['p_change']] #选取涨跌幅数据
test=sz_return[255:] #测试集
train=sz_return[0:255] #划分训练集 #对训练集与测试集分别做趋势图
plt.legend(loc='best')
plt.figure(figsize=(10,5)) train['p_change'].plot() plt.show()
plt.legend(loc='best')
plt.figure(figsize=(10,5)) test['p_change'].plot(c='r')
plt.show()

e3726827c24e582056eaf6617919fe6153ab345f

蓝色为训练集序列波动图,红色为测试集序列波动图。

4.对上证指数收益率做初步时间序列分析

(1)直接用最后一个值作为测试集的预测值

757cc364c01089e071c08c6d841e7c831a7c37f6

蓝色为训练集序列,绿色为测试集序列,红色为预测值序列,得到RMSE为2.7924。

(2)直接用训练集平均值作为测试集的预测值


#Simple Average
y_hat_avg = test.copy() #copy test列表
y_hat_avg['avg_forecast'] = train['p_change'].mean() #求平均值
plt.figure(figsize=(12,8))
plt.plot(test['p_change'], label='Test')
plt.plot(train['p_change'], label='Train')
plt.legend(loc='best')
plt.plot(y_hat_avg['avg_forecast'], label='Average Forecast') plt.show()
print(rms)
rms = sqrt(mean_squared_error(test.p_change, y_hat_avg.avg_forecast))
9b8c759d8cc8be2acda7a50862e2577410726131

得到RMSE为2.4192。

(3)直接用移动平均法最后一个值作为测试集的预测值


#Moving Average
y_hat_avg = test.copy()
y_hat_avg['moving_avg_forecast'] = train['p_change'].rolling(30).mean().iloc[-1]
#30期的移动平均,最后一个数作为test的预测值 plt.figure(figsize=(12,8))
plt.plot(test['p_change'], label='Test')
plt.plot(train['p_change'], label='Train')
plt.legend(loc='best')
plt.plot(y_hat_avg['moving_avg_forecast'], label='Moving Average Forecast') plt.show()
print(rms)
rms = sqrt(mean_squared_error(test.p_change, y_hat_avg.moving_avg_forecast))
d7c949247060e69b2c751028d6526b2f0c06e1e0

得到RMSE为2.3849。

可以看到,最后移动平均法的均方误差最低,预测效果最好。


原文发布时间为:2018-10-11

本文作者:博观厚积

本文来自云栖社区合作伙伴“Python爱好者社区”,了解相关信息可以关注“Python爱好者社区”。

相关文章
|
29天前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品消费模式分析的深度学习模型
使用Python实现智能食品消费模式分析的深度学习模型
122 70
|
1月前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品消费习惯分析的深度学习模型
使用Python实现智能食品消费习惯分析的深度学习模型
141 68
|
27天前
|
机器学习/深度学习 数据采集 数据挖掘
使用Python实现智能食品消费市场分析的深度学习模型
使用Python实现智能食品消费市场分析的深度学习模型
110 36
|
20天前
|
数据可视化 算法 数据挖掘
Python量化投资实践:基于蒙特卡洛模拟的投资组合风险建模与分析
蒙特卡洛模拟是一种利用重复随机抽样解决确定性问题的计算方法,广泛应用于金融领域的不确定性建模和风险评估。本文介绍如何使用Python和EODHD API获取历史交易数据,通过模拟生成未来价格路径,分析投资风险与收益,包括VaR和CVaR计算,以辅助投资者制定合理决策。
68 15
|
25天前
|
机器学习/深度学习 数据采集 数据挖掘
使用Python实现智能食品消费趋势分析的深度学习模型
使用Python实现智能食品消费趋势分析的深度学习模型
101 18
|
23天前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
63 8
|
30天前
|
API Python
【Azure Developer】分享一段Python代码调用Graph API创建用户的示例
分享一段Python代码调用Graph API创建用户的示例
51 11
|
28天前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
27天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
16天前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
102 80