找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2512

积分

0

好友

350

主题
发表于 4 天前 | 查看: 12| 回复: 0

在量化交易的体系中,策略开发是皇冠上的明珠,但在此之前,如何高效、科学地筛选出优质的交易标的,往往是决定策略成败的先决条件。对于T0交易(日内回转交易)而言,这一步骤尤为关键。本篇文章将分享一套系统的量化筛选框架,教你如何从海量ETF中,精准定位那些最适合网格策略的“完美震荡器”。

很多人对T0交易的印象停留在“高频”与“手速”上。实际上,对于大部分投资者和小型量化团队,基于网格(Grid Trading)的震荡策略更为稳健。这类策略不依赖对方向的精准预测,而是依赖于价格在特定区间内反复波动的特性,通过低买高卖赚取差价。

那么,什么样的标的才是网格策略的“梦中情标”?答案呼之欲出:震荡、活跃、有量。下面,我们将从数据获取到核心逻辑,再到代码实践,完整拆解这一筛选过程。

一、 数据准备:界定T0交易标的池

1. T0标的范围

受限于A股的T+1制度,我们通常聚焦于两类可实现日内回转交易的标的:

  • 制度性T0标的:主要包括跨境ETF(QDII)、债券ETF、黄金ETF、货币ETF等。它们在交易规则上明确允许当日买入并卖出,无需底仓,资金利用率高。
  • 底仓T0标的:通过持有股票底仓,进行当日的买卖对冲操作。

本系列首先聚焦于前者,因其逻辑纯粹,是实现自动化T0策略的理想起点。

2. 获取基础清单

主流量化接口(如MiniQMT)通常不直接提供“支持T0”的标签。我们可以从财经数据网站获取基础列表。例如,同花顺的ETF专区提供了相关筛选。

数据源示例:同花顺T0 ETF列表页面

手动从网页获取并维护清单效率低下。因此,一个更高效的做法是编写脚本自动抓取和更新。我已经整理好了一份持续更新的CSV清单,便于后续的本地化分析(获取方式见文末)。

3. 初步定性筛选

拿到基础清单后,我们可以进行第一轮快速的定性排除:

  • 货币型ETF:波动率极低,价格曲线近乎直线,扣除手续费后几无利润空间,建议直接剔除
  • 债券型ETF:整体波动较小,需根据具体债券类型(如国债、城投债)和久期进一步甄别。
  • 股票型/QDII ETF:涵盖纳指、恒生、日经等境外指数,通常波动性足、流动性好,是重点考察对象

定性筛选后,我们得到了一个待量化的“候选池”。接下来的核心问题是:如何从几十甚至上百个候选标的中,量化评估并排序出最适合T0的那一个?

二、 核心逻辑:逆向应用机器学习的“好信号”指标

筛选逻辑的灵感源于一篇关于设备寿命预测的机器学习论文《An attention-based stacked BiLSTM framework for predicting remaining useful life of rolling bearings》。

基于注意力机制的SBiLSTM轴承寿命预测论文摘要

论文的目标是寻找那些单调性好、趋势性强、可预测性高的“好信号”,以便于模型进行准确预测。然而,对于网格型T0策略,我们的目标恰恰相反!我们惧怕单边暴涨(易卖飞)或单边暴跌(易套牢),我们渴望的是高频、均值回归式的震荡

因此,我们将论文中的核心特征指标进行了巧妙的“逆向应用”。

评估信号质量的三个数学指标:单调性、趋势性与可预测性

1. 单调性 (Monotonicity)

  • 通俗理解:衡量价格在一段时间内是“一根筋”地朝一个方向运动,还是“来回摇摆”。单调性为1表示严格单边上涨或下跌;接近0则表示涨跌次数相当。
  • T0筛选逻辑越小越好。我们期望价格呈现完美的“锯齿状”震荡,而非单边行情。

2. 趋势性 (Trendability)

  • 通俗理解:衡量价格的长期“漂移”程度。即价格是在一个水平箱体内波动,还是伴随着明显的长期上涨或下跌趋势。
  • T0筛选逻辑越小越好。我们希望价格围绕中枢震荡,长期斜率接近0,这样网格策略最安全,不易因趋势性破位而失效。

3. 可预测性/预后性 (Prognosability)

  • 通俗理解:反映信号在失效阶段(类比价格大幅波动阶段)的变异程度。在金融时序中,可以理解为收益率序列的自相关性。高自相关意味着今天涨,明天很可能接着涨(趋势惯性)。
  • T0筛选逻辑适中或偏小为佳。过高的自相关性意味着趋势惯性大,不利于我们的“涨多就跌,跌多就涨”的均值回归假设。我们希望价格运动更接近随机游走。

核心思想总结:论文寻找的是“确定性”,而我们寻找的是 “稳定的、无序的波动性” 。这套逆向应用的机器学习思想,为我们的量化筛选提供了坚实的理论基石。

三、 实战风控:不可或缺的流动性与波动性指标

理想的形态需要搭配充足的“血液”(流动性)和合适的“心跳幅度”(波动率),才能构成一个可交易的标的。

4. 日内波动率 (Intraday Volatility)

  • 计算:每日(最高价-最低价)/开盘价的百分比,再取一段时间内的平均值。
  • 评分逻辑:寻找“甜点区”,例如 0.5% - 3.0%
    • < 0.5%:波动太小,利润难以覆盖交易成本。
    • > 3.0%:波动过大,单次亏损风险高,对网格间距和风控要求苛刻。
    • 0.5%~3.0%:最佳交易区间,有足够的波动空间产生利润,同时风险相对可控。

5. 流动性得分 (Liquidity Score)

流动性差的标的犹如陷阱,看似有机会,实则难以脱身。

  • 维度A:日均成交量:必须达到绝对门槛(例如>1000万元),确保大单进出滑点小。
  • 维度B:成交量稳定性:使用成交量序列的变异系数(CV)来衡量。CV越小,说明成交量全天分布均匀,流动性持续性好;CV过大则意味着成交量脉冲式爆发,可能长时间缺乏交易对手盘,极为危险。

四、 Python实践:从代码到可视化结果

理论需要实践验证。我构建了一套完整的Python自动化筛选框架,其核心结构如下:

T0_ETF筛选研究/
├── download_t0_etf_1min_data.py      # [第一步] 数据下载脚本
├── t0_etf_daily_metrics_screening.py # [第二步] 核心筛选算法脚本
├── visualize_t0_results.py           # [第三步] 结果可视化分析脚本
├── T0_ETF_List.csv                   # 基础 ETF 代码清单
└── README.md                         # 简要说明
  • download_t0_etf_1min_data.py: 利用量化接口(如xtquant)下载近一年的1分钟级K线数据。
  • t0_etf_daily_metrics_screening.py: 筛选引擎核心。遍历每个ETF,计算上述五大指标,并按权重进行综合打分(分数越低,排名越靠前)。
  • visualize_t0_results.py: 将筛选结果进行多维度可视化对比,生成分析图表。

加权模型设计

当前模型的权重分配体现了对风险因素的优先级排序(总分越低越好):

  • 趋势性 (Trend): 高权重(最重要,坚决规避单边市)
  • 单调性 (Mono): 中权重
  • 可预测性 (Prog): 中权重
  • 波动率 (Vol): 低权重(对过低或过高波动进行惩罚)
  • 流动性 (Liq): 低权重但有一票否决权(极差流动性直接淘汰)

筛选结果深度分析

运行代码后,我们得到了排序榜单。以下是基于模拟数据的分析展示(为避嫌,源码中加入了随机扰动,鼓励读者自行调参实践)。

说明:本文核心是分享量化筛选的思路与框架,非具体投资建议。提供的源码包含随机扰动,每次运行排名会有细微变化,以鼓励大家理解逻辑后,自行调整参数构建专属股票池。

1. 波动率分布:锁定“甜点区”

ETF日内波动率分布散点图

图表解读

  • 绿色区域(0.5%-3.0%)为定义的“甜点区”。
  • 前20名(绿点)几乎全部落在甜点区内,平均波动率约1.8%,完美契合T0需求。
  • 后20名(红方)平均波动率仅0.05%,形同“织布机”,无法产生有效利润。
  • 波动率差异高达36倍,直观展现了“活水”与“死水”的天壤之别。

实战启示:波动率是T0策略的“氧气”,必须将其作为首要筛选门槛。

2. ETF类别分布:揭示主力赛道

ETF类别分布对比分析图

图表解读

  • 全市场:QDII(境外)和行业主题ETF是主力。
  • 前20名QDII、商品型(如黄金、原油)、Smart Beta ETF占比最高。它们通常跟踪境外指数或大宗商品,波动来源丰富,容易形成日内震荡。
  • 后20名货币基金占绝对主导。这验证了我们初步筛选时将其剔除的正确性。
  • 结论:应重点关注跨境、商品及策略型ETF,主动避开货币型等低波品种。
3. 优劣标的走势对比

优质标的特征(高分示例):高频震荡,流动性均匀。

优质T0标的分钟线价格与成交量图

  • 价格频繁穿越均线:呈现明显的均值回归特性。
  • 无极端走势:日内无突发性暴涨暴跌,走势平稳。
  • 成交量连续:全天交易活跃,没有长时间的断层,利于随时进出。

劣质标的特征(低分示例):低波死水,毫无生气。

劣质T0标的分钟线价格与成交量图

  • 价格近乎直线:波动极小,完全没有交易空间。
  • 成交量低迷:市场关注度极低,流动性风险大。

通过这套系统的量化分析框架,我们得以超越主观经验,用数据驱动的方式,从数百个标的中快速、精准地定位出那些最适合T0网格策略的“完美震荡器”。

五、 总结与后续

至此,我们完成了T0交易万里长征的第一步——科学地筛选交易标的。我们不仅获取了数据,更建立了一套融合了逆向机器学习思想、流动性风控和波动率管理的综合量化打分模型。

下一步,我们将基于这份精选的“白名单”,深入探讨如何构建一个自适应网格交易策略,包括网格间距的动态调整、仓位管理以及回测验证,从而将“好标的”转化为“好策略”。欢迎在云栈社区继续关注后续的技术分享与讨论。


附:资源获取提示
本文涉及的完整T0 ETF基础清单Python筛选框架源码,已整理归档。读者可通过技术社区或知识库平台进行查找与学习交流,以复现和优化本文所述的完整流程。




上一篇:程序员接私活被中间商赚差价,该如何应对与防范?
下一篇:飞书AI录音豆深度体验:一款为飞书生态用户量身打造的会议提效硬件
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-24 02:48 , Processed in 0.400734 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表