BigQuant使用文档

110-低波高活跃策略

由bqbcl5zr创建,最终由small_q 被浏览 40 用户

策略介绍

本策略旨在选取波动率低但活跃度高作为选股因子,观察了等权持股20只,持仓20天的策略表现。该策略的盈利逻辑基于对低波动率和高活跃度股票的选择。低波动率通常意味着股价波动较小,相对稳定,有助于降低投资风险。同时,高活跃度的股票通常具有较高的流动性和交易活跃度,有利于投资者在短期内快速买卖。通过在波动率低但活跃度高的股票中进行筛选和排序,该策略旨在捕捉这些潜在的优质投资标的。

策略流程

  1. 股票池过滤:剔除ST股、停牌股、北交所
  2. 筛选条件:选取前240个交易日波动率最低的前30%、前7天股票的换手率最高的前30%股票
  3. 排序条件:根据60天波动率、120天波动率、15天交易量计算得分,按照得分从大到小排序
  4. 策略回测:持股20只等权重、持仓20天、回测时间为2021-01-01至2024-04-26

策略实现

A股-基础选股模块

  • 在”交易所“一栏中,取消勾选”北交所“
  • 在”上市板块“一栏中,取消勾选”北交所“
  • 在”ST状态“一栏中,取消勾选”ST“与”*ST“
  • 最后勾选”过滤停牌“
  • 其他选项保留默认

输入特征模块

  • c_zscore(m_nanstd(daily_return, 60)) AS volatility_60就是计算标准化后的60日波动率
  • c_zscore(m_nanstd(daily_return, 120)) AS volatility_120就是计算标准化后的120日波动率
  • c_zscore(m_avg(volume, 15)) AS volume_15就是计算标准化后的15日平均交易量
  • -1 * (volatility_60 + volatility_120) + volume_15 as score 计算得分
  • m_nanstd(daily_return, 240) AS volatility_240m_lag(turn, 7) AS turn_7 分别计算前240个交易日波动率和前7天股票的换手率,用于下面的筛选条件。
  • 以上提到的字段,例如daily_returnvolumeturn,全部来自cn_stock_prefactors表中

  • m2”输入特征(DAI SQL)“的”表达式过滤条件“一栏中,实现筛选条件
  • c_pct_rank(volatility_240) <= 0.3 c_pct_rank(turn_7) >= 0.7
  • 选取出前240个交易日波动率最低的前30%、前7天股票的换手率最高的前30%股票

数据抽取模块

m3数据抽取模块,输入回测起始和截止时间

仓位分配模块

  • 在”评分score字段排序“一栏,选择按照score排序,并且是降序排序DESC
  • 在”持仓股票数量“一栏中输入20,表示持股20只

在”仓位公式“一栏中输入1 AS position,表示等权持仓(将仓位分为20等份,每个股票在仓内占1份)

BigTrader模块

  • 最后,在m7”BigTrader“模块中,实现交易逻辑,由于交易逻辑较简单,我们不用改函数,我们只需在”调仓周期日期“一栏中填20,表示每20个交易日调仓。

策略源码

https://bigquant.com/codesharev2/a200da88-02a6-46b0-b006-6c3f636e373e

\