数据分析和统计方法论-04

(一)给出这些指标的基本定义

我们先对数据基础指标的各个名词做个解释,其实我压根不懂这些名词啥意思。

给出百度百科的链接: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)


通过一个月的数据并不能有效的预测反映出股票的一些变化。

给出所有代码:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容