当前位置: 首页 > news >正文

量化交易 股市技术指标

股市数据分类

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

技术面数据和基本面数据都是股票分析中重要的工具,它们提供了不同的视角和方法来评估股票的投资价值。投资者可以综合运用这两类数据,从技术面和基本面两个层面进行全面的分析和决策。

技术面数据

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

基本面数据

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

股市数据指标

如前所述,股票数据分为技术面数据和基本面,下面将分别介绍两种数据的常见指标。

技术面常见指标

1. 移动平均线(Moving Average, MA)

移动平均线是通过计算一段时间内的股票平均价格来平滑价格波动。常见的移动平均线有简单移动平均线(SMA)和指数移动平均线(EMA)。

  • 简单移动平均线(Simple Moving Average, SMA):简单移动平均线是最基本的移动平均线类型。它是通过将一段时间内的股票收盘价相加,然后除以时间段的天数来计算的。简单移动平均线可以平滑价格波动,显示出长期趋势。

  • 指数移动平均线(Exponential Moving Average, EMA):指数移动平均线对近期价格给予更高的权重,反映了市场更近期的变化。计算指数移动平均线时,当前价格会根据选定的时间段和权重系数,与之前的移动平均线值相结合。

移动平均线的应用主要包括以下几个方面:

  • 确定趋势:投资者可以使用不同期限的移动平均线来确定趋势的强度和方向。较短期的移动平均线(如5日或10日)反映了近期的价格走势,较长期的移动平均线(如50日或200日)则更能反映长期趋势。

  • 交叉信号:移动平均线的交叉可以提供买入或卖出的信号。例如,当短期移动平均线从下方穿过长期移动平均线时,被称为“黄金交叉”,可能暗示着价格上涨的趋势。相反,当短期移动平均线从上方穿过长期移动平均线时,被称为“死亡交叉”,可能暗示着价格下跌的趋势。

  • 支撑与阻力线:移动平均线经常被用作支撑和阻力线的参考。当股票价格接近或穿过移动平均线时,可能会在此处遇到阻力或支撑,进而影响价格的反弹或下跌。

移动平均线是一种相对较简单的技术指标,可能受到市场噪音的影响。因此,在使用移动平均线时,投资者通常需要结合其他指标和技术工具,以加强分析和确认交易信号的准确性。

2. 相对强弱指数(Relative Strength Index, RSI)

RSI 是一种用于衡量股票价格变动强度和速度的技术指标。它可帮助投资者判断股票市场的超买和超卖情况,以及价格的反转和确认信号。

RSI 的计算基于一定时期内股票价格的平均涨幅和跌幅。通常情况下,RSI的取值范围在0到100之间。

RSI 指标的常用参数为14,计算步骤如下:

  1. 首先,计算14个交易周期内涨幅和跌幅的平均值。

  2. 计算涨幅平均值与跌幅平均值的相对强弱比率(RS,Relative Strength)。 RS = (14个交易周期内涨幅平均值) / (14个交易周期内跌幅平均值)

  3. 计算相对强弱指数(RSI): RSI = 100 - (100 / (1 + RS))

RSI 的数值解读如下:

  • RSI在0到30之间:表示股票市场被超卖,可能存在价格反弹的机会。
  • RSI在70到100之间:表示股票市场被超买,可能存在价格下跌的机会。
  • RSI在30到70之间:表示股票市场相对平稳,没有明显的超买或超卖信号。

投资者通常会关注RSI的超买和超卖区域,并结合其他技术指标和价格走势来辅助判断市场趋势和交易信号。例如,当RSI进入超买区域并且价格形成拐头下跌时,可能暗示进一步的价格下跌。相反,当RSI进入超卖区域并且价格形成拐头上涨时,可能暗示价格反弹或反转的机会。

RSI 是一种短期的指标,对价格的反应较为敏感。因此,投资者在使用RSI时应该结合其他技术指标和基本面分析,以获得更全面准确的市场判断和交易决策。

3. 随机指标(Stochastic Oscillator)

随机指标用于判断股票价格的超买和超卖情况,以及价格反转的可能性。它可以帮助投资者确定适合买入或卖出股票的时机。

