在通达信策略池中,“差集”是用于对不同策略池结果进行逻辑运算的功能,核心作用是从一个策略池的结果中,剔除掉另一个策略池已包含的股票,最终得到“只在A池存在、不在B池存在”的股票集合。这在筛选中常用于“排除特定类型股票”,例如“从初选股票中排除高风险股”“从强势股中排除近期已大涨的股票”等。 一、差集的基本逻辑假设有两个策略池: - • A池:筛选出的“候选股票”(例如“均线多头排列的股票”)
- • B池:需要排除的“剔除股票”(例如“近3天涨幅超过20%的股票”)
通过“差集(A-B)”运算,最终结果为:A池中存在、但B池中不存在的股票(即“均线多头排列且近3天涨幅≤20%的股票”)。 二、策略池中使用差集的步骤1. 准备两个基础策略池首先需要创建两个独立的策略池(或使用已有策略池),分别作为“被减池(A)”和“减池(B)”。 - • 例:
- • 策略池A:公式为“MA(C,5)>MA(C,10) AND MA(C,10)>MA(C,20)”(均线多头排列)。
- • 策略池B:公式为“(C/REF(C,3)-1)*100>20”(近3天涨幅超20%)。
2. 新建“差集策略池”在策略池界面(通过“功能→策略池”打开),按以下步骤操作: - • 步骤1:插入“差集”节点
在左侧工具栏中,找到“逻辑运算”分类下的“差集”节点,拖拽到策略池编辑区。 - • 步骤2:连接基础池与差集节点
- • 将“策略池A”的输出线连接到“差集”节点的第一个输入口(“被减集合”,即A)。
- • 将“策略池B”的输出线连接到“差集”节点的第二个输入口(“减集合”,即B)。
(注意:输入口顺序不能反,否则会得到“B-A”的错误结果)
- • 步骤3:设置差集节点参数(可选)
双击“差集”节点,可设置“保留数量”(如限制最终结果最多N只股票)、“排序方式”(如按涨幅从高到低排序)等,默认保留全部符合条件的股票。
3. 运行策略池并查看结果- • 点击策略池界面的“运行”按钮,系统会自动计算:
差集结果 = 策略池A的股票 - 策略池A与B的交集(即A中剔除B包含的股票)。 - • 结果可通过“输出节点”(拖拽“输出”节点连接到差集节点,命名后运行)保存到指定板块,或直接在界面查看。
三、实际应用场景举例- 1. 排除自选股中的垃圾股:
- • A池:自选股板块(全部自选股)。
- • B池:公式“FINANCE(33)<0”(净利润为负的亏损股)。
- • 差集(A-B):自选股中剔除亏损股后的股票。
- 2. 筛选“首次符合条件”的股票:
- • A池:当日符合“MACD金叉”的股票。
- • B池:昨日已符合“MACD金叉”的股票(需通过“历史回测”或“昨日结果保存”实现)。
- • 差集(A-B):当日新出现MACD金叉、且昨日未金叉的股票(排除持续金叉的股票)。
四、注意事项- 1. 策略池运行顺序:差集依赖A、B两个池的结果,需确保A、B池先运行完毕(策略池会自动按连接顺序执行,无需手动调整)。
- 2. 数据时效性:若A、B池涉及实时数据(如涨跌幅),需确保数据更新后再运行差集,避免结果偏差。
- 3. 空集处理:若B池包含A池的所有股票,差集结果为空;若B池为空,差集结果等于A池全部股票。
通过差集功能,可灵活实现“先选后筛”的逻辑,让策略池结果更贴合实际需求。
|