一、交易池的本质:什么是交易池?为什么需要筛选?

1.1 交易池到底是什么?

先问大家一个问题:你打开交易软件,看到几千只股票,你会怎么选?

我刚开始做量化的时候,也是这么干的——把所有股票都拉进来,跑策略。结果呢?回测曲线漂亮得像假的一样,实盘一跑就崩。后来我才明白,问题出在「池子」上。

交易池,说白了就是你的「候选股票清单」。

它不是选股结果,而是选股的起点。就像钓鱼,你不能把整个大海都当成你的鱼塘,你得先圈定一片水域,再决定下钩的位置。

我个人习惯把交易池比作「食材预处理」——你不可能把整个菜市场的菜都买回来,然后边炒边挑。你得先筛选出新鲜的、符合你口味的食材,再考虑怎么做菜。

核心定义:交易池 = 经过初步筛选后,符合基本条件的股票集合。它是策略执行的「候选池」,而非「最终持仓」。

1.2 为什么需要筛选?

你想想看,A股现在5000多只股票。如果全量跑策略,会有什么问题?

  • 计算资源爆炸:每只股票都要算指标、跑模型,5000只跑一遍,服务器直接冒烟。我当年用个人电脑跑全市场,一个回测跑了三天三夜,结果还死机了。
  • 信号噪音太大:很多股票流动性差、波动异常,它们的数据会污染你的策略信号。说白了,垃圾进,垃圾出。
  • 策略失效风险:全市场选股,你的策略等于在跟所有对手博弈。而筛选后的交易池,能帮你聚焦在「高概率区间」。

嗯,这里要注意:筛选不是「预测」,而是「排除」。我们排除掉那些明显不适合交易的股票,剩下的就是相对干净的池子。

我的经验:交易池的筛选标准,应该比选股策略更「宽松」。选股策略是精挑细选,交易池是「剔除明显不合格的」。别把门槛设太高,否则池子太小,策略施展不开。

1.3 交易池 vs 选股策略:本质区别

这个问题我经常被问到:「交易池和选股策略,不都是选股票吗?」

还真不是。我画个图你就明白了。

交易池 vs 选股策略:分层筛选流程 全市场股票(5000+) 交易池筛选(剔除不合格) 流动性、市值、ST、停牌等硬性条件 优质交易池(800-1500只) 选股策略(最终持仓,10-30只) 宽进 中间层 严出

看到了吗?这是一个漏斗结构。

  • 交易池:宽进严出的第一道关卡。条件宽松,主要剔除「明显不能碰」的股票。
  • 选股策略:在交易池的基础上,用更精细的模型做最终决策。

我曾经犯过一个错误:把选股策略的条件直接用在交易池筛选上。结果池子太小,策略选来选去就那几只股票,完全失去了分散化的意义。后来我改成「先宽后严」,效果好了很多。

维度 交易池筛选 选股策略
目的 排除不合格标的 精选最优标的
条件数量 3-5个硬性条件 10-20个综合指标
更新频率 每周/每月 每日/实时
股票数量 800-1500只 10-30只
容错率 高(允许漏网) 低(追求精准)

1.4 交易池的常见筛选维度

那具体怎么筛?我列几个最常用的维度,都是我在实战中踩过坑后总结出来的。

  1. 流动性筛选:日均成交额低于1000万的,直接剔除。为什么?你买进去容易,卖出来难。我曾经吃过这个亏,一只票持仓5%,结果卖了三天才出完,滑点吃掉了一半利润。
  2. 市值筛选:市值低于10亿的,小心。不是说小市值不能做,而是波动太大,容易被操纵。我个人习惯把市值下限设在20亿。
  3. 状态筛选:ST、*ST、停牌、退市预警的,一律剔除。这个不用解释,踩雷的代价太大了。
  4. 行业筛选:如果你做的是行业中性策略,这一步可以跳过。但如果你有行业偏好,比如只做科技股,那就把其他行业先筛掉。

避坑指南:我曾经把「市盈率低于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 小结

交易池的本质,就是帮你把「不能碰」的股票先排除掉,留下一个相对干净的候选池。它跟选股策略的区别在于:交易池是「排除法」,选股策略是「优选法」。

记住这个漏斗思维:全市场 → 交易池 → 选股策略 → 最终持仓。每一步都在缩小范围,每一步都有明确的目的。

下一章,我会讲具体的筛选指标怎么设计,以及如何避免常见的筛选陷阱。咱们到时候见。


专注资料整理