随机指标的计算基于一段时间内的收盘价与最高价和最低价的关系。该指标通常使用 %K 线和 %D 线两条线,并结合超买区和超卖区进行解读。

随机指标的计算步骤如下:

  1. 首先,计算一定时间段(常见为14个交易日)内的最高价和最低价。
  2. 计算当前收盘价与该时间段内最低价的差值(收盘价-最低价),并除以最高价和最低价的差值(最高价-最低价)。 %K = (收盘价 - 最低价)/ (最高价 - 最低价) * 100
  3. 计算%K的移动平均值作为%D线的值,通常使用3日平均。 %D = %K的3日简单移动平均线

随机指标的数值解读如下:

  • 当 %K 线从下方穿越%D线时,被视为买入信号,可能预示着价格的反转和上涨。
  • 当 %K 线从上方穿越%D线时,被视为卖出信号,可能预示着价格的反转和下跌。
  • 当 %K 线位于高位(一般超过80)时,表示市场可能超买,价格的下跌风险增加。
  • 当 %K 线位于低位(一般低于20)时,表示市场可能超卖,价格的上涨机会增加。

随机指标是一种短期的技术指标。它可以辅助投资者判断市场价格走势和买卖时机,但并不是绝对准确的,也需要结合其他指标和图表形态进行综合分析。此外,投资者应该注意风险管理,不仅仅依赖于单一指标作为决策依据。

4. 成交量指标(Volume)

成交量指标衡量了股票交易的活跃程度。当股票价格上涨时,成交量增加可以视为价格上涨的确认,而当股票价格下跌时,成交量增加可能表示价格下跌的确认。

成交量指标的计算非常简单,即某一时间周期内的总成交量。

成交量指标的应用主要包括以下几个方面:

  1. 确认趋势:成交量指标可以用来确认价格趋势的有效性。在上涨趋势中,成交量增加可能意味着买盘增加,市场看涨情绪强烈。而在下跌趋势中,成交量增加可能意味着卖盘增加,市场看跌情绪强烈。如果价格和成交量出现背离,即价格上涨而成交量下降,或价格下跌而成交量增加,可能意味着趋势反转的可能性。

  2. 确认突破:成交量指标也可用于确认价格突破的有效性。当价格突破重要的价格水平(如支撑或阻力线)时,如果成交量也大幅增加,可能预示着价格突破的力度和可持续性增加。

  3. 观察分析:投资者可以通过观察成交量指标的变化,研究市场情绪和买卖压力。例如,当成交量急剧增加时,可能表示市场出现了重要的新闻、公告或市场情绪变化,这可能导致价格波动。

  4. 交易量模型:有些交易者会使用成交量指标构建交易量模型,例如量价分析(Volume Price Analysis)或成交量波动指标(Volume Oscillator)。这些模型通过比较成交量与价格的关系,寻找特定的交易信号。

成交量指标相对于价格指标而言,属于非价格类指标。它可以与其他技术指标和图表形态结合使用,以提供更全面的市场分析和交易决策支持。同时,投资者也应该注意成交量的时期、粒度和数据来源,在使用成交量指标时避免盲目依赖,要结合其他信息进行综合分析。

5. MACD 指标(Moving Average Convergence Divergence)

MACD 指标是股票技术分析中常用的趋势追踪和买卖信号指标。它通过比较两条移动平均线的差异,来判断股票价格的趋势以及价格的买卖信号。

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 线下方,表示价格可能下跌。

MACD 指标的应用主要包括以下几个方面:

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

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

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

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

以上是一些常见的技术面指标,投资者可以根据自己的需求和策略选择合适的指标来进行股票分析和决策。重要的是要综合运用多个指标进行分析,以减少单一指标的局限性。

基本面常见指标

. 每股收益(Earnings Per Share, EPS)

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

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

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

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

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

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

  3. 盈利稳定性:通过比较每股收益的波动程度,可以判断公司的盈利稳定性。较小的波动通常被认为是公司盈利稳定性较好的表现。

每股收益作为一个单一的指标,不能完全评估公司的业绩和潜力。投资者还需要结合其他指标和信息,如市盈率(PE ratio)、市净率(PB ratio)、行业对比等,进行全面分析和判断。此外,每股收益数据也需要结合公司的财务报表和公告信息核实,以确保数据的准确性和可靠性。

