whale-quant 学习 part3:股票数据获取

股票数据获取

  • 股票数据的基本分类
    • 技术面数据
    • 基本面数据
  • 股票数据的常见指标介绍
    • 技术面数据常见指标
    • 基本面数据常见指标
  • Baostock的基础数据获取
  • 其他数据获取平台的介绍
  • 参考

股票数据的基本分类

股票数根据信息来源和分析方法的不同,可分为技术面数据基本面数据

技术面数据和基本面数据都是股票分析中重要的工具,它们提供了不同的视角和方法来评估股票的投资价值。

技术面数据

技术面数据是 通过股票的历史价格和交易量等市场数据进行计算和分析得出的指标。 它的核心观点是市场行为会在价格上留下痕迹,通过这些痕迹可以预测未来的价格走势。技术面数据主要关注股票价格的变动和市场趋势,常用的技术指标包括移动平均线、相对强弱指标、MACD指标等。技术面分析认为市场上已有的信息都会反映在股票价格中,因此通过分析股票价格图表和技术指标,可以尽可能准确地判断价格的走势和市场趋势。
whale-quant 学习 part3:股票数据获取_第1张图片

基本面数据

基本面数据是==通过分析公司的财务状况、业绩表现、竞争力等基本信息得出的评估。==基本面分析认为股票的价格是与公司的基本面因素相关的,包括公司的营业收入、盈利能力、资产负债情况、市场份额、竞争优势等。基本面分析的目标是评估公司的内在价值,并基于这些评估来判断股票的投资潜力。常用的基本面指标包括市盈率、市净率、股息率等。基本面数据通常需要通过公司公开的财务报告和公告来获取。

whale-quant 学习 part3:股票数据获取_第2张图片

股票数据的常见指标介绍

技术面数据常见指标

移动平均线 MA 相对强弱指数 RSI 随机指标 SO 成交量指标 Volume MACD指标
通过计算一段时间内的股票均价来平滑价格波动 计算基于一定时间内股票价格的平均涨幅和跌幅[0-100] 计算基于一段时间内的收盘价与最高价和最低价的关系(%K%D) 即某一个时间周期内的总成交量 DIF线、DEA线和MACD柱
- 简单移动平均线(SMA);-指数移动平均线(EMA) 常用参数是14个交易周期 衡量了股票交易的活跃程度 常用的趋势追踪和买卖想好指标
确定趋势;交叉信号;支撑与阻力线 0-30:表示股票市场被超卖,可能存在价格反弹;70-100:表示股票市场被超买,可能存在价格下跌的机会;30-70:表示股票市场相对平稳,没有明显的超买、超卖信号 %K线从下穿过%D时,买入信号,可能预示价格的反转和上涨;%K线从上方穿过%D时,卖出信号,可能预示着价格的反转和下跌;%K线位于高位(>80)时,表示市场可能超买,价格下跌风险增加;%K线位于低位(<20)时,表示市场可能超卖,价格上涨机会增加 当股票价格上涨,成交量增加可以视为价格上涨的确认;而当股票价格下跌时,成交量增加可能表示价格下跌的确认 通过比较两条移动平均线的差异,来判断股票价格的趋势以及价格的买卖信号

