我想大概只有财富,才能让全民关注的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,欢迎转载,收藏,码字不易,喜欢文章就点赞一下!谢啦