01
引言
在A股市场,随着上市公司数量的不断增长,投资者面临的选择也越来越多。然而,面对这样一个庞大而复杂的市场,如何从中挖掘出真正具有投资潜力的公司,便成了一项至关重要的任务。在这样的市场环境中,简单的直觉或基本的财务数据分析已远远不够。因此,投资者需要依靠强大的分析工具,以科学的方法来识别那些不仅财务健康而且具备成长潜力的公司。
qstock 正是为满足这一需求而设计的量化分析工具。它能够帮助投资者高效地从大量财务信息中筛选出关键数据,从而简化决策过程。随着最新一季的财务报告陆续公布,本文将介绍如何利用qstock的数据、可视化和回测功能,通过最新财务指标分析和筛选出A股市场中的优质投资机会,为读者量化选股提供参考。
关于 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)
在从利润表数据筛选出具有高增长潜力的股票之后,进一步分析这些股票的市场表现。利用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())
通过合并财务指标和股票市场表现数据,能够获得一个全面的视图,评估公司的历史财务表现和股市表现。在上述代码实现的过程中,首先合并了具有高增长财务指标的股票列表和这些股票的历史收益率数据。然后,通过对120日收益率进行排序,可以观察到哪些股票在过去几个月表现最为出色。
#合并数据
result=pd.concat([profit,returns],axis=1)
#以最近20日收益率排名
result.sort_values('120日收益率%',ascending=False)
在对公司的财务表现和市场收益率进行综合分析后,为了更深入地了解个股的市场行为,绘制K线图是一个非常有用的方法。通过使用qstock工具,我们可以方便地生成调整后的K线图(Heikin-Ashi K线),这种K线图帮助投资者更清晰地识别市场趋势和潜在的转折点。Heikin-Ashi K线图是一种通过平均价格数据来平滑价格波动的技术,可以帮助投资者减少市场“噪音”,更清楚地看到价格趋势。这种图表不仅提供了价格的开盘、收盘、最高和最低四个基本点,而且通过颜色变化直观地显示出市场是在上涨还是下跌。这对于希望跟踪股票近期表现并预测未来走势的投资者来说,是一个非常有价值的工具。下图展示的是筛选结果result中的扬电科技的价格修正K线图。
#修正K线图
qs.HA_kline(qs.get_data(result.index[0])[-200:])
下面使用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)
为了更深入地了解特定公司的业务结构和主营业务的收入分布,可以通过可视化的方式呈现其主营业务构成。下面代码展示了如何使用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('新易盛')
继续深入分析,了解公司的关键财务指标是投资决策过程中不可或缺的一环。通过qstock工具,我们可以快速检索特定股票的基本财务信息。codes是前面筛选出来的个股,通过stock_basics函数可以快速获取股票列表的核心财务指标,为我们进一步结合其他财务指标筛选个股提供便利的手段。
#查看上述个股关键财务指标
qs.stock_basics(codes)
03
结语
qstock展示了其在股票分析和选股中的强大功能,仅需简单几行代码,用户就能实现从数据获取、可视化分析到选股和量化回测的全流程功能。这种高效的集成能力使得qstock成为投资者在A股市场中寻找高成长潜力公司时的有力工具。
然而,尽管qstock在处理和分析财务数据方面表现出色,基本面财务指标选股仍有其局限性和滞后性。这些财务指标通常反映的是公司的过去表现,可能无法及时反映市场动态、经济变化或行业趋势。因此,为了实现更全面和均衡的投资策略,投资者应结合技术分析、市场情绪和宏观经济数据,以适应快速变化的市场环境,确保投资决策的及时性和有效性。
关于Python金融量化
专注于分享Python在金融量化领域的应用。加入知识星球,可以免费获取qstock源代码、30多g的量化投资视频资料、量化金融相关PDF资料、公众号文章Python完整源码、与博主直接交流、答疑解惑等。添加个人微信sky2blue2可获取相关优惠。