量化交易qmt使用原生python进行低价股分析(附代码)

最近有看到小伙伴对于低价股热情高涨,我今天就用数据分析分析一下,低价股到底行不行?

一、分析动机

我们想知道:A股市场上,是高价股表现更好,还是低价股更占优势?

如果低价股表现更强,我们的策略可以适当加仓;反之,则需要关注高价股的避险属性。

二、分析步骤

1、历史行情数据下载

首先我们通过xtquant miniQMT把历史行情下载到本地feather文件,行情文件包括

Code、date、open 、high、low、close、preClose、volume、amount列。代码如下:

2、把行情读取到内存

通过简单的循环我们将需要的数据读取到内存中。

3、按价格分组

这里根据某日的价格把股票按照价格分成10组,1组表示价格最低的股票,10组表示价格最高的股票。

这里用到了一个qcut方法,它会把数据分成指定的数量 q个区间,每个区间内的数据数量尽量相等(数量均分,而不是值均分!)。比如你有 100 个股票的收盘价,pd.qcut(..., 10) 就是 分成10组,每组大约 10 个股票(如果数据量能整除的话)。

4、数据统计

统计每个分组从n日开始到最新收盘价平均涨幅情况。

我们通过上一章,完成了数据处理过程的代码编写,这一章,我们来看看效果如何。

把收益绘制出来方便对比,

结果如下:

从图上我们可以看到10组的平均收益要明显高于其它分组,说明高价龙头股是这段时间的市场主线,资金主要集中在这类股票。9月2日指数回调,近4000家个股下跌,除了1组其它回调都很大,可以从侧面验证资金可能开始切换到低价股了。

接下来,统计下每个分组这一段时间涨跌停情况首先是一个计算涨跌停的方法,这里没考虑st的情况,在下载历史数据的时候我们已经用这个方法把涨跌停价格存放到行情数据文件里了。

我们先统计下每个分组从start_date开始累计涨跌停次数,

这是从2025-08-25到2025-09-02的统计数据,

结果分析:

1、涨停次数分布

l 最高:第 10 组(59 次)、第 1 组(57 次)、第 5 组(54 次)、第 7 组(52 次)

l 最低:第 2 组(32 次)、第 9 组(36 次)、第 8 组(38 次)

l 两头强,中间弱:低价组(1 组)和高价组(10 组)最活跃,涨停最多;中间分组(2、8、9 组)相对沉寂。

结论:

l 低价股 → 资金少,容易被资金炒作拉涨停;

l 高价股 → 可能集中在热门题材龙头,强势股更容易连续涨停;

l 中间价位股 → 缺乏资金关注,涨停活跃度不高。

2、跌停次数分布

l 最多跌停:第 10 组(8 次)、第 8 组(7 次)、第 7/6/4 组(各 6 次)

l 最少跌停:第 1 组(1 次)、第 2 组(1 次)

结论:

l 高价股风险更大:第 10 组虽然涨停最多,但跌停也最多,说明波动更剧烈,风险和收益并存。

l 低价股防守性好:第 1 组不仅涨停最多(57 次),而且跌停最少(仅 1 次),说明资金在低价股里推拉比较容易,但往下砸得少。

3、强弱对比

l 性价比最高的分组:第 1 组(57 涨停 / 1 跌停),涨跌比 57:1,胜率非常高。

l 高风险高收益分组:第 10 组(59 涨停 / 8 跌停),资金偏好强势龙头,但波动大。

l 不活跃分组:第 2、8、9 组(涨停次数明显偏低,同时跌停次数也不低),说明资金关注度弱。

4、启示

如果做短线博弈:第 1 组和第 10 组是资金最活跃的主战场。

如果偏好低风险套利:第 1 组更优,涨停多跌停少。

如果偏好高风险高收益:第 10 组可以捕捉龙头行情,但要小心回撤。

中间分组(2、8、9)几乎没有性价比,既不活跃也风险不低,可以忽略。

总结:

总的来说这段时间资金极度偏好高价龙头股(第10组),而低价股虽然有涨停效应,但难以带来持续收益,中间价位的股票几乎没有存在感。不过9月2日低位股回调最小,也可以从侧面说明高低切,低价股开始启动。

总结

关注"叩富问财"公众号,回复"资深吴经理",联系专属客户经理开通量化交易权限!

立即行动:打开微信,搜索"叩富问财",在对话框中输入"资深吴经理",开启你的量化交易之旅!



温馨提示:投资有风险,选择需谨慎。

相关文章