移动平均线MA

  • 简单移动平均线(SMA):通过将一段时间内的股票收盘价相加,然后除以时间段的天数来计算的。简单移动平均线可以平滑价格波动,显示出长期趋势;
  • 指数移动平均线(EMA):指数移动平均线对近期价格给予更高的权重,反映了市场更近期的变化。计算指数移动平均线时,当前价格会根据选定的时间段和权重系数,与之前的移动平均线值相结合
    应用:
  • 确定趋势 - 较短期的移动平均线(5\10日)反映了近期的价格走势,较长期的移动平均线(如50日或200日)则更能反映长期趋势
  • 交叉信号 - 提供买入或卖出的信号 例如:当短期移动平均线从下方穿过长期移动平均线时,被称为“黄金交叉”,可能暗示价格上涨的趋势。相反,当短期移动平均线从上方穿过长期移动平均线时,被称为“死亡交叉”,可能暗示着价格下跌的趋势。
  • 支撑与阻力线 - 移动平均线经常被用作支撑和阻力线的参考。当股票价格接近或穿过平均线时,可能会在此处遇到阻力或支撑,进而影响价格的反弹或下跌
    移动平均线是一种相对简单的技术指标,可能受到市场噪音的影响
    相对强弱指数RSI
    计算步骤:
    1、先计算14个交易周期内涨幅和跌幅的平均值
    2、计算涨幅均值和跌幅均值的比 RS
    3、计算相对强弱指数RSI RSI=100-(100/(1+RS))
    一种短期指标,对价格敏感,帮助投资者判断股票市场超买和超卖情况
    实际指标SO
    计算步骤:
    1、计算一定时间段(常见为14个交易日)内最高价和最低价
    2、计算当前收盘价与改时间内最低价的差值,并除以最高价和最低价的差值。
    %K=(收盘价-最低价)/(最高价-最低价)*100
    3、计算%K的移动平均值作为%D线的值,通常使用3日平均。
    %D=%K的3日简单移动平均线
    一种短期的技术指标,可以辅助投资者判断市场价格走势和买卖时机,但并不是绝对准确的
    成交量指标
    1、确认趋势 - 成交量指标可以用来确认价格趋势的有效性。在上涨趋势中,成交量增加可能意味着买盘增加,市场看涨情绪强烈。而在下跌趋势中,成交量增加可能意味着卖盘增加,市场看跌情绪强烈。如果价格和成交量出现背离,即价格上涨而成交量下降,或价格下跌而成交量增加,可能意味着趋势反转的可能性。
    2、确认突破 - 成交量指标也可用于确认价格突破的有效性。当价格突破重要的价格水平(如支撑或阻力线)时,如果成交量也大幅增加,可能预示着价格突破的力度和可持续性增加。
    3、观察分析 - ==投资者可以通过观察成交量指标的变化,研究市场情绪和买卖压力。==例如,当成交量急剧增加时,可能表示市场出现了重要的新闻、公告或市场情绪变化,这可能导致价格波动。
    4、交易量模型 - 有些交易者会使用成交量指标构建交易量模型,例如量价分析(Volume Price Analysis)或成交量波动指标(Volume Oscillator)。这些模型通过比较成交量与价格的关系,寻找特定的交易信号。
    相对于价格指标而言,属于非价格类指标,可以与其他技术指标和图表形态结合使用,以提供更全面的市场分析和交易决策支持
    MACD指标
    1、DIF线(Difference Line) 短期指数移动平均线(如12日 EMA)减去长期指数移动平均线(如26日 EMA)得到的差值线。DIF 线可以较为敏感地反应价格的短期波动。
    2、DEA线(Signal Line) 对 DIF 线进行平滑处理,一般使用DIF线的9日移动平均线得到。DEA 线可以平滑 DIF 线的波动,更好地体现价格的中期趋势。
    3、MACD柱(MACD Histogram) DIF线与DEA线的差值,可将价格的快速波动变化显示为柱状图。柱状图的红色柱代表 DIF 线在 DEA 线上方,表示价格可能上涨;绿色柱代表 DIF 线在 DEA 线下方,表示价格可能下跌。

应用:

  • 趋势判断:当 DIF 线与 DEA 线发生金叉(DIF 线向上穿过 DEA 线)时,表示价格可能出现上涨趋势;当 DIF 线与 DEA 线发生死叉(DIF 线向下穿过 DEA线)时,表示价格可能出现下跌趋势。

  • 买卖信号:当 MACD 柱由负值转为正值时,被视为买入信号;当 MACD 柱由正值转为负值时,被视为卖出信号。这些转折点可能表示价格快速波动的转变。

  • 背离信号:观察价格和 MACD 指标的背离情况。例如,当价格创新高而 MACD 指标未能创新高时,可能表示价格上涨动能下降,可能出现价格回调。

一种相对较慢的指标,较长时间的移动平均线会导致滞后性。因此,投资者通常会结合其他技术指标和图表形态来进行综合分析和判断。同时,使用MACD指标时也要关注交易量以及价格走势的配合,以提高准确性和可靠性。

基本面数据常见指标

每股收益 EPS
每股收益用于衡量公司每股可供股东分配的净利润,即每股盈利能力。每股收益是投资者评估公司盈利能力和估值的重要参考指标之一。

