股票分析
基本指标的定义
开盘价,指某种证券在证券交易所每个营业日的第一笔交易的成交价格。
交易日,指开放式基金销售机构在规定时间受理投资者申购、转换、赎回或其它业务申请的工作日。周末和节假日不属于T日(交易日),T日以股市收市时间为界,每天15:00之前提交的交易按照当天收市后公布的净值成交(净值公布时间一般是当天18:00左右),15:00之后提交的交易将按照下一个交易日的净值成交。
收盘价,是指某种证券在证券交易所一天交易活动结束前最后一笔交易的成交价格。
成交量:成交量是指在某一时段内成交的股价的总手数 (1手=100股)。
换手率,也称“周转率“,指在一定时间内市场中股票转手买卖的频率,是反映股票流通性强弱的指标之一。股票的换手率越高,意味着该只股票的交投越活跃,人们购买该只股票的意愿越高,反之表明该只股票少人关注;手率高一般意味着股票流通性好,进出市场比较容易,具有较强的变现能力;将换手率与股价走势相结合,可以对未来的股价做出一定的预测和判断。换手率的计算公式:周转率(换手率)=(某一段时期内的成交量)/(发行总股数)x100%
价格变动(Price Change),当日股票开盘价与收盘价之间的差值,计算公式:价格变动 = 收盘价 - 开盘价
涨跌幅(p_change), 是对涨跌值的描述,用%表示。其计算公式:(当前最新成交价(或收盘价) - 前一日交易日收盘价) ÷ 前一日交易日收盘价×100%。
均价,由均价线表示。反映了当天的市场参与平均成本,和一定的压力支撑作用。其计算公式为: 每股平均成交价格=某日总成交金额÷某日总成交股数。延长时间 期限,可得5日均价、10均价等等。
均量:其含义可参考均价得出。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import os
data_src='C://Users//ecaoyng//Downloads//stockData.txt'
stock_data=pd.read_table(data_src)
if os.path.exists(data_src):
stock_data=stock_data.iloc[:,0:15]
print(stock_data)
stock_data.sort_index(ascending = False)[:5]
输出如下:
分析一,统计信息
统计信息如下不在详细说明
stock_data.describe()
from datetime import datetime
from dateutil.parser import parse
from matplotlib.dates import AutoDateLocator, DateFormatter,DayLocator
date = stock_data['date']
date = pd.to_datetime(date)
high = stock_data['high'].values
low = stock_data['low'].values
open_price= stock_data[' open'].values
close = stock_data['close'].values
ma5 = stock_data['ma5'].values
ma10 = stock_data['ma10'].values
ma20 = stock_data['ma20'].values
fig = plt.figure(figsize = (15,5))
ax = fig.add_subplot(111)
ax.set_title("Stock price")
ax.plot(date,open_price,label='open')
ax.plot(date,high,label='high')
ax.plot(date,low,label = 'low')
ax.plot(date,close,label = 'close')
ax.plot(date,ma5,label = 'ma5')
ax.plot(date,ma10,label = 'ma10')
ax.plot(date,ma20,label = 'ma20')
ax.xaxis.set_major_locator(autodates)
ax.set_xlabel("date")
ax.set_ylabel("values")
ax.xaxis.set_major_locator(DayLocator(bymonthday=range(1,32), interval=1))
ax.xaxis.set_major_formatter(DateFormatter('%Y%m%d'))
plt.xticks(rotation=60)
plt.legend(loc='upper left')
plt.grid(True)
plt.show()
分析二 相关系数分析与协方差
for i in ['high' ,'low',' open','close','ma5','ma10','ma20','volume','v_ma5','v_ma10','v_ma20']:
for j in ['high' ,'low',' open','close','ma5','ma10','ma20','volume','v_ma5','v_ma10','v_ma20']:
print('%s and %s corr is %s '%(i, j, (stock_data[i].corr(stock_data[j]))))
print('-'*20)
得到的相关系数统计如下,可以很清楚的看到各个列之间的相关系数
high and high corr is 1.0
high and low corr is 0.93037923331
high and open corr is 0.897211953333
high and close corr is 0.966243822278
high and ma5 corr is 0.812480947253
high and ma10 corr is 0.660447391359
high and ma20 corr is 0.179590482526
high and volume corr is 0.896833634665
high and v_ma5 corr is 0.868560964795
high and v_ma10 corr is 0.628375689954
high and v_ma20 corr is -0.354876794097
high and turnover corr is 0.897045822307
--------------------
low and high corr is 0.93037923331
low and low corr is 1.0
low and open corr is 0.95643942191
low and close corr is 0.910515603813
low and ma5 corr is 0.894385404937
low and ma10 corr is 0.759209638782
low and ma20 corr is 0.350171538359
low and volume corr is 0.730795712392
low and v_ma5 corr is 0.907433960723
low and v_ma10 corr is 0.708135592414
low and v_ma20 corr is -0.284208967808
low and turnover corr is 0.730853369056
--------------------
open and high corr is 0.897211953333
open and low corr is 0.95643942191
open and open corr is 1.0
open and close corr is 0.836541327926
open and ma5 corr is 0.898542997094
open and ma10 corr is 0.757148165488
open and ma20 corr is 0.350463060696
open and volume corr is 0.697294144296
open and v_ma5 corr is 0.922297477575
open and v_ma10 corr is 0.725333330517
open and v_ma20 corr is -0.247214903269
open and turnover corr is 0.697646328153
--------------------
close and high corr is 0.966243822278
close and low corr is 0.910515603813
close and open corr is 0.836541327926
close and close corr is 1.0
close and ma5 corr is 0.756787587238
close and ma10 corr is 0.593292197451
close and ma20 corr is 0.107855192304
close and volume corr is 0.910780093909
close and v_ma5 corr is 0.824391839972
close and v_ma10 corr is 0.576449470244
close and v_ma20 corr is -0.376021929049
close and turnover corr is 0.910879839054
--------------------
ma5 and high corr is 0.812480947253
ma5 and low corr is 0.894385404937
ma5 and open corr is 0.898542997094
ma5 and close corr is 0.756787587238
ma5 and ma5 corr is 1.0
ma5 and ma10 corr is 0.921168092037
ma5 and ma20 corr is 0.525347581453
ma5 and volume corr is 0.535869431606
ma5 and v_ma5 corr is 0.953928210144
ma5 and v_ma10 corr is 0.853326052426
ma5 and v_ma20 corr is -0.200960528265
ma5 and turnover corr is 0.535991249199
--------------------
ma10 and high corr is 0.660447391359
ma10 and low corr is 0.759209638782
ma10 and open corr is 0.757148165488
ma10 and close corr is 0.593292197451
ma10 and ma5 corr is 0.921168092037
ma10 and ma10 corr is 1.0
ma10 and ma20 corr is 0.523157969292
ma10 and volume corr is 0.35901429877
ma10 and v_ma5 corr is 0.791054293397
ma10 and v_ma10 corr is 0.843184862447
ma10 and v_ma20 corr is -0.266123905738
ma10 and turnover corr is 0.358978976146
--------------------
ma20 and high corr is 0.179590482526
ma20 and low corr is 0.350171538359
ma20 and open corr is 0.350463060696
ma20 and close corr is 0.107855192304
ma20 and ma5 corr is 0.525347581453
ma20 and ma10 corr is 0.523157969292
ma20 and ma20 corr is 1.0
ma20 and volume corr is -0.0600220207727
ma20 and v_ma5 corr is 0.374810467632
ma20 and v_ma10 corr is 0.558744215458
ma20 and v_ma20 corr is 0.51793654476
ma20 and turnover corr is -0.0600833456034
--------------------
volume and high corr is 0.896833634665
volume and low corr is 0.730795712392
volume and open corr is 0.697294144296
volume and close corr is 0.910780093909
volume and ma5 corr is 0.535869431606
volume and ma10 corr is 0.35901429877
volume and ma20 corr is -0.0600220207727
volume and volume corr is 1.0
volume and v_ma5 corr is 0.643850457981
volume and v_ma10 corr is 0.356907380189
volume and v_ma20 corr is -0.376176237006
volume and turnover corr is 0.99999710781
--------------------
v_ma5 and high corr is 0.868560964795
v_ma5 and low corr is 0.907433960723
v_ma5 and open corr is 0.922297477575
v_ma5 and close corr is 0.824391839972
v_ma5 and ma5 corr is 0.953928210144
v_ma5 and ma10 corr is 0.791054293397
v_ma5 and ma20 corr is 0.374810467632
v_ma5 and volume corr is 0.643850457981
v_ma5 and v_ma5 corr is 1.0
v_ma5 and v_ma10 corr is 0.828185562361
v_ma5 and v_ma20 corr is -0.171466705223
v_ma5 and turnover corr is 0.644134172052
--------------------
v_ma10 and high corr is 0.628375689954
v_ma10 and low corr is 0.708135592414
v_ma10 and open corr is 0.725333330517
v_ma10 and close corr is 0.576449470244
v_ma10 and ma5 corr is 0.853326052426
v_ma10 and ma10 corr is 0.843184862447
v_ma10 and ma20 corr is 0.558744215458
v_ma10 and volume corr is 0.356907380189
v_ma10 and v_ma5 corr is 0.828185562361
v_ma10 and v_ma10 corr is 1.0
v_ma10 and v_ma20 corr is 0.150980899067
v_ma10 and turnover corr is 0.357412751599
--------------------
v_ma20 and high corr is -0.354876794097
v_ma20 and low corr is -0.284208967808
v_ma20 and open corr is -0.247214903269
v_ma20 and close corr is -0.376021929049
v_ma20 and ma5 corr is -0.200960528265
v_ma20 and ma10 corr is -0.266123905738
v_ma20 and ma20 corr is 0.51793654476
v_ma20 and volume corr is -0.376176237006
v_ma20 and v_ma5 corr is -0.171466705223
v_ma20 and v_ma10 corr is 0.150980899067
v_ma20 and v_ma20 corr is 1.0
v_ma20 and turnover corr is -0.375592133339
--------------------
turnover and high corr is 0.897045822307
turnover and low corr is 0.730853369056
turnover and open corr is 0.697646328153
turnover and close corr is 0.910879839054
turnover and ma5 corr is 0.535991249199
turnover and ma10 corr is 0.358978976146
turnover and ma20 corr is -0.0600833456034
turnover and volume corr is 0.99999710781
turnover and v_ma5 corr is 0.644134172052
turnover and v_ma10 corr is 0.357412751599
turnover and v_ma20 corr is -0.375592133339
turnover and turnover corr is 1.0
--------------------
同理,可以得到协方差
for i in ['high' ,'low',' open','close','ma5','ma10','ma20']:
for j in ['high' ,'low',' open','close','ma5','ma10','ma20']:
print('%s and %s cov is %s '%(i, j, (stock_data[i].cov(stock_data[j]))))
print('-'*20)
结论:
从如上可知,如果定义相关系数大于等于0.95为强相关,则
- 最高点与收盘价存在强相关,相关系数为0.97
- 开盘价与最低价存在强相关,相关系数为0.96
- 收盘价与最高价存在强相关,相关系数为0.97
- 5日均线与5日均成交量成正强相关,相关系数为0.95
- 换手率与成交量存在强相关,相关系数为0.999
当然,我们可以更改强相关的定义,结论同样可以由上面的输出得出。
分析三: 最低点10.55(19日)分析
最低值曲线和5/10/20日均线的关系(图一)
成交量与5/10/20日均成交量曲线线的关系(图二)
换手率与其他指标的的关系(图三)
在19号,分析之前的数据, 可以得到如下的买入理由:
买入理由1: 根据19日之前的数据得到,low曲线的下四分位是10.89,19日当日数最低值(10.55)与下四分卫10.89相差较大。
19日之前最低值的下四分位可以由下面的程序得出
data_19=stock_data.sort_index(ascending = False)[:10]
data_19.describe()
买入理由2: 由图一可知,5日均线已经止跌企稳并持续一段时间
买入理由3: 19日最低值(10.55)与5/10/20日均线(11.014 11.241 11.227)相差比较大
买入理由4: 由相关系数可知,v_ma5 与最低值存在0.9的相关系数,由图二可知,v_ma5曲线已经趋稳。
买入理由5:
分析四:最低值曲线和5/10/20日均线交点分析(21日)
最低点线由下向上穿过5/10/20日均线交叉点并且5日均线由下向上穿过10/20日均线。由三根均线作为支撑,该股票看多头的概率增加。
分析五:最高卖出点分析(26日)
最低点由上而下穿过5日均线
最低值均高于三根均线
同理,可以根据相关系数做出相应解读
分析六:均价解读
5/10/20日均线的变化趋向于平滑,不会出现陡增减的情况并且时间越长越趋向平缓。5/10/20日均成交量同这里
其实,根据相关系数可以做很多解读,但因时间有限就不过分展开了. 感谢Tiger的作业与讲解
上一篇: web前端学习笔记
推荐阅读
-
分析Python感知线程状态的解决方案之Event与信号量
-
javascript - 情感分析课题:怎么构建自己的情感词库
-
浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法_PHP
-
分析PHP函数array_pop()的具体使用方式_PHP教程
-
ThinkPHP项目分组配置方法分析,thinkphp项目_PHP教程
-
ThinkPHP中__initialize()和类的构造函数__construct()用法分析,thinkphp构造函数
-
Javascript判断图片尺寸大小实例分析_javascript技巧
-
JS异步函数队列功能实例分析
-
2022年电竞酒店行业现状及发展前景分析
-
五款常用mysql slow log分析工具的比较_MySQL