【手把手教你】使用qstock轻松实现财务指标量化选股

01

引言

在A股市场,随着上市公司数量的不断增长,投资者面临的选择也越来越多。然而,面对这样一个庞大而复杂的市场,如何从中挖掘出真正具有投资潜力的公司,便成了一项至关重要的任务。在这样的市场环境中,简单的直觉或基本的财务数据分析已远远不够。因此,投资者需要依靠强大的分析工具,以科学的方法来识别那些不仅财务健康而且具备成长潜力的公司。

qstock 正是为满足这一需求而设计的量化分析工具。它能够帮助投资者高效地从大量财务信息中筛选出关键数据,从而简化决策过程。随着最新一季的财务报告陆续公布,本文将介绍如何利用qstock的数据、可视化和回测功能,通过最新财务指标分析和筛选出A股市场中的优质投资机会,为读者量化选股提供参考。

关于 qstock 更详细的使用方法,请参考 qstock 专题系列文章(点击跳转):

【qstock开源了】数据篇之行情交易数据

【qstock数据篇】行业概念板块与资金流

【qstock量化】数据篇之股票基本面数据

【qstock量化】数据篇之宏观指标和财经新闻文本

【qstock量化】动态交互数据可视化

【qstock量化】技术形态与概念热点选股池

【手把手教你】使用qstock实现量化策略选股

【手把手教你】使用qstock进行量化回测

  基于qstock的量化复盘与自动盯盘

qstock 玩转问财:一行代码实现条件选股

02

基于qstock财务指标选股

净利润同比增长率和营业总收入同比增长率,反映了公司一定时期内的盈利能力和销售增长,是判断公司未来发展潜力的重要依据,可以有效地帮助我们识别出那些成长性强的公司。

使用qstock量化分析包,我们可以通过简单的代码操作获取并筛选出显示这些特征的股票。首先,我们从全市场获取最新的利润表数据(本文截至2024年一季报),重点考察几个反映业绩增长的核心财务指标,如净利润、净利润同比、营业总收入及其同比增长。接着,设定筛选条件:比如,寻找那些净利润同比增长超过100%和营业总收入同比增长超过30%的股票。这样的筛选标准帮助我们定位到那些在过去一年内不仅盈利能力大幅提升,而且销售额也实现显著增长的股票。

import pandas as pd
import qstock as qs
#获取全市场个股最新的利润表数据
df=qs.financial_statement(flag='利润表', date='20240331')
#保留关键列
df=df[['代码','简称','净利润','净利润同比','营业总收入','营业总收入同比']]
#根据指标筛选个股
c1=df['净利润同比']>100
c2=df['营业总收入同比']>30
c3=df['净利润']>1e7
profit=df[c1&c2&c3].sort_values('净利润同比',ascending=False)
profit.set_index('简称',inplace=True) #设置索引

下表展示了一系列A股市场公司的财务表现,特别是扬电科技和朗特智能,它们在净利润同比增长超过2000%,以及营业总收入同比增长超过100%,表现尤为突出。这些数据揭示了这些公司在一季度的显著盈利增长和销售增长,突显出它们作为高成长股的潜力。对于寻求投资高增长潜力公司的投资者来说,这些指标提供了重要的参考信息,可作为优选投资目标的依据。

#查看前10数据
profit.head(10)

1f0a010a68975e4106c1fe49d4c1a0fd.jpeg

在从利润表数据筛选出具有高增长潜力的股票之后,进一步分析这些股票的市场表现。利用qstock获取筛选出的个股自2023年以来的每日收盘价数据,计算在不同时间框架(例如1天、5天、20天、60天和120天)内的收益率,考察季报出来前短期和中长期的价格变动趋势。这种综合的分析方式不仅考虑了公司的财务增长指标,还考虑了市场表现数据。有助于投资者全面评估每只股票的投资价值,确保所选股票不只是在财务上表现出色,而且在股价走势良好。

#获取股票列表
codes=profit['代码'].tolist()
#获取股票池2023年至今的价格数据
prices=qs.get_price(codes,start='20230101')
#计算某期间的收益率,默认参数w_list=[1, 5, 20, 60, 120]
returns=qs.ret_date(prices)
#添加最新收盘价数据
returns['收盘价']=prices.iloc[-1].values
#股票池累计收益率可视化
qs.line((1+prices.pct_change()).cumprod())

ce345905741e5e6491823d122389d221.jpeg

通过合并财务指标和股票市场表现数据,能够获得一个全面的视图,评估公司的历史财务表现和股市表现。在上述代码实现的过程中,首先合并了具有高增长财务指标的股票列表和这些股票的历史收益率数据。然后,通过对120日收益率进行排序,可以观察到哪些股票在过去几个月表现最为出色。

#合并数据
result=pd.concat([profit,returns],axis=1)
#以最近20日收益率排名
result.sort_values('120日收益率%',ascending=False)

6ef7e829235b6ed04595da7720bb5930.jpeg

在对公司的财务表现和市场收益率进行综合分析后,为了更深入地了解个股的市场行为,绘制K线图是一个非常有用的方法。通过使用qstock工具,我们可以方便地生成调整后的K线图(Heikin-Ashi K线),这种K线图帮助投资者更清晰地识别市场趋势和潜在的转折点。Heikin-Ashi K线图是一种通过平均价格数据来平滑价格波动的技术,可以帮助投资者减少市场“噪音”,更清楚地看到价格趋势。这种图表不仅提供了价格的开盘、收盘、最高和最低四个基本点,而且通过颜色变化直观地显示出市场是在上涨还是下跌。这对于希望跟踪股票近期表现并预测未来走势的投资者来说,是一个非常有价值的工具。下图展示的是筛选结果result中的扬电科技的价格修正K线图。

#修正K线图
qs.HA_kline(qs.get_data(result.index[0])[-200:])

d4d513fb3c7286f7f972d3d318c7ac77.jpeg

下面使用qstock的回测功能,考察自2021年以来个股市场表现。从2021年开始到2024年,买入持有新易盛的总收益率达到了惊人的126.99%,而同期创业板指数的总收益率却下降了43.13%。这表明,在这个时间段内,持有“新易盛”远远超过了市场的平均表现。

#2021年以来买入持有策略表现
data=qs.data_feed('新易盛',index='cyb',start='2021-01-01',end='2024-04-22')
qs.start_backtest(data)

28d4222839e9e00ee43da3e9e84bd21d.jpeg

73a32c5ae89515dfbf39cb943fb62ca0.jpeg

为了更深入地了解特定公司的业务结构和主营业务的收入分布,可以通过可视化的方式呈现其主营业务构成。下面代码展示了如何使用qstock工具对指定公司的主营业务数据进行提取和可视化处理。

#可视化主营业务构成
def plot_main_business(code):
    dd=qs.main_business(code)
    c1=dd['报告期']==dd['报告期'][0]
    c2=dd['分类方向']=='按行业分'
    dd=dd[c1&c2]
    g=qs.pie(dd.iloc[:-1],x='分类',y='营业收入(万)',title=code+'主营业务收入')
    return g

图形显示,新易盛的主营业务按行业分是光通信行业,我们也可以选择按产品或按地域分。

plot_main_business('新易盛')

7d0616f6443e6eddb2ccbc957389be78.jpeg

继续深入分析,了解公司的关键财务指标是投资决策过程中不可或缺的一环。通过qstock工具,我们可以快速检索特定股票的基本财务信息。codes是前面筛选出来的个股,通过stock_basics函数可以快速获取股票列表的核心财务指标,为我们进一步结合其他财务指标筛选个股提供便利的手段。

#查看上述个股关键财务指标
qs.stock_basics(codes)

04c9b2fd24e33bd64ffc838c0bcfb010.jpeg

03

结语

qstock展示了其在股票分析和选股中的强大功能,仅需简单几行代码,用户就能实现从数据获取、可视化分析到选股和量化回测的全流程功能。这种高效的集成能力使得qstock成为投资者在A股市场中寻找高成长潜力公司时的有力工具

然而,尽管qstock在处理和分析财务数据方面表现出色,基本面财务指标选股仍有其局限性和滞后性。这些财务指标通常反映的是公司的过去表现,可能无法及时反映市场动态、经济变化或行业趋势。因此,为了实现更全面和均衡的投资策略,投资者应结合技术分析、市场情绪和宏观经济数据,以适应快速变化的市场环境,确保投资决策的及时性和有效性。

7bfe23e44834ab77d429a1b0ecedf80f.png

关于Python金融量化

69681805d43b1a1fad8fa958c86e3737.png

专注于分享Python在金融量化领域的应用。加入知识星球,可以免费获取qstock源代码、30多g的量化投资视频资料、量化金融相关PDF资料、公众号文章Python完整源码、与博主直接交流、答疑解惑等。添加个人微信sky2blue2可获取相关优惠。

7e674ae10b6baa2d60597d73e635cff9.jpeg

# 简介 qstock由“Python金融量化”公众号开发,试图打造成个人量化投研分析开源库,目前包括数据获取(data)、可视化(plot)、选股(stock)和量化回测(backtest)四个模块。其中数据模块(data)数据来源于东方财富网、同花顺、新浪财经等网上公开数据。qstock致力于为用户提供更加简洁和规整化的金融市场数据接口,其中可视化模块为用户提供基于web的交互图形简单操作接口;选股模块提供了同花顺的技术选股和公众号策略选股,包括RPS、MM趋势、财务指标、资金流模型等,回测模块为大家提供向量化(基于pandas)和基于事件驱动的基本框架和模型。 读者直接在cmd或anaconda prompt上输入“pip install qstock ”进行安装,或输入“pip install -upgrade qstock”进行更新。 qstock是免费开源金融量化库,已在pypi官网和GitHub上发布,更新至1.3.5版本,添加了问财的数据访问功能,通过qstock.wencai('选股条件')调用。使用“pip install qstock ”进行安装,通过’pip install –upgrade qstock’进行更新。目前部分策略选股和策略回测功能仅供知识星球会员使用,会员可在知识星球置顶帖子上获取 qstock 的离线安装包。 关于 qstock 更详细的使用方法,请参考微信公众号Python金融量化 qstock 专题系列文章: 【qstock开源了】数据篇之行情交易数据 【qstock数据篇】行业概念板块与资金流 【qstock量化】数据篇之股票基本面数据 【qstock量化】数据篇之宏观指标和财经新闻文本 【qstock量化】动态交互数据可视化 【qstock量化】技术形态与概念热点选股池 【手把手你】使用qstock实现量化策略选股手把手你】使用qstock进行量化回测 基于qstock量化复盘与自动盯盘 下面为大家介绍qstock各模块的具体调用方式和应用举例。 ```python #导入qstock模块 import qstock as qs ``` # 数据模块 # 行情交易数据接口 ## 实时行情数据 获取指定市场所有标的或单个或多个证券最新行情指标 realtime_data(market='沪深A', code=None): - market表示行情名称或列表,默认'沪深A股', '沪深京A':沪深京A股市场行情; '沪深A':沪深A股市场行情;'沪A':沪市A股市场行情 '深A':深市A股市场行情;北A :北证A股市场行情;'可转债':沪深可转债市场行情; '期货':期货市场行情;'创业板':创业板市场行情;'美股':美股市场行情; '港股':港股市场行情;'中概股':中国概念股市场行情;'新股':沪深新股市场行情; '科创板':科创板市场行情;'沪股通' 沪股通市场行情;'深股通':深股通市场行情; '行业板块':行业板块市场行情;'概念板块':概念板块市场行情; '沪深指数':沪深系列指数市场行情;'上证指数':上证系列指数市场行情 '深证指数':深证系列指数市场行情;'ETF' ETF基金市场行情;'LOF' LOF 基金市场行情 - code:输入单个或多个证券的list,不输入参数,默认返回某市场实时指标 如code='中国平安',或code='000001',或code=['中国平安','晓程科技','东方财富'] ### 某市场所有标的最新行情 ```python #获取沪深A股最新行情指标 df=qs.realtime_data() #查看前几行 df.head() ``` ```python #获取期货最新行情指标 df=qs.realtime_data('期货') #查看前几行 df.head() ``` ```python #获 -------- 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值