计算公式为:EPS = 净利润 / 流通股本

其中,净利润是指公司在一定会计周期内所创造的净收益,即扣除各项费用和税后利润。流通股本是指公司已经发行并在市场上自由交易的股票数量。

每股收益指标的应用主要包括以下几个方面:

  • 估值比较:每股收益可以作为比较不同公司的盈利能力和估值水平的重要依据。通常情况下,具有更高每股收益的公司往往被认为具有更好的盈利能力,因此可能被投资者更高估值。

  • 成长趋势:观察每股收益的变化趋势可以了解公司盈利能力的增长速度和稳定性。持续增长的每股收益可能意味着公司业绩好于预期,具有良好的成长潜力。

  • 盈利稳定性:通过比较每股收益的波动程度,可以判断公司的盈利稳定性。较小的波动通常被认为是公司盈利稳定性较好的表现。
    市净率 P/B Ratio
    也称为股价净资产比,是一种用于衡量股票当前市场价格与公司每股净资产之间关系的指标。它是用来评估公司的市场估值是否低估或高估的重要指标。

计算公式为:市净率 = 公司总市值 / 公司净资产

其中,公司总市值是指公司所有已发行股票的市值之和,而公司净资产是指公司的总资产减去总负债。

市净率是一个相对指标,一般用来比较同行业或同一市场的公司。较低的市净率通常被认为是公司股票被低估的迹象,而较高的市净率可能意味着公司股票被高估。

根据市净率可以得出以下几个判断:

  • 市净率低于1:通常表示公司的市场价值低于其净资产,股票可能被低估。

  • 市净率约等于1:表示公司的市场价值大致等于其净资产,股票被市场公平估价。

  • 市净率高于1:通常表示公司的市场价值高于其净资产,股票可能被高估。

市净率并不能独立决定一家公司的投资价值,因为它没有考虑到公司的盈利情况和未来的增长潜力。
股息收益率
用于衡量股票派发的股息相对于股票的价格的比率。股息是公司利润的一部分,以现金或股票形式派发给股东。股息收益率可以帮助投资者评估持有一只股票所能获得的现金回报。

计算公式为:股息收益率 = 每股股息 / 股票价格

其中,每股股息是指公司每股派发的股息金额,股票价格是股票在市场上的交易价格。

股息收益率指标的应用主要包括以下几个方面:

  • 现金回报:股息收益率可以帮助投资者了解持有股票所能获得的现金回报,尤其对于偏好分红收入的投资者而言,具有重要意义。较高的股息收益率可能表示股东获得较高的分红回报。

  • 盈利比较:通过比较不同公司的股息收益率,投资者可以了解公司的盈利能力和分红政策。较高的股息收益率可能意味着公司分红政策较为慷慨,或者公司盈利水平相对较高。

  • 市场情绪:股息收益率也可以反映市场对公司的情绪和风险偏好。一般而言,较高的股息收益率可能意味着市场对公司前景持谨慎态度,或者公司面临一定的困境。

股息收益率是一个基于过去分红数据和当前股票价格的指标,不能保证未来股息收益率的持续性。投资者还需要综合考虑公司的财务状况、盈利稳定性、盈利增长预期等因素,以及对行业和整体市场的分析,进行全面的投资决策。此外,股息收益率不适用于那些不派发股息或派发不稳定股息的公司。
净利润
净利润用于衡量一家公司在特定会计期间内实际获得的净收益,即扣除各项费用和税后利润。净利润是评估公司盈利能力和基本经营状况的重要指标。

计算公式为:净利润 = 总收入 - 总成本 - 税收 - 其他费用

其中:

  • 总收入:是指公司在特定会计期间内所实现的总销售收入或营业收入。
  • 总成本:包括直接成本和间接成本,指用于生产和销售产品或提供服务的成本。
  • 税收:是指公司应缴纳的所得税或其他税收费用。
  • 其他费用:包括财务费用、管理费用、营销费用等。

净利润是衡量公司盈利能力的重要指标,主要应用包括以下几个方面:

  • 盈利能力评估:净利润是评估公司盈利能力的核心指标之一。较高的净利润意味着公司创造了更多的利润,具有较好的盈利能力。投资者通常会对具有稳定和增长的净利润的公司更感兴趣。

  • 盈利趋势分析:观察净利润的变化趋势可以了解公司盈利的增长趋势和稳定性。持续增长的净利润可能意味着公司业绩良好,具有较好的发展潜力。

  • 盈利比较:通过比较不同公司的净利润,投资者可以了解公司的盈利水平和和业绩相对强弱。对于同行业的公司,较高的净利润可能意味着公司的竞争力较强。

净利润是一个单一的指标,不能完全评估公司的业绩和潜力。投资者还需要结合其他基本面指标、行业和市场的分析,以及财务报表中的其他信息,进行综合分析和判断。此外,净利润也可能受到会计政策、非经营性因素等的影响,因此在使用净利润数据时,需要谨慎解读。
负债和资产比率
负债与资产比率用于衡量公司的资本结构和债务风险水平。该比率反映了公司负债占总资产的比例(财务杠杆),可以帮助投资者了解公司负债情况以及对负债承受能力的评估。

计算公式为:负债与资产比率 = 总负债 / 总资产

其中,总负债是指公司在特定时点上的所有债务总额,包括长期负债和短期负债。总资产是指公司在特定时点上的全部资产,包括流动资产和固定资产。

负债与资产比率指标的应用主要包括以下几个方面:

  • 资本结构评估:通过负债与资产比率,投资者可以评估公司的资本结构,了解公司通过负债融资来支持业务运营和发展的程度。较高的负债与资产比率意味着公司债务较多,对外部融资的依赖程度较高。

  • 债务风险评估:负债与资产比率可以帮助投资者评估公司的债务风险水平。较高的负债与资产比率可能意味着公司具有较高的负债风险,可能面临偿债能力不足的风险。

  • 行业比较:通过比较同行业内不同公司的负债与资产比率,投资者可以了解公司在行业内的相对债务水平。较低的负债与资产比率可能意味着公司相对较少依赖债务融资,财务状况较为健康。

负债与资产比率只是一个衡量财务状况的指标之一,不能单独用于评估公司的投资价值。投资者还需要结合其他指标和财务报表信息,以及行业和市场的分析,进行全面的投资决策。此外,负债与资产比率还受到公司行业特性、资本结构策略和会计政策等因素的影响,可能存在正常的行业波动和季节性波动。

Baostock的基础数据获取

证券宝是一个免费、开源的证券数据平台,无需注册即可获得大量准确、完整的证券历史行情数据和上市公司财务数据。

pip install baostock
import baostock as bs
bs.query_history_k_data_plus()#获取A股的历史交易数据

一个示例 使用日线

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()

其他数据获取平台的介绍

TuShare 是一个免费、开源的 Python 财经数据接口包。主要实现对股票等金融产品从数据采集、清洗加工到数据存储的全过程自动化运作,为金融分析人士提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究和实现上。需要注册,获取的数据可能存在延迟
Tushare官方文档

pip install tushare
import tushare as ts
ts.set_token('you token')#从Tushare官网上获取
df = ts.get_hist_data('603019')#获取技术面数据 即股票的历史交易数据
df = ts.get_stock_basics()#获取基本面数据 及市盈率、流通股本这些

一个示例:检查一个特定股票5天移动平均线与20天移动平均线,如果5天移动平均线从下方穿越20天移动平均线,则生成一个“买入”信号

import tushare as ts
#设置token
ts.get_token('you_token')
#选择你分析的股票
stock_code = '603019'
#获取历史数据
df = ts.get_hist_data(stock_code)
#计算5天和20天的移动平均线
df['MA5'] = df['close'].rolling(window=5).mean()
df['MA20'] = df['close'].rolling(window=20).mean()
#找到2天移动平均线从下方穿越20天移动平均线的点
buy_signals = (df['MA5']>df['MA20'])&(df['MA5'].shift(1)<df['MA20'].shift(1))
#如果存在买入信号 打印买入
if buy_signals.any():
	print(f"Buy signals for {stock_code} on dates {buy_signals[buy_signals==True].index}")

参考

Datawhale 202401 whale-quant 开源学习
baostock
tushare

你可能感兴趣的:(-----量化投资-----,学习,python,tushare,量化投资)