第五次作业--股票数据分析javascript:void(nul
2017-04-08 本文已影响195人
mudu86
名词解释
开盘价:指某种证券在证券交易所每个营业日的第一笔交易,第一笔交易的成交价即为当日开盘价。
最高价:某种证券在每个交易日从开市到收市的过程中所产生的最高价格
收盘价:以当日该证券最后一笔交易前一分钟所有交易的成交量加权平均价
最低价:某种证券在每个交易日从开市到收市的过程中所产生的最低价格
成交量:指当日成交的股价总手数。(1手=100股)
价格变动:当日股票开盘价与收盘价之间的差值,计算公式:价格变动 = 收盘价 - 开盘价 Price Change
涨跌幅:是对涨跌值的描述,用%表示,涨跌幅 = 涨跌值 / 昨收盘 *100%。当前交易日最新成交价与前一天收盘价相比较产生的数值,这个数字一般用百分比表示。
5日均价:5天股票成交价格或指数的平均值
10日均价:10天股票成交价格或指数的平均值
20日均价:20天股票成交价格或指数的平均值
5日均量:5日股票成交量的平均线
10日均量:10日股票成交量的平均线
20日均量:20日股票成交量的平均线
换手率:指一定时间内市场中股票转手买卖的频率,是反应股票流通性强弱的指标之一。
计算公式:换手率 = 某一段时间内的成交量 / 发行总股本 *100%
在中国:成交量/流通股本*100%
股票数据分析
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib
%matplotlib inline
%config InlineBackend.figure_format = 'retina'
def estimate_domain(mean,std):
result_min = mean - 1.96 * std
result_max = mean + 1.96 * std
return [result_min,result_max]
stockdata = pd.read_table('stockData.txt')
stockdata.columns
Index(['date', ' open', 'high', 'close', 'low', 'volume', 'price_change',
'p_change', 'ma5', 'ma10', 'ma20', 'v_ma5', 'v_ma10', 'v_ma20',
'turnover', 'Unnamed: 15', 'Unnamed: 16', 'Unnamed: 17', 'Unnamed: 18',
'Unnamed: 19', 'Unnamed: 20', 'Unnamed: 21', 'Unnamed: 22',
'Unnamed: 23', 'Unnamed: 24', 'Unnamed: 25', 'Unnamed: 26',
'Unnamed: 27', 'Unnamed: 28'],
dtype='object')
stockdata = stockdata.iloc[:,0:15]
stockdata
![Uploading 图像 2_912297.jpg . . .]
stockdata.describe()
图像 2.jpg
图像 3.jpg
分析1
对原始数据进行分析
- 该股票20日开盘价均值为11.58,收盘价均值为11.673;
- 该股票20日最高价均价为11.893,最低价均价为11.393;
- 该股票ma5均值11.553,最小值11.014,最大值12.43;
- 该股票ma10均值11.41,最小值11.155,最大值12.058;
- 该股票ma20均值11.453,最小值11.173,最大值11.682;
- 该股票20日换手率平均值2.294%,最小值0.62%,最大值4.85%,该股票的换手率不高。
- 从原始数据stockdata中open列可以观察到,该股票第一日的开盘价为11.16,第20日的开盘价为12.4,上升幅度为11%;
- 从原始数据stockdata中close列可以观察到,该股票第一日的收盘价为11.26,第20日的收盘价为12.06,上升幅度为7.1%;
- 如果从20日开盘价均值11.58买入该股票,一直持有到第20日收盘价12.06,可以获利0.48,获利幅度4.1%;
- 从ma5/ma10/ma20的平均值走势先下降然后上升,可以知道在ma10的平均值11.41处,买入股票一直持有到第20天可以获利0.65,获利比例5.7%;
- 能够获得的最大利润是在股价的最低点10.55买入,然后在股价的最该点13.08卖出,可以获利2.53,获利比例23.98%.
- 能够获得的超出平均的利润是在ma5的均值11.55买入,然后在最高点13.08卖出,可以获利1.53,获利比例13.25%。
- 如果无法在最高点13.08卖出,当股价大于ma5最大值12.43处卖出,可以获利0.88(12.43-11.55),获利比例7.62%;在股价大于ma10最大值12.05卖出可以获利0.5(12.05-11.55),获利比例4.33%;在在股价大于ma20最大值11.68卖出可以获利0.13(11.68-11.55),获利比例1.13%
分析2
- 该股票日成交量均值67000手,最低成交量18112手,最高成交量141809手;
- 该股票5日成交均量平均值63678手,最小值25864手,最大值121715手;
- 该股票10日成交均量平均值58927手,最小值38070手,最大值91672手;
- 该股票20日成交均量平均值75589手,最小值50735手,最大值109282手;
结论
- 以股票某一个均值的平均值买入,并且在大于ma5时卖出,这样可以获得不菲的利润(见分析1第13条),以本股票为例,可以获得7.62%利润。以稍长的均值(MA10/MA20)作为股票的买入条件,然后以短期均值(MA5)作为股票的卖出条件。
- 以MA10/MA20作为买入股票条件,并且长期持有,不仅能够减低成本,一般能够获利,但是获利比例与时间长短有段。
- 该股票v_ma5平均值、v_ma10平均值小于日成交量均值,v_ma20平均值大于日成交量均值,短期来看,看好该股票的人较少,但是从长期来看,看好该股票的人较多。
补充
stockdata.sort_index(ascending = False)
图像 4.jpg
from datetime import datetime
from dateutil.parser import parse
date = stockdata['date']
date = pd.to_datetime(date)
high = stockdata['high'].values
low = stockdata['low'].values
open = stockdata[' open'].values
close = stockdata['close'].values
ma5 = stockdata['ma5'].values
ma10 = stockdata['ma10'].values
ma20 = stockdata['ma20'].values
plt.figure(figsize = (15,5))
plt.plot(date,high,label='high')
plt.plot(date,low,label = 'low')
plt.plot(date,open,label = 'open')
plt.plot(date,close,label = 'close')
plt.plot(date,ma5,label = 'ma5')
plt.plot(date,ma10,label = 'ma10')
plt.plot(date,ma20,label = 'ma20')
plt.title('stockdata')
plt.legend(loc='upper left')
plt.xlabel('date')
plt.ylabel('values')
plt.grid(True)
plt.show()
output_9_0.png
分析3
- 从上图可知,在1.21日,最低价与ma5/ma10/ma20相交,此时分别用当日的ma5、ma10、ma20价格11.28、11.22、11.23买入股票并持有到最后,分别可以获利0.78、0.84、0.83。
- 从上图可知,仍然在1.21日买入,但是在收盘价与ma5相交时(1.27)卖出,可以获利1.03(12.31-11.28),获利比例9.13%。
结论
- 在最低价与多条均线相交时买入,在收盘价与ma5相交时卖出,可以获利不菲。
- 在最低价与多条均线相交时买入并一直持有,可以获利。
volume = stockdata['volume'].values
v_ma5 = stockdata['v_ma5'].values
v_ma10 = stockdata['v_ma10'].values
v_ma20 = stockdata['v_ma20'].values
plt.figure(figsize = (15,5))
plt.plot(date,volume,label='volumn')
plt.plot(date,v_ma5,label='v_ma5')
plt.plot(date,v_ma10,label='v_ma10')
plt.plot(date,v_ma20,label='v_ma20')
plt.title('volumn')
plt.legend(loc='upper left')
plt.xlabel('date')
plt.ylabel('values')
plt.grid(True)
plt.show()
output_11_0.png
分析4
- 1.21日,日成交量大于v_ma5、v_ma10、v_ma20。再次验证了分析3 在1.21日购入股票的结论。
- 1.26日,成交量小于v_ma5,此时可以考虑卖出股票,能够获得利润1.29(12.57-11.28),获利比例11.44%
结论
- 在日成交量大于v_ma5、v_ma10、v_ma2时买入,并在日成交量小于v_ma5时卖出,可以获利不菲
总结:
- 以股价与ma5,ma10,ma20相交时买入股票并且一直持有,以时间换取收益,最终可以获得收益。
- 以股价与ma5,ma10,ma20相交时买入股票并且在收盘价与ma5再次相交时卖出,可以获利不菲。
- 以日成交量大于v_ma5、v_ma10、v_ma2时买入,并在日成交量小于v_ma5时卖出,可以获利不菲。
- 结合第二条和第三条,选取一个适当的值,最终可以获利不菲。
** 画图代码参考万能滴小笼包**