股票分析实战
2019-08-30 08:18
78 查看
本文转载自毛利学Python,详情可以扫描下方二维码:
深300股票指数由中证指数公司编制的沪深300指数于2005年4月8日正式发布。沪深300指数以2004年12月31日为基日,基日点位1000点·沪深300指数是由上海和深圳证券市场中选取300只A股作为样本,其中沪市有179只,深市121只样本选择标准为规模大,流动性好的股票。沪深300指数样本覆盖了沪深市场六成左右的市值,具有良好的市场代表性。作为一种商品。
读取股票
tushare包的get_k_data()函数来获取股票交易数据
#先引入后面可能用到的包(package) import pandas as pd import numpy as np import matplotlib.pyplot as plt #正常显示画图时出现的中文 import matplotlib as mpl #使用微软雅黑字体 mpl.rcParams['font.sans-serif']=['SimHei'] mpl.rcParams['axes.unicode_minus']=False import seaborn as sns import tushare as ts %matplotlib inline
# 沪深300:hs300 data=ts.get_k_data(code='hs300',ktype='D', autype='qfq', start='2005-04-08') #code:股票代码,个股主要使用代码,如‘600000’ #ktype:'D':日数据;‘m’:月数据,‘Y’:年数据 #autype:复权选择,默认‘qfq’前复权 #start:起始时间 #end:默认当前时间 data.head(5)
收盘价的走势
# 将date设置索引 data.index = pd.to_datetime(data['date']) #画出沪深300收盘价的走势 data['close'].plot(figsize=(12,6)) plt.title('沪深300上市到现在走势图') plt.xlabel('日期') plt.show()
股票描述
data.describe()从上述结果可以看出,沪深300从2005年4月8日至现在(最后交易日是当前运行时间),一共有3484个样本,均值为2928点,标准差为987(波动还是比较大的),最大值是5862点。
每日成交量
#再查看下每日成交量 #2006年市场容量小,交易量比较小,我们从2007年开始看 data.loc["2005-4-08":]["volume"].plot(figsize=(12,6)) plt.title('沪深300 从2005年到2019年日成交量图') plt.xlabel('日期') plt.show()
上图的成交量反映了一个2007到2008年的大牛市人类可能不怎么认识股票,如此火爆竟然没人买,是我就马上下注了,可以少奋斗人生,2015到2016也涨得不错,果然是购买的人暴了。感兴趣的朋友可以结合货币供给、实体经济指标、等数据一起分析。
#沪深300日收益率 # pct_change() 等价于 (data["close"] / data["close"].shift(1)) - 1 data["日收益率"] = data["close"].pct_change() data["日收益率"].loc['2005-4-8':].plot(figsize=(12,8),line,marker="o",color="g") plt.xlabel('日期') plt.ylabel('收益率') plt.title('2005-2019年沪深300日收益率') plt.show()
移动平均线
#动设置20,52,252日均线 #移动平均线: ma_day = [20,52,252] # 月,季,年 # 因为银行一年周末不上班,使用一年就上班大约253天 for ma in ma_day: column_name = "%s日均线" %(str(ma)) # 如果不存在就nan data[column_name] = data["close"].rolling(ma).mean() #画出2006年以来收盘价和均线图 data.loc['2006-4-8':][["close","20日均线","52日均线","252日均线"]].plot(figsize=(12,6)) plt.title('沪深300走势图') plt.xlabel('日期') plt.show()
蒙特卡洛模拟股票
from scipy.stats import norm # 蒙特卡洛模拟股票 # 对数收益率 log_returns = np.log(1 + data["close"].pct_change()) # 对数收益率平均值 u = log_returns.mean() # 对数收益率方差 var = log_returns.var() # 布朗运动的漂移(过去的收益率) drift = u - (0.5 * var) # 对数收益率标准差 stdev = log_returns.std() # 一年交易252(预测一年) t_intervals = 252 # 迭代10次 iterations = 10 # 重点 每天的回报 历史的收益率 daily_returns = np.exp(drift + stdev * norm.ppf(np.random.rand(t_intervals, iterations))) daily_returns.shape # (252, 10)
# 将最后一天作为开始 S0 = data["close"].iloc[-1] # 创建(252,10)的零矩阵 price_list = np.zeros_like(daily_returns) # 将S0 赋予 price_list[0] price_list[0] = S0
#在范围(1,t_间隔)内创建一个循环,该循环将日价格(t-1)与日回报值(t)的乘积重新分配给时间t中的价格。 for t in range(1, t_intervals): price_list[t] = price_list[t - 1] * daily_returns[t]
plt.figure(figsize=(10,6)) plt.plot(price_list) plt.show()可见对于股票传统的蒙特卡洛的无法准确的预测,所以必须使用更加高级的深度学习模型来学习,预测股票未来的发展走势
◆ ◆ ◆ ◆ ◆
长按二维码关注我们
数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。
管理员二维码:
猜你喜欢
相关文章推荐
- R实战:【股票分析】用quantmod包绘制K线
- R实战:【股票分析】用quantmod包绘制K线(离线数据csv/txt)
- python数据分析之股票实战
- R实战:【股票分析】用quantmod在股票的K线上添加标记
- Python快速分析和预测股票价格 | 实战分享!
- Spring+Log4j+ActiveMQ实现远程记录日志——实战+分析
- 大数据项目实战之新闻话题统计分析
- PythonStock(10):使用notebook + tushare + pandas 简单的股票分析,蜡烛图
- Hadoop链式MapReduce、多维排序、倒排索引、自连接算法、二次排序、Join性能优化、处理员工信息Join实战、URL流量分析、TopN及其排序、求平均值和最大最小值、数据清洗ETL、分析气
- python数据分析与挖掘实战(5)挖掘建模之聚类分析、关联规则
- 秒杀系统架构分析与实战
- DNS多点部署IP Anycast+BGP实战分析
- 大数据Spark “蘑菇云”行动第71课: 基于Spark 2.0.1项目开发分析与实战
- 朴英敏: 用crash工具分析Linux内核死锁的一次实战
- zookeeper实战与源码分析----用ZooKeeper封装自己的客户端工具
- 股票大单分析系统
- Spark 10 Spark SQL 实战:日志分析(三)结果可视化
- 实战seo分析解决网站百度不收录内…
- spring boot实战(第十五篇)嵌入tomcat源码分析
- 【稀饭】react native 实战系列教程之热更新原理分析与实现