今天看了下Quant的课程非常好,想赶紧补充点笔记,这边先给出课程文档笔记whale-quant/notebook/ch03_股票数据获取/ch03_股票数据获取.ipynb at master · datawhalechina/whale-quant (github.com)
一.股票数据的基本分类及技术指标
1.1技术面数据
技术面数据是通过股票的历史价格和交易量等市场数据进行计算和分析得出的指标。
常用的技术指标包括移动平均线、相对强弱指标、MACD指标等。
1. 移动平均线(Moving Average, MA)
移动平均线是通过计算一段时间内的股票平均价格来平滑价格波动。常见的移动平均线有简单移动平均线(SMA)和指数移动平均线(EMA)。
SMA和EMA的区别可以简单理解为一般平均数和加权平均数的区别,EMA会对近期的价格给予更高的权重。
2. 相对强弱指数(Relative Strength Index, RSI)
RSI 是一种用于衡量股票价格变动强度和速度的技术指标。它可帮助投资者判断股票市场的超买和超卖情况,以及价格的反转和确认信号。
RSI 的计算基于一定时期内股票价格的平均涨幅和跌幅。通常情况下,RSI的取值范围在0到100之间。
RSI 指标的常用参数为14,计算步骤如下:
-
首先,计算14个交易周期内涨幅和跌幅的平均值。
-
计算涨幅平均值与跌幅平均值的相对强弱比率(RS,Relative Strength)。 RS = (14个交易周期内涨幅平均值) / (14个交易周期内跌幅平均值)
-
计算相对强弱指数(RSI): RSI = 100 - (100 / (1 + RS))
RSI 的数值解读如下:
- RSI在0到30之间:表示股票市场被超卖,可能存在价格反弹的机会。
- RSI在70到100之间:表示股票市场被超买,可能存在价格下跌的机会。
- RSI在30到70之间:表示股票市场相对平稳,没有明显的超买或超卖信号。
3. MACD 指标(Moving Average Convergence Divergence)
MACD 指标是股票技术分析中常用的趋势追踪和买卖信号指标。它通过比较两条移动平均线的差异,来判断股票价格的趋势以及价格的买卖信号。
MACD 指标由以下几个元素组成:
-
DIF 线(Difference Line):是短期指数移动平均线(如12日 EMA)减去长期指数移动平均线(如26日 EMA)得到的差值线。DIF 线可以较为敏感地反应价格的短期波动。
-
DEA 线(Signal Line):是对 DIF 线进行平滑处理,一般使用DIF线的9日移动平均线得到。DEA 线可以平滑 DIF 线的波动,更好地体现价格的中期趋势。
-
MACD 柱(MACD Histogram):是 DIF 线与 DEA 线的差值,可将价格的快速波动变化显示为柱状图。柱状图的红色柱代表 DIF 线在 DEA 线上方,表示价格可能上涨;绿色柱代表 DIF 线在 DEA 线下方,表示价格可能下降。
4. 随机指标(Stochastic Oscillator)
随机指标用于判断股票价格的超买和超卖情况,以及价格反转的可能性。它可以帮助投资者确定适合买入或卖出股票的时机。
随机指标的计算基于一段时间内的收盘价与最高价和最低价的关系。该指标通常使用 %K 线和 %D 线两条线,并结合超买区和超卖区进行解读。
随机指标的计算步骤如下:
- 首先,计算一定时间段(常见为14个交易日)内的最高价和最低价。
- 计算当前收盘价与该时间段内最低价的差值(收盘价-最低价),并除以最高价和最低价的差值(最高价-最低价)。 %K = (收盘价 - 最低价)/ (最高价 - 最低价) * 100
- 计算%K的移动平均值作为%D线的值,通常使用3日平均。 %D = %K的3日简单移动平均线
随机指标的数值解读如下:
- 当 %K 线从下方穿越%D线时,被视为买入信号,可能预示着价格的反转和上涨。
- 当 %K 线从上方穿越%D线时,被视为卖出信号,可能预示着价格的反转和下跌。
- 当 %K 线位于高位(一般超过80)时,表示市场可能超买,价格的下跌风险增加。
- 当 %K 线位于低位(一般低于20)时,表示市场可能超卖,价格的上涨机会增加。
1.2 基本面数据
基本面数据是通过分析公司的财务状况、业绩表现、竞争力等基本信息得出的评估。常用的基本面指标包括市盈率、市净率、股息率等。基本面数据通常需要通过公司公开的财务报告和公告来获取。
1. 每股收益(Earnings Per Share, EPS)
每股收益用于衡量公司每股可供股东分配的净利润,即每股盈利能力。每股收益是投资者评估公司盈利能力和估值的重要参考指标之一。
每股收益的计算公式为:EPS = 净利润 / 流通股本
其中,净利润是指公司在一定会计周期内所创造的净收益,即扣除各项费用和税后利润。流通股本是指公司已经发行并在市场上自由交易的股票数量。
2. 股息收益率(Dividend Yield)
股息收益率用于衡量股票派发的股息相对于股票的价格的比率。股息是公司利润的一部分,以现金或股票形式派发给股东。股息收益率可以帮助投资者评估持有一只股票所能获得的现金回报。
股息收益率的计算公式为:股息收益率 = 每股股息 / 股票价格
其中,每股股息是指公司每股派发的股息金额,股票价格是股票在市场上的交易价格。
5. 负债与资产比率(Debt-to-Asset Ratio)
负债与资产比率用于衡量公司的资本结构和债务风险水平。该比率反映了公司负债占总资产的比例(财务杠杆),可以帮助投资者了解公司负债情况以及对负债承受能力的评估。
负债与资产比率的计算公式为:负债与资产比率 = 总负债 / 总资产
其中,总负债是指公司在特定时点上的所有债务总额,包括长期负债和短期负债。总资产是指公司在特定时点上的全部资产,包括流动资产和固定资产。
二. Baostock的基础数据获取
import baostock as bs
import pandas as pd
from IPython.display import display
#### 登陆系统 ####
lg = bs.login()
# 显示登陆返回信息
print('login respond error_code:'+lg.error_code)
print('login respond error_msg:'+lg.error_msg)
#### 获取沪深A股历史K线数据 ####
# 详细指标参数,参见“历史行情指标参数”章节;“分钟线”参数与“日线”参数不同。“分钟线”不包含指数。
# 分钟线指标:date,time,code,open,high,low,close,volume,amount,adjustflag
# 周月线指标:date,code,open,high,low,close,volume,amount,adjustflag,turn,pctChg
rs = bs.query_history_k_data_plus("sh.600000",
"date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,isST",
start_date='2022-07-01', end_date='2022-12-31',
frequency="d", adjustflag="3")
print('query_history_k_data_plus respond error_code:'+rs.error_code)
print('query_history_k_data_plus respond error_msg:'+rs.error_msg)
#### 打印结果集 ####
data_list = []
while (rs.error_code == '0') & rs.next():
# 获取一条记录,将记录合并在一起
data_list.append(rs.get_row_data())
result = pd.DataFrame(data_list, columns=rs.fields)
#### 结果集输出到csv文件 ####
result.to_csv("./history_A_stock_k_data.csv", index=False)
display(result)
#### 登出系统 ####
bs.logout()
三.pandas数据清洗
未完待续....