110-低波高活跃策略
由bqbcl5zr创建,最终由qxiao 被浏览 211 用户
策略介绍
本策略旨在选取波动率低但活跃度高作为选股因子,观察了等权持股20只,持仓20天的策略表现。该策略的盈利逻辑基于对低波动率和高活跃度股票的选择。低波动率通常意味着股价波动较小,相对稳定,有助于降低投资风险。同时,高活跃度的股票通常具有较高的流动性和交易活跃度,有利于投资者在短期内快速买卖。通过在波动率低但活跃度高的股票中进行筛选和排序,该策略旨在捕捉这些潜在的优质投资标的。
策略流程
- 股票池过滤:剔除ST股、停牌股、北交所
- 筛选条件:选取前240个交易日波动率最低的前30%、前7天股票的换手率最高的前30%股票
- 排序条件:根据60天波动率、120天波动率、15天交易量计算得分,按照得分从大到小排序
- 策略回测:持股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_240
和m_lag(turn, 7) AS turn_7
分别计算前240个交易日波动率和前7天股票的换手率,用于下面的筛选条件。- 以上提到的字段,例如
daily_return
、volume
、turn
,全部来自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/codesharev3/c56c6464-5913-4790-ba0c-424a24b89f73
\