a股量化择时策略设计框架简单例子

核心理念: 在A股市场,利用15分钟K线捕捉短期趋势,通过动态筛选最适合该策略的活跃品种,结合严格的风险管理和自动化交易,实现持续盈利。

完整框架:

+-------------------------+      +-------------------------+      +------------------------------+
|  1. 数据获取与处理       | ---> |  2. 策略逻辑设计         | ---> |  3. 选股/品种选择 (实盘核心) |
|  (Data Acquisition)     |      |  (Strategy Logic)       |      |  (Universe Selection - Live)|
+-------------------------+      +-------------------------+      +------------------------------+
          |                                                                |
          |                                                                V
+-------------------------+      +-------------------------+      +-------------------------+
|  6. 回测框架             | <--- |  5. 投资组合构建与风控   | <--- |  4. 动态监控与过滤       |
|  (Backtesting)          |      |  (Portfolio & Risk Mgmt)|      |  (Dynamic Monitoring)   |
+-------------------------+      +-------------------------+      +-------------------------+
          |
          V
+-------------------------+
|  7. 交易执行系统         |
|  (Trading Execution)    |
+-------------------------+
          |
          V
+-------------------------+
|  8. 监控与持续优化       |
|  (Monitoring & Opt.)    |
+-------------------------+

详细设计:

1. 数据获取与处理 (Data Acquisition & Processing)

  • 数据源: 可靠的金融数据服务商 (Wind, Choice, Tushare Pro, JoinQuant, RiceQuant等) 或券商API。
  • 所需数据:
    • 核心: A股个股 15分钟 K线 (OHLCV),至少覆盖3-5年历史。
    • 选股用:
      • 日 K线数据 (用于计算中长期指标、波动率、流动性)。
      • 个股基础信息 (上市日期、行业、市值、是否ST/*ST)。
      • 财务简要 (如 PE, PB - 可选,用于排除极端估值)。
      • 股东信息 (如限售解禁日期 - 可选,用于规避风险)。
    • 辅助: 复权因子、交易日历、指数行情。
  • 数据处理: 清洗、前复权处理、高效存储 (数据库/HDF5)、指标预计算。

2. 策略逻辑设计 (Strategy Logic Design)

  • 趋势识别: (同前) 双均线交叉 (如EMA10/EMA30)、MACD信号、布林带突破、通道突破 (如Donchian 20周期)、ADX > 25 且 +DI > -DI 等,或其组合。
  • 入场信号: 满足趋势识别条件 + 可选过滤 (如成交量放大、大盘指数位于均线上方)。
  • 出场信号:
    • 核心止损: ATR 止损 (如买入价 - 2 * ATR 或 K线最低价 - 1.5 * ATR)。
    • 核心跟踪止损: ATR 跟踪止损 (如 max(前期跟踪止损位, 当前最高价 - 2.5 * ATR))。 这是让利润奔跑的关键
    • 趋势反转信号: 如 短均线下穿长均线 作为辅助离场信号。
    • 时间止损: (可选)持有超过 N 根 K线未有进展则离场。
  • A股特性考虑: T+1、涨跌停处理(回测模拟撮合,实盘订单管理)。

3. 选股/品种选择 (Universe Selection - 实盘核心)

  • 目标: 动态筛选出当前阶段流动性好、波动适中、可能更容易产生15分钟级别趋势的股票池,作为策略信号的触发范围。此过程需自动化,并在实盘中定期执行。

  • 执行频率: 建议每日开盘前执行一次,或每周最后一个交易日收盘后执行一次,生成下一个交易日/周的股票池。过于频繁(如盘中)可能引入过多噪音且增加复杂度。

  • 流程设计:

    • 步骤一:基础池筛选 (静态/半静态,频率较低,如每月或每季更新)

      1. 市场范围: 如沪深主板、创业板、科创板 (根据策略适应性选择)。
      2. *剔除ST/ST: 排除风险警示股票。
      3. 剔除上市时间过短: 如上市不足 6 个月。
      4. 剔除长期低流动性: 如过去 60 个交易日日均成交额低于 5000 万 或 1 亿元人民币。
      5. 剔除特定行业(可选): 如果策略在某些行业表现不佳(如银行、公用事业波动小),可以剔除。
      • 产出:一个相对稳定的基础股票池。
    • 步骤二:动态活跃池筛选 (核心,频率较高,如每日开盘前)

      • 输入: 基础股票池。
      • 筛选指标 (针对15分钟趋势策略):
        1. 近期流动性 (关键):
          • 计算过去 N (如 5-10) 个交易日的日均成交额。设定阈值 (如 > 2 亿元)。
          • 计算过去 M (如 1-3) 个交易日的15分钟平均成交量/额。确保短周期也有足够的交易活动。
        2. 近期波动率 (关键):
          • 计算基于日线数据的 ATR (平均真实波幅) 的百分比 (ATR / Close),衡量相对波动。
          • 计算过去 P (如 10-20) 根 15分钟 K 线的 ATR
          • 目标:选择波动率适中偏上的股票。波动太小没趋势,波动异常大(如连续一字板后开板)风险高。可以设定一个ATR百分比范围 (如 日线 ATR% 在 1.5% - 7% 之间)。
        3. 短期趋势/动量 (辅助):
          • 日线级别:价格位于 N 日均线 (如 MA20) 之上。
          • ADX (日线):ADX > 20 或 25,表明可能处于趋势中。
          • 近期涨跌幅 (如 5日/10日 收益率) 为正。
      • 排名与选择:
        • 对基础池中的股票,计算上述动态指标。
        • 可以给每个指标打分并加权,得到一个综合“活跃度/趋势潜力”得分。例如:Score = 0.4*Norm(流动性) + 0.4*Norm(波动率) + 0.2*Norm(趋势动量) (权重可调整优化)。
        • 按得分从高到低排序。
        • 选择排名前 N 只 (如 Top 50 或 Top 100) 的股票,形成当日/本周的交易标的池 (Active Pool)
      • 产出:一个规模较小、动态更新的、适合策略运行的股票列表。
  • 实盘整合:

    • 选股程序作为独立模块,按设定频率运行,生成最新的 active_pool.txt 或存入数据库。
    • 主交易策略程序在每日初始化时加载这个最新的 active_pool
    • 策略引擎只监控和处理 active_pool 中股票的15分钟行情数据,并只对这些股票产生交易信号。

4. 动态监控与过滤 (与选股配合)

  • 盘中实时过滤:
    • 涨跌停过滤: 如果股票已涨停,取消新的买入信号;如果已跌停,取消新的卖出信号(或尝试排队)。
    • 流动性突降: (可选,较复杂)如果某只股票盘中流动性突然枯竭(如连续多根15分钟K线成交稀疏),可以临时暂停对其发出新信号。
    • 临时黑名单: 对于盘中发布重大利空消息、收到监管函、或即将除权除息影响较大的股票,可以手动或通过特定数据源接口加入临时禁止交易列表。

5. 投资组合构建与风控 (Portfolio Construction & Risk Management)

  • 资金分配:
    • 核心原则: 基于单笔风险控制头寸。
    • 计算公式: 头寸股数 = (总权益 * 单笔风险百分比 R%) / (入场价 - 初始止损价)。R% 通常设为 0.5% - 2%。
    • 波动率调整 (推荐): 头寸股数 = (总权益 * 单笔风险百分比 R%) / (N * ATR) (使用入场时的ATR)。N通常为2-3。这使得每笔交易的初始风险大致相当。
  • 组合层风控:
    • 最大持仓数量: 限制同时持有的股票不超过 M 只 (如 5-15 只)。
    • 单票最大仓位: 单只股票市值不超过总权益的 X% (如 10% 或 15%)。
    • 总风险敞口: 所有持仓的(初始风险之和)或(当前价值 - 跟踪止损价)之和,不超过总权益的 Y% (如 10%)。
    • 行业/风格分散 (可选): 尽量避免持仓过度集中于同一行业。
  • 信号优先级: 当资金不足以响应所有买入信号时:
    • 按信号强度排序(如MACD柱状线高度、突破幅度)。
    • 按选股排名排序(优先买入活跃度/趋势潜力得分高的)。
    • 随机选择。

6. 回测框架 (Backtesting Framework)

  • 引擎: Backtrader, Zipline, vn.py, 在线平台, 自建。
  • 关键设置:
    • 严格模拟选股: 回测时必须模拟每日/每周的选股过程,使用当时的历史数据进行筛选,避免未来函数。
    • 精确成本模拟: 手续费 (双边万2.5左右)、印花税 (卖出千1)、滑点 (15分钟级别至少模拟1-2个最小价格变动单位,或按成交量比例模拟)。
    • T+1 限制: 严格遵守。
    • 涨跌停无法成交模拟: 必须加入。
    • 分红配股处理: 基于复权因子调整持仓成本和数量。
  • 评估指标: (同前) 年化收益、夏普、索提诺、最大回撤、卡玛、胜率、盈亏比、持仓周期、交易频率。重点关注回撤控制收益稳定性
  • 健壮性检验: (同前) 样本外、参数敏感性、蒙特卡洛。

7. 交易执行系统 (Trading Execution)

  • 自动化: 必须自动化。
  • 技术方案: 券商API (NATP, XTP, CTP) + 交易平台 (vn.py 或 自建系统)。
  • 订单管理:
    • 订单类型: 考虑使用限价单并进行追价/超价以提高成交率,同时控制滑点。例如,买入时以 盘口卖一价 + N * 最小变动单位 下单,卖出时以 盘口买一价 - N * 最小变动单位 下单。N需要测试平衡成交率和成本。
    • 撤单逻辑: 对于未能立即成交的限价单,设定超时撤单或价格偏离过大时撤单重发机制。
    • 状态监控 & 异常处理: (同前)
  • 部署: 稳定、低延迟的服务器。

8. 监控与持续优化 (Monitoring & Optimization)

  • 实时监控: (同前) 系统、账户、信号、风控指标、报警。特别关注选股池的变化实际成交滑点
  • 绩效归因: 定期分析盈利和亏损来源。哪些股票/行业贡献最大?选股模块是否有效?止损/止盈设置是否合理?
  • 策略迭代:
    • 根据实盘反馈调整选股指标和阈值
    • 优化策略参数 (均线周期、ATR倍数等),但避免过度拟合。
    • 审视风险管理规则是否需要调整。
    • 适应市场风格变化,可能需要调整策略逻辑或增加过滤条件。

总结:

这个强化的框架将“选股”提升到了一个动态、核心的地位。对于A股的15分钟趋势跟踪策略,能否持续找到适合趋势交易的活跃品种,是策略成败的关键之一。实盘中,这个选股模块需要和交易执行、风险管理紧密结合,并能够根据市场反馈进行调整优化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值