(一)给出这些指标的基本定义
我们先对数据基础指标的各个名词做个解释,其实我压根不懂这些名词啥意思。
给出百度百科的链接:http://baike.baidu.com/item/%E8%82%A1%E7%A5%A8%E5%85%A5%E9%97%A8%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86
开盘价:以竞价阶段第一笔交易价格为开盘价,如果没有成交,以前一日收盘价为开盘价。
收盘价:指每天成交中最后一笔股票的价格,也就是收盘价格。
最高价:是指当日的成交的价格中的最高价位。有时最高价只有一笔,有时不止一笔。
最低价:是指当日成交的价格中的最低价位,有时最低价只有一笔,有时也不止一笔。
成交量:指的是当日的股价总手数,其中,1手=100股。
价格变动:当日股票开盘价与收盘价之间的差值,计算公式:价格变动=收盘价-开盘价。
涨跌幅:是对涨跌幅的描述,用%表示,涨跌幅=涨跌值/昨收盘*100%。当前交易日最新成交价与前一天收盘价相比较产生的数值,这个数字一般用百分比表示。
5日均价:5天股票成交价格或指数的平均值。
10日均价、20日均价与此类似,不再赘述。
5日均量:5日股票成交量的平均线。
10日均量、20日均量与此类似,不再赘述。
换手率:Turnover Rate,“换手率”也叫“周转率”,指的是在一定时间内市场中股票转手买卖的频率,是反映股票流通性强弱的指标之一。
国际计算公式:成交量/发行总股数*100%
中国计算公式:成交量/流通总股数*100%
(二)给出自己对给出的股票的分析和解读
利用python来处理数据
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
%config InlineBackend.figure_format = 'retina'
%pylab inline
#设置图形大小
plt.rc('figure',figsize=(9, 4))
Populating the interactive namespace from numpy and matplotlib
stockdata=pd.read_table("stockData.txt",parse_dates=True)
stockdata.head()
我们观察上面导进来的原始数据发现,dataframe有29列,后面的还有大部分缺失值。
所以要做以处理。parse_dates=[0]将第一列的字符串数据转换为时间格式的数据
#usecols=range(15)先导入文件观察dataframe发现只需要前15列,限制导入前15列
#parse_dates=[0]是对dataframe的第一列的数据解析为时间格式
stockdata=pd.read_table("stockData.txt",usecols=range(15),parse_dates=[0])
stockdata.head()
#在绘图的时候发现了,KeyError: 'open',不知道咋回事儿,看了大家的文章才知道。Rename column ' open' to 'open'
#我们来看看列名中出现了啥问题
stockdata.columns
我们发现列名有一个opne前面空了几个字符。
#对列名重新赋值
stockdata.columns=['date', 'open', 'high', 'close', 'low', 'volume', 'price_change',
'p_change', 'ma5', 'ma10', 'ma20', 'v_ma5', 'v_ma10', 'v_ma20','turnover']
label_1=plt.plot(stockdata['date'],stockdata['open'],color='red',label='open')
label_2=plt.plot(stockdata['date'],stockdata['high'],color='blue',label='high')
label_3=plt.plot(stockdata['date'],stockdata['close'],color='yellow',label='close')
label_4=plt.plot(stockdata['date'],stockdata['low'],color='green',label='low')
plt.ylabel('Price')
plt.xlabel('Date')
plt.title('Price in Jan 2015')
#为了防止横坐标的日期发生重叠,我们让他旋转
plt.xticks(rotation=70)
通过绘制的图形可以看出,开盘价,收盘价,最高价,最低价的趋势大抵上相同。
label_5=plt.plot(stockdata['date'],stockdata['price_change'],color='red')
plt.ylabel('Price_chage')
plt.xlabel('Date')
plt.title('Price_chage in Jan 2015')
plt.xticks(rotation=70)
label_6=plt.plot(stockdata['date'],stockdata['p_change'],color='black')
plt.ylabel('P_change')
plt.xlabel('Date')
plt.title('p_change in Jan 2015')
plt.xticks(rotation=70)
比较价格波动和涨跌幅发现他们基本一致。
label_7=plt.plot(stockdata['date'],stockdata['ma5'],color='orange')
label_8=plt.plot(stockdata['date'],stockdata['ma10'],color='brown')
label_9=plt.plot(stockdata['date'],stockdata['ma20'],color='purple')
plt.ylabel('P_change')
plt.xlabel('Date')
plt.title('ma5,ma10,ma20 in Jan 2015')
plt.xticks(rotation=70)
时间太短,认为5日价格平均每月参考价值。20日的价格变化基本波动不大。
label_10=plt.plot(stockdata['date'],stockdata['v_ma5'],color='cyan')
label_11=plt.plot(stockdata['date'],stockdata['v_ma10'],color='pink')
label_12=plt.plot(stockdata['date'],stockdata['v_ma20'],color='grey')
plt.xlabel('P_change')
plt.ylabel('Date')
plt.title('v_ma5,v_ma10,v_ma20 in Jan 2015')
plt.xticks(rotation=70)
#颜色直接不够用,使用茶色
label_13=plt.plot(stockdata['date'],stockdata['turnover'],color='tan')
plt.xlabel('turnover')
plt.ylabel('Date')
plt.title('turnover in Jan 2015')
plt.xticks(rotation=70)
通过一个月的数据并不能有效的预测反映出股票的一些变化。
给出所有代码: