一、交易池的本质:什么是交易池?为什么需要筛选?
1.1 交易池到底是什么?
先问大家一个问题:你打开交易软件,看到几千只股票,你会怎么选?
我刚开始做量化的时候,也是这么干的——把所有股票都拉进来,跑策略。结果呢?回测曲线漂亮得像假的一样,实盘一跑就崩。后来我才明白,问题出在「池子」上。
交易池,说白了就是你的「候选股票清单」。
它不是选股结果,而是选股的起点。就像钓鱼,你不能把整个大海都当成你的鱼塘,你得先圈定一片水域,再决定下钩的位置。
我个人习惯把交易池比作「食材预处理」——你不可能把整个菜市场的菜都买回来,然后边炒边挑。你得先筛选出新鲜的、符合你口味的食材,再考虑怎么做菜。
核心定义:交易池 = 经过初步筛选后,符合基本条件的股票集合。它是策略执行的「候选池」,而非「最终持仓」。
1.2 为什么需要筛选?
你想想看,A股现在5000多只股票。如果全量跑策略,会有什么问题?
- 计算资源爆炸:每只股票都要算指标、跑模型,5000只跑一遍,服务器直接冒烟。我当年用个人电脑跑全市场,一个回测跑了三天三夜,结果还死机了。
- 信号噪音太大:很多股票流动性差、波动异常,它们的数据会污染你的策略信号。说白了,垃圾进,垃圾出。
- 策略失效风险:全市场选股,你的策略等于在跟所有对手博弈。而筛选后的交易池,能帮你聚焦在「高概率区间」。
嗯,这里要注意:筛选不是「预测」,而是「排除」。我们排除掉那些明显不适合交易的股票,剩下的就是相对干净的池子。
我的经验:交易池的筛选标准,应该比选股策略更「宽松」。选股策略是精挑细选,交易池是「剔除明显不合格的」。别把门槛设太高,否则池子太小,策略施展不开。
1.3 交易池 vs 选股策略:本质区别
这个问题我经常被问到:「交易池和选股策略,不都是选股票吗?」
还真不是。我画个图你就明白了。
看到了吗?这是一个漏斗结构。
- 交易池:宽进严出的第一道关卡。条件宽松,主要剔除「明显不能碰」的股票。
- 选股策略:在交易池的基础上,用更精细的模型做最终决策。
我曾经犯过一个错误:把选股策略的条件直接用在交易池筛选上。结果池子太小,策略选来选去就那几只股票,完全失去了分散化的意义。后来我改成「先宽后严」,效果好了很多。
| 维度 | 交易池筛选 | 选股策略 |
|---|---|---|
| 目的 | 排除不合格标的 | 精选最优标的 |
| 条件数量 | 3-5个硬性条件 | 10-20个综合指标 |
| 更新频率 | 每周/每月 | 每日/实时 |
| 股票数量 | 800-1500只 | 10-30只 |
| 容错率 | 高(允许漏网) | 低(追求精准) |
1.4 交易池的常见筛选维度
那具体怎么筛?我列几个最常用的维度,都是我在实战中踩过坑后总结出来的。
- 流动性筛选:日均成交额低于1000万的,直接剔除。为什么?你买进去容易,卖出来难。我曾经吃过这个亏,一只票持仓5%,结果卖了三天才出完,滑点吃掉了一半利润。
- 市值筛选:市值低于10亿的,小心。不是说小市值不能做,而是波动太大,容易被操纵。我个人习惯把市值下限设在20亿。
- 状态筛选:ST、*ST、停牌、退市预警的,一律剔除。这个不用解释,踩雷的代价太大了。
- 行业筛选:如果你做的是行业中性策略,这一步可以跳过。但如果你有行业偏好,比如只做科技股,那就把其他行业先筛掉。
避坑指南:我曾经把「市盈率低于50」作为交易池的筛选条件,结果池子里全是银行股和周期股,策略完全跑偏。记住:交易池的筛选条件应该是「硬性排除」,而不是「主观偏好」。市盈率这种主观指标,留给选股策略去处理。
1.5 交易池的维护与更新
交易池不是建好就不管了。市场在变,股票的基本面也在变。
我一般按以下节奏维护:
- 每周更新:检查是否有新增的ST、停牌、退市预警
- 每月更新:重新跑一遍流动性、市值等硬性条件
- 季度更新:结合财报数据,调整行业分类
嗯,这里有个小技巧:不要把交易池的更新频率设得太高。太频繁的更新会导致策略信号不稳定,你今天选的股票,明天可能就不在池子里了,这会让你的持仓管理变得很麻烦。
我的习惯:交易池的代码我会单独写一个模块,跟选股策略完全解耦。这样改交易池的时候,不会影响到策略逻辑。代码结构大概是这样的:
# 交易池筛选模块
def build_trading_universe():
# 1. 获取全市场股票列表
all_stocks = get_all_stocks()
# 2. 硬性条件筛选
filtered = all_stocks[
(all_stocks['avg_daily_amount'] > 10e7) & # 日均成交额>1000万
(all_stocks['market_cap'] > 20e8) & # 市值>20亿
(~all_stocks['is_st']) & # 非ST
(all_stocks['status'] == 'normal') # 正常交易
]
return filtered['code'].tolist()
1.6 小结
交易池的本质,就是帮你把「不能碰」的股票先排除掉,留下一个相对干净的候选池。它跟选股策略的区别在于:交易池是「排除法」,选股策略是「优选法」。
记住这个漏斗思维:全市场 → 交易池 → 选股策略 → 最终持仓。每一步都在缩小范围,每一步都有明确的目的。
下一章,我会讲具体的筛选指标怎么设计,以及如何避免常见的筛选陷阱。咱们到时候见。