一些关于股票交易的基本概念:
日期:新股公司将股票推出证券交易所,供公众买卖的首天,称为上市日期。股票申购当天,即T+0日,称为发行日期。
开盘价:开盘价又称开市价,是指某种证券在证券交易所每个交易日开市后的第一笔每股买卖成交价格。世界上大多数证券交易所都采用成交额最大原则来确定开盘价。如果开市后一段时间内(通常为半小时)某种证券没有买卖或没有成交,则取前一日的收盘价作为当日证券的开盘价。如果某证券连续数日未成交,则由证券交易所的场内中介经纪人根据客户对该证券买卖委托的价格走势提出指导价,促使成交后作为该证券的开盘价。在无形化交易市场中,如果某种证券连续数日未成交,以前一日的收盘价作为它的开盘价。
收盘价:收盘价的产生比较简单,通常以该合约当日最后一笔成交的价格作为收盘价。
成交量:股票买卖双方达成交易的数量,是单边的,股市成交量反映成交的数量多少。一般可用成交股数和成交金额两项指标来衡量。
涨跌幅:对涨跌值的描述,用%表示,涨跌幅=涨跌值/昨收盘*100%。 当前交易日最新成交价(或收盘价)与前一交易日收盘价相比较所产生的数值,这个数值一般用百分比表示。
5日均价:就是连续5天股票价格的平均数。
换手率:也称“周转率”,指在一定时间内市场中股票转手买卖的频率,是反映股票流通性强弱的指标之一。
具体交易数据分析:
1)首先,要读取原始数据,了解基本的数据情况。
```python
# 读取原始数据
import pandas as pd
import matplotlib.pyplot as plt
user_cols = range(15)
stock_data = pd.read_table('stockData.txt',usecols=user_cols, parse_dates=[0]) # parse_dates=[0]表示转换日期格式
```python
2)针对各种数据,用python进行分析。这之前还需要先做数据清洗。
# 股价曲线
stock_date = stock_data['date']
stock_high = stock_data['high']
stock_low = stock_data['low']
stock_open = stock_data['open']
stock_close = stock_data['close']
plt.plot(stock_date, stock_low, color='black')
plt.plot(stock_date, stock_high, color='red')
plt.plot(stock_date, stock_open)
plt.plot(stock_date, stock_close)
plt.xticks(rotation=70)
plt.legend(loc='upper left')
plt.xlabel('date')
plt.ylabel('values')
plt.grid(True)
plt.show()
```
分析:从上图看,股价每天的波动不算太大,即每天的最高价和最低价相差不算太大,除了01/24号以外。
```python
# 股价变动和涨跌幅度
price_change = stock_data['price_change']
p_change = stock_data['p_change']
plt.plot(stock_date, price_change)
plt.plot(stock_date, p_change)
plt.xticks(rotation=70)
plt.legend(loc='upper left')
plt.xlabel('date')
plt.ylabel('change')
plt.grid(True)
plt.show()
```
```python
分析:上面两条曲线不是一个度量单位,要分开看。和最上面的图类似,绝对价格的波动不算太大,但涨跌幅度看起来比较剧烈,这说明该股票的基准价格比较低,股价
稍微有波动,则涨跌幅度会比较剧烈。
```
```python
# 换手率曲线
stock_volume = stock_data['volume']
plt.plot(stock_date, stock_volume)
plt.xticks(rotation=70)
plt.legend(loc='upper left')
plt.xlabel('date')
plt.ylabel('volumn')
plt.grid(True)
plt.show()
```
分析:上图显示月中交易较少,本月下旬交易量剧增。
碰到的问题:
1)在读入数据时,stock_data['open']总是报错,最后发现是原始数据中open字段多了四个空格(一般为一个Tab键),所以要先该数据做一些预处理,即去掉那4个多余的空格。
2)横坐标日期的显示由于长度原意重叠在一起了,参考了Dr.fish的解决方法,做了旋转处理plt.xticks(rotation=70)。
3)各个曲线的label打不上,加了一行:plt.legend(loc='upper left') 来处理。
遗留问题:
如何在简书里把jupyter notebook生成的代码和注释以表格形式嵌入?