Python分析了5年的沪指数据,这茬韭菜没那么容易被割

2020/7/13 11:00:51 人评论 次浏览 分类:学习教程

我想大概只有财富,才能让全民关注的C位从疫情转移至别处。

“大盘疯了。”在社交网络上,对于近期股市,类似评价并不少见。股市疯涨让散户狂奔进场、券商APP宕机,一夜之间,所有人都在谈论炒股,股票搜索热度也在7月7日达到顶峰。

在这里插入图片描述
经历过2015年股海浮沉的老股民显得淡定许多。不少老股民并未跟风冲入股市,其中有的人靠投资基金来“吃点肉”,有的甚至完全不入场,因为“经历过股灾,不想重蹈覆辙了”。

进入7月,A股急速“飙车”连续暴涨,在7月10日踩了一脚刹车。当日早盘三大股指小幅低开,随后出现高位盘整,沪指收跌近2%,市场行情明显降温。在下图我们可以清楚的看到,虽然近期股市热度有所上升,但与2015年的疯狂相比,今天无论是股民还是市场都相对淡定了很多。在这里插入图片描述
今天不是教大家怎么去炒股的,小编在本篇中将以沪指数据为例,教大家如何利用Python对沪指进行数据分析、数据挖掘。

获取数据

股票数据通常可从新浪股票、雅虎股票等网页上获取,此外还有一些炒股软件,如同花顺、通达信等都提供了非常清楚的股票数据展示和图表呈现。

Python中我们可以使用pandas_datareader库来获取股票数据,默认是访问yahoofinance的数据,其中包括上证和深证的股票数据,还有港股数据,该库可以获取股票的历史交易记录信息:如最高价、最低价、开盘价、收盘价以及成交量,其中:上证代码是ss,深证代码是sz,港股代码是hk。本文获取从2015年1月1日至今的上证指数数据。

import pandas as pd
import pandas_datareader.data as web
import datetime as dt
data = web.DataReader('000001.ss','yahoo', dt.datetime(2015,1,1),dt.datetime(2020,7,11))
data.head()
data.to_excel('000001.ss.xlsx')

在这里插入图片描述

数据处理

与爬虫获取的数据对比的话,可以看出上证指数数据是比较规范的,我们同样需要进行数据处理,方便进行数据展示,数据处理包含两方面的内容:字段的格式转换、剔除异常值等。为了方面对数据整体状况了解可以使用函数:

df.describe()

数据预处理代码

import pandas as pd
df = pd.read_excel('000001.ss.xlsx')
df['Date']= df.apply(lambda x : str(x['Date'])[:11],axis=1)
df = df[df['Volume']>0]
数据可视化分析

对股市研究比较多的应该知道,我们不仅要看消息面,也要看基本面,股价不仅要看短期趋势、也要看长期趋势、7日均线、30日均线、当前点位是否在重要的点位上。

趋势图分析

下图我是用mplfinance画出来的,是否记得GitHub热榜|5款优质的Python小工具,最后一款是福利!这篇文章,我们介绍过这个函数。

在这里插入图片描述
在这里插入图片描述
人们常说,股票市场是经济的晴雨表。股价变动不仅随经济周期的变化而变化,同时也能预示经济周期的变化。

从长期趋势来看,7月份之前,因为疫情的原因,股票市场一直处于低迷的状态,沪指一直处在3000点以下。

从短期趋势来看,从7月开始,A股可以说气势如虹,一骑绝尘,像一匹脱缰的野马,连续几日的暴涨,最高一天交易量为6.2亿手,是前期的交易的2.5倍,不过在最近三个交易日的交易量有所下降。7月初之所以暴涨,原因有三:

  • 因疫情原因,市场整体估值偏低;
  • 货币基金收益偏低,市场流动性充沛;
  • 政策出台支持股市发展;

从消息面来看,随着近几日国家队的密集减持动作,在沪指在上一个交易日有所回调,释放出要为股票市场降温的信号。

趋势性预测

股指的预测,本质上是时间序列的预测问题,方法有很多,目前主流的方法是利用LSTM算法进行预测,该方法在我之前文章中已经介绍过:如何使用 LSTM 神经网络实时预测加密货币价格,有兴趣的小伙伴可以阅读一下。

核心代码

import mplfinance as mpf
import matplotlib as mpl
import matplotlib.pyplot as plt
from cycler import cycler# 用于定制线条颜色
symbol = '000001.ss'

kwargs = dict(
    type='candle', 
    mav=(7, 30, 60), 
    volume=True, 
    title='\nA_stock %s 趋势图' % (symbol),    
    ylabel='指数', 
    ylabel_lower='Shares\nTraded Volume', 
    figratio=(15, 10), 
    figscale=5)

mc = mpf.make_marketcolors(
    up='red', 
    down='green', 
    edge='i', 
    wick='i', 
    volume='in', 
    inherit=True)

s = mpf.make_mpf_style(
    gridaxis='both', 
    gridstyle='-.', 
    y_on_right=False, 
    marketcolors=mc)

mpl.rcParams['axes.prop_cycle'] = cycler(
    color=['dodgerblue', 'deeppink', 
    'navy', 'teal', 'maroon', 'darkorange', 
    'indigo'])

mpl.rcParams['lines.linewidth'] = .5

mpf.plot(df, 
    **kwargs, 
    style=s, 
    show_nontrading=False,
    savefig='A_stock-%s_candle_line——1'% (symbol) + '.jpg')
plt.show()
总结

本文介绍了沪指数据可视化分析方法、沪指数据的预测方法。数据从业者从来都不是数据的搬运工,更多的是去思考、分析“为什么的问题”。

虽然近期股市热度有所提高,成交量有所上升,但是广大的股民与2015年入市状态相比,还是淡定了很多,大家都明白:疫情笼罩下的经济形势,不会持续支撑的股价上涨,中国股市历来都是涨的快、跌的也快,这茬韭菜没有那么容易被割!

推荐阅读
  • Python办公自动化|只需三秒,一键生成数据分析报告!
  • 真香!Python可以让画的图舞动起来 !
  • 马赛克秒变高清,这个名为PULSE的方法火了
  • 制作一份可视化的旅行攻略,疫情后来场说走就走的旅行
  • GitHub热榜|5款优质的Python小工具,最后一款是福利!

更多精彩内容,关注微信公众号『Python学习与数据挖掘』

为方便技术交流,本号开通了技术交流群,有问题请添加小助手微信号:connect_we,备注:加群来自CSDN,欢迎转载,收藏,码字不易,喜欢文章就点赞一下!谢啦
在这里插入图片描述

相关资讯

    暂无相关的资讯...

共有访客发表了评论 网友评论

验证码: 看不清楚?
    -->