2. 市净率(Price-to-Book Ratio, P/B Ratio)

也称为股价净资产比,是一种用于衡量股票当前市场价格与公司每股净资产之间关系的指标。它是用来评估公司的市场估值是否低估或高估的重要指标。

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

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

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

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

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

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

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

市净率并不能独立决定一家公司的投资价值,因为它没有考虑到公司的盈利情况和未来的增长潜力。因此,在使用市净率作为投资决策工具时,投资者还应该结合其他因素进行综合分析。

3. 股息收益率(Dividend Yield)

股息收益率用于衡量股票派发的股息相对于股票的价格的比率。股息是公司利润的一部分,以现金或股票形式派发给股东。股息收益率可以帮助投资者评估持有一只股票所能获得的现金回报。

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

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

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

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

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

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

股息收益率是一个基于过去分红数据和当前股票价格的指标,不能保证未来股息收益率的持续性。投资者还需要综合考虑公司的财务状况、盈利稳定性、盈利增长预期等因素,以及对行业和整体市场的分析,进行全面的投资决策。此外,股息收益率也不适用于那些不派发股息或派发不稳定股息的公司。

4. 净利润(Net Profit)

净利润用于衡量一家公司在特定会计期间内实际获得的净收益,即扣除各项费用和税后利润。净利润是评估公司盈利能力和基本经营状况的重要指标。

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

其中:

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

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

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

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

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

净利润是一个单一的指标,不能完全评估公司的业绩和潜力。投资者还需要结合其他基本面指标、行业和市场的分析,以及财务报表中的其他信息,进行综合分析和判断。此外,净利润也可能受到会计政策、非经营性因素等的影响,因此在使用净利润数据时,需要谨慎解读。

5. 负债与资产比率(Debt-to-Asset Ratio)

负债与资产比率用于衡量公司的资本结构和债务风险水平。该比率反映了公司负债占总资产的比例(财务杠杆),可以帮助投资者了解公司负债情况以及对负债承受能力的评估。

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

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

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

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

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

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

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

以上是一些常见的基本面指标,投资者应该根据自己的需求和投资策略选择合适的指标进行分析和决策。除了这些指标之外,还有许多其他的基本面数据可供参考,包括营收增长率、资产周转率、净利润率等。重要的是要对这些指标进行综合分析,以全面评估一家公司的财务状况和潜力。

股市数据获取

使用python代码调用(www.baostock.com)平台的AIP来获取需要的数据

获取历史A股K线数据

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

具体步骤如下:

  1. 首先导入需要用到的 baostock 和 pandas 库。
  2. 使用 bs.login() 函数登录 Baostock 系统,并输出登录返回信息。该函数返回一个对象 lg,其中包含了登录返回的错误代码和错误信息。
  3. 使用 bs.query_history_k_data_plus() 函数查询指定股票在指定时间范围内的 K 线数据,其中第一个参数为要查询的股票代码,第二个参数为要查询的 K 线数据字段列表,第三个参数为开始日期,第四个参数为结束日期,第五个参数为查询频率,第六个参数为复权类型。该函数返回一个对象 rs,其中包含了查询返回的错误代码和错误信息以及查询结果集。
  4. 将查询结果集转换成 Pandas DataFrame 格式,并输出到 CSV 文件中。首先创建一个空列表 data_list,然后使用 rs.next() 循环获取查询结果集里的每一行数据,将每一行数据存入 data_list 列表中。最后使用 Pandas 的 DataFrame 函数将 data_list 转换成 DataFrame 格式并输出到 CSV 文件中。
  5. 最后使用 bs.logout() 函数退出 Baostock 系统。

query_history_k_data_plus参数含义:

  • code:股票代码,sh或sz.+6位数字代码,或者指数代码,如:sh.601398。sh:上海;sz:深圳。此参数不可为空;
  • fields:指示简称,支持多指标输入,以半角逗号分隔,填写内容作为返回类型的列。详细指标列表见历史行情指标参数章节,日线与分钟线参数不同。此参数不可为空;
  • start:开始日期(包含),格式“YYYY-MM-DD”,为空时取2015-01-01;
  • end:结束日期(包含),格式“YYYY-MM-DD”,为空时取最近一个交易日;
  • frequency:数据类型,默认为d,日k线;d=日k线、w=周、m=月、5=5分钟、15=15分钟、30=30分钟、60=60分钟k线数据,不区分大小写;指数没有分钟线数据;周线每周最后一个交易日才可以获取,月线每月最后一个交易日才可以获取。
  • adjustflag:复权类型,默认不复权:3;1:后复权;2:前复权。已支持分钟线、日线、周线、月线前后复权。 BaoStock提供的是涨跌幅复权算法复权因子,具体介绍见:复权因子简介或者BaoStock复权因子简介。

注意:

  • 股票停牌时,对于日线,开、高、低、收价都相同,且都为前一交易日的收盘价,成交量、成交额为0,换手率为空。

如果需要将换手率转为float类型,可使用如下方法转换:result["turn"] = [0 if x == "" else float(x) for x in result["turn"]]

返回数据说明

参数名称参数描述算法说明
date交易所行情日期
code证券代码
open开盘价
high最高价
low最低价
close收盘价
preclose前收盘价见表格下方详细说明
volume成交量(累计 单位:股)
amount成交额(单位:人民币元)
adjustflag复权状态(1:后复权, 2:前复权,3:不复权)
turn换手率[指定交易日的成交量(股)/指定交易日的股票的流通股总股数(股)]*100%
tradestatus交易状态(1:正常交易 0:停牌)
pctChg涨跌幅(百分比)日涨跌幅=[(指定交易日的收盘价-指定交易日前收盘价)/指定交易日前收盘价]*100%
peTTM滚动市盈率(指定交易日的股票收盘价/指定交易日的每股盈余TTM)=(指定交易日的股票收盘价*截至当日公司总股本)/归属母公司股东净利润TTM
pbMRQ市净率(指定交易日的股票收盘价/指定交易日的每股净资产)=总市值/(最近披露的归属母公司股东的权益-其他权益工具)
psTTM滚动市销率(指定交易日的股票收盘价/指定交易日的每股销售额)=(指定交易日的股票收盘价*截至当日公司总股本)/营业总收入TTM
pcfNcfTTM滚动市现率(指定交易日的股票收盘价/指定交易日的每股现金流TTM)=(指定交易日的股票收盘价*截至当日公司总股本)/现金以及现金等价物净增加额TTM
isST是否ST股1是,0否

注意“前收盘价”说明:

当股票在指定交易日发生除权除息时,其前收盘价的计算方法有所不同。一般而言,前收盘价是指前一个交易日的实际收盘价,但当股权登记日与分红现金数量、配送股数和配股价等因素相结合时,前收盘价需要根据一定的计算方法得出。具体来说,需要先计算除息价,然后再计算送红股后的除权价和配股后的除权价,最后得出除权除息价。这个除权除息价就是指定交易日的前收盘价。该价格由交易所计算并公布,而在首发日,则将首发价格作为前收盘价。

具体计算方法如下:

1、计算除息价: 除息价=股息登记日的收盘价-每股所分红利现金额

2、计算除权价: 送红股后的除权价=股权登记日的收盘价/(1+每股送红股数) 配股后的除权价=(股权登记日的收盘价+配股价*每股配股数)/(1+每股配股数)

3、计算除权除息价 :除权除息价=(股权登记日的收盘价-每股所分红利现金额+配股价*每股配股数)/(1+每股送红股数+每股配股数)

关于复权数据说明

复权数据是在股票交易中调整历史价格和成交量的数据,以考虑除权、除息等事件对价格和成交量的影响。复权数据的意义在于能够更准确地反映股票的实际表现,避免因为除权、除息等事件造成的误导性信息。通过使用复权数据,投资者可以更好地了解股票的历史价格走势和成交量变化,以做出更明智的投资决策。

BaoStock使用“涨跌幅复权法”对历史股价数据进行复权处理,以便更准确地计算资金收益率。该方法的优点是可以保证初始投入的资金运用率为100%,从而避免分红或配股对投资额的影响。

然而,不同的系统可能采用不同的复权方式,因此在比较不同系统提供的股票数据时,可能会发现存在差异。例如,同花顺、通达信等软件可能采用其他的复权方式,导致与BaoStock提供的数据不一致。

关于复权数据的说明:

BaoStock使用“涨跌幅复权法”进行复权,详细说明参考上文“复权因子简介”。不同系统间采用复权方式可能不一致,导致数据不一致。

“涨跌幅复权法的”优点:可以计算出资金收益率,确保初始投入的资金运用率为100%,既不会因为分红而导致投资减少,也不会因为配股导致投资增加。

成分股信息的获取

query_sz50_stocks():这个方法通过API接口获取上证50成分股的信息,更新频率为每周一更新。

对应的还有query_hs300_stocks(),query_zh1000_stocks()、query_zz500_stocks()等

import baostock as bs # 导入 baostock 库
import pandas as pd   # 导入 pandas 库
from IPython.display import display# 登陆系统
lg = bs.login()  # 调用 login 方法进行登陆
# 显示登陆返回信息
print('login respond error_code:'+lg.error_code) # 打印登陆返回错误码
print('login respond  error_msg:'+lg.error_msg)  # 打印登陆返回错误信息# 获取上证50成分股
rs = bs.query_sz50_stocks()  # 调用 query_sz50_stocks 方法获取上证50成分股信息
print('query_sz50 error_code:'+rs.error_code)  # 打印方法返回错误码
print('query_sz50  error_msg:'+rs.error_msg)   # 打印方法返回错误信息# 打印结果集
sz50_stocks = []   # 创建一个空列表,用于存储查询结果
while (rs.error_code == '0') & rs.next():# 如果查询没有出错且还有数据sz50_stocks.append(rs.get_row_data())   # 将获取到的数据添加到列表中
result = pd.DataFrame(sz50_stocks, columns=rs.fields)  # 使用 pandas 将数据转换为 DataFrame 格式
# 结果集输出到csv文件
result.to_csv("D:/sz50_stocks.csv", encoding="gbk", index=False)  # 将结果保存为 csv 文件
display(result)   # 打印结果# 登出系统
bs.logout()  # 调用 logout 方法进行登出

参数含义

  • date:查询日期,格式XXXX-XX-XX,为空时默认最新日期。

返回数据说明

参数名称参数描述
updateDate更新日期
code证券代码
code_name证券名称

基本面数据指标

参数分类

参数名称参数描述算法说明
公共参数code证券代码
公共参数pubDate公司发布财报的日期
公共参数statDate"财报统计的季度的最后一天, 比如2017-03-31, 2017-06-30"
季频盈利能力roeAvg净资产收益率(平均)(%)归属母公司股东净利润/[(期初归属母公司股东的权益+期末归属母公司股东的权益)/2]*100%
季频盈利能力npMargin销售净利率(%)净利润/营业收入*100%
季频盈利能力gpMargin销售毛利率(%)毛利/营业收入*100%=(营业收入-营业成本)/营业收入*100%
季频盈利能力netProfit净利润(元)
季频盈利能力epsTTM每股收益归属母公司股东的净利润TTM/最新总股本
季频盈利能力MBRevenue主营营业收入(元)
季频盈利能力totalShare总股本
季频盈利能力liqaShare流通股本
季频营运能力NRTurnRatio应收账款周转率(次)营业收入/[(期初应收票据及应收账款净额+期末应收票据及应收账款净额)/2]
季频营运能力NRTurnDays应收账款周转天数(天)季报天数/应收账款周转率(一季报:90天,中报:180天,三季报:270天,年报:360天)
季频营运能力INVTurnRatio存货周转率(次)营业成本/[(期初存货净额+期末存货净额)/2]
季频营运能力INVTurnDays存货周转天数(天)季报天数/存货周转率(一季报:90天,中报:180天,三季报:270天,年报:360天)
季频营运能力CATurnRatio流动资产周转率(次)营业总收入/[(期初流动资产+期末流动资产)/2]
季频营运能力AssetTurnRatio总资产周转率营业总收入/[(期初资产总额+期末资产总额)/2]
季频成长能力YOYEquity净资产同比增长率(本期净资产-上年同期净资产)/上年同期净资产的绝对值*100%
季频成长能力YOYAsset总资产同比增长率(本期总资产-上年同期总资产)/上年同期总资产的绝对值*100%
季频成长能力YOYNI净利润同比增长率(本期净利润-上年同期净利润)/上年同期净利润的绝对值*100%
季频成长能力YOYEPSBasic基本每股收益同比增长率(本期基本每股收益-上年同期基本每股收益)/上年同期基本每股收益的绝对值*100%
季频成长能力YOYPNI归属母公司股东净利润同比增长率(本期归属母公司股东净利润-上年同期归属母公司股东净利润)/上年同期归属母公司股东净利润的绝对值*100%
季频偿债能力currentRatio流动比率流动资产/流动负债
季频偿债能力quickRatio速动比率(流动资产-存货净额)/流动负债
季频偿债能力cashRatio现金比率(货币资金+交易性金融资产)/流动负债
季频偿债能力YOYLiability总负债同比增长率(本期总负债-上年同期总负债)/上年同期中负债的绝对值*100%
季频偿债能力liabilityToAsset资产负债率负债总额/资产总额
季频偿债能力assetToEquity权益乘数资产总额/股东权益总额=1/(1-资产负债率)

季频盈利能力

是指公司在每个季度内所实现的盈利水平和能力。这通常涉及到一些财务指标和比率,例如每股收益(EPS)、净利润率、毛利润率等等。这些指标可以用来评估公司的经营状况和盈利能力,对投资者来说是非常重要的参考数据之一。通过了解公司的季度盈利能力,投资者可以更好地了解公司的财务状况,从而做出更明智的投资决策。

import baostock as bs
import pandas as pd
from IPython.display import display# 登录 BaoStock 系统
lg = bs.login()# 显示登陆返回信息
print('login respond error_code:'+lg.error_code)
print('login respond  error_msg:'+lg.error_msg)# 获取600036招商银行季频盈利能力数据
profit_list = []
rs_profit = bs.query_profit_data(code="sh.600036", year=2022, quarter=4)
while (rs_profit.error_code == '0') & rs_profit.next():profit_list.append(rs_profit.get_row_data())# 转换为DataFrame格式
df_profit = pd.DataFrame(profit_list, columns=rs_profit.fields)# 打印结果
display(df_profit)# 将结果集输出到csv文件
df_profit.to_csv("D:\\profit_data.csv", encoding="gbk", index=False)# 退出 BaoStock 系统
bs.logout()

季频营运能力

是指公司在每个季度内所实现的营运能力和效率。这通常涉及到一些财务指标和比率,例如存货周转率、应收账款周转率、总资产周转率等等。这些指标可以用来评估公司的经营状况和营运效率,对投资者来说也是非常重要的参考数据之一。通过了解公司的季度营运能力,投资者可以更好地了解公司的经营状况和盈利潜力,从而做出更明智的投资决策。

import baostock as bs
import pandas as pd
from IPython.display import display# 登录 BaoStock 系统
lg = bs.login()# 显示登陆返回信息
print('login respond error_code:'+lg.error_code)
print('login respond  error_msg:'+lg.error_msg)# 获取600036招商银行季频营运能力数据
operation_list = []
rs_operation = bs.query_operation_data(code="sh.600036", year=2022, quarter=4)
while (rs_operation.error_code == '0') & rs_operation.next():operation_list.append(rs_operation.get_row_data())# 转换为DataFrame格式
df_operation = pd.DataFrame(operation_list, columns=rs_operation.fields)# 打印输出
display(df_operation)# 将结果集输出到csv文件
df_operation.to_csv("D:\\operation_data.csv", encoding="gbk", index=False)# 退出 BaoStock 系统
bs.logout()

季频成长能力

是指公司在每个季度内所实现的成长水平和能力。这通常涉及到一些财务指标和比率,例如营收增长率、净利润增长率、每股收益增长率等等。这些指标可以用来评估公司的成长潜力和未来发展趋势,对投资者来说也是非常重要的参考数据之一。通过了解公司的季度成长能力,投资者可以更好地了解公司的未来发展潜力,从而做出更明智的投资决策。

import baostock as bs
import pandas as pd
from IPython.display import display# 登录 BaoStock 系统
lg = bs.login()# 显示登陆返回信息
print('login respond error_code:'+lg.error_code)
print('login respond  error_msg:'+lg.error_msg)# 获取600036招商银行季频成长能力数据
growth_list = []
rs_growth = bs.query_growth_data(code="sh.600036", year=2022, quarter=4)
while (rs_growth.error_code == '0') & rs_growth.next():growth_list.append(rs_growth.get_row_data())# 转换为DataFrame格式
df_growth = pd.DataFrame(growth_list, columns=rs_growth.fields)# 打印输出
display(df_growth)# 将结果集输出到csv文件
df_growth.to_csv("D:\\growth_data.csv", encoding="gbk", index=False)# 退出 BaoStock 系统
bs.logout()

季频偿债能力

是指公司在每个季度内所实现的偿债能力和风险。这通常涉及到一些财务指标和比率,例如资产负债比率、流动比率、速动比率、利息保障倍数等等。这些指标可以用来评估公司的偿债能力和财务风险,对投资者来说也是非常重要的参考数据之一。通过了解公司的季度偿债能力,投资者可以更好地了解公司的财务状况和风险情况,从而做出更明智的投资决策。

import baostock as bs
import pandas as pd
from IPython.display import display# 登录 BaoStock 系统
lg = bs.login()# 显示登陆返回信息
print('login respond error_code:'+lg.error_code)
print('login respond  error_msg:'+lg.error_msg)# 获取600036招商银行季频偿债能力数据
balance_list = []
rs_balance = bs.query_balance_data(code="sh.600036", year=2022, quarter=4)
while (rs_balance.error_code == '0') & rs_balance.next():balance_list.append(rs_balance.get_row_data())# 转换为DataFrame格式
df_balance = pd.DataFrame(balance_list, columns=rs_balance.fields)# 打印输出
display(df_balance)# 将结果集输出到csv文件
df_balance.to_csv("D:\\balance_data.csv", encoding="gbk", index=False)# 退出 BaoStock 系统
bs.logout()

股市数据处理

主要依托于pandas对表格数据的处理,主要是注意索引应是时间为主,要处理好各类时间格式的数据。


http://www.mrgr.cn/news/66083.html

相关文章:

  • Web Broker(Web服务应用程序)入门教程(2)
  • 学习threejs,使用对象组合
  • PHP露营地管理平台小程序系统源码
  • 【ClickHouse】创建表
  • 操作系统(10) (并发(2)------基于软件/硬件/操作系统层面解决两个进程之间的临界区问题/抢占式/非抢占式内核)
  • SpringBoot 整合 RabbitMQ
  • 【ARM Linux 系统稳定性分析入门及渐进 1.4 -- Crash 工具调用】
  • Vue 3 性能提升与 Vue 2 的比较 - 2024最新版前端秋招面试短期突击面试题【100道】
  • 51单片机--- 蜂鸣器电子琴仿真
  • 【Linux】网络编程:实现一个简易的基于HTTP协议格式、TCP传输的服务器,处理HTTP请求并返回HTTP响应;GET方法再理解
  • Odoo的结构
  • 数据分析-39-时间序列分解之经验小波分解EWT
  • 【笔记】变压器-热损耗-频响曲线推导 - 03 变压器参数-特性
  • PMP每日一练(二十三)
  • ​伊朗和以色列各类地图分享
  • 基于springboot+vue实现的网上书店系统 (源码+L文)
  • 25届大模型秋招总结经验分享(互联网版)
  • YOLOv10改进策略【卷积层】| 利用MobileNetv4中的UIB、ExtraDW优化C2fCIB
  • 3大关键点教你用Java和Spring Boot快速构建微服务架构:从零开发到高效服务注册与发现的逆袭之路
  • 一分钟讲透聚合SDK的工作原理
  • 少儿编程学习现状:提升思维与动手能力,家长需求大揭秘
  • Excel函数之XLOOKUP
  • 跨可用区的集群k8s的基本操作和配置理解
  • 如何在 uniapp 中实现图形验证码
  • 【日记】吹头发的时候好爆炸(449 字)
  • 《C++类型转换:四种类型转换的规定》