成交量震荡因子
由small_q创建,最终由small_q 被浏览 35 用户
因子逻辑
成交量震荡,是用来识别市场趋势和反转点的重要工具。为什么说它重要?因为成交量的变化往往可以帮助我们预测股价的走势。当成交量突然增加时,通常意味着大资金正在入场,这时股价很可能随之上涨;反之,成交量的突然减少,可能表明市场兴趣减弱,股价有下跌风险。就像一场草地音乐节,前几场小众独立歌手的演出只有少数人驻足观赏,大家可能三三两两坐在草坪上,但是当人群纷纷涌向前排,人潮迅速聚集时,大家就知道是压轴歌手周杰伦将要登场了。这就好比市场中大资金突然入场,成交量激增,往往伴随着市场趋势的变动。
通过分析成交量震荡,我们可以更好地把握市场的脉搏,做出更明智的投资决策!
那成交量震荡要怎么计算呢?简单来说,我们就是要计算出一个反映成交量变化的指标。
- 计算短期移动平均线(SHORT):通常取12天的成交量平均值。
- 计算长期移动平均线(LONG):通常取26天的成交量平均值。
- 计算SHORT与LONG的差值。
- 将差值除以SHORT,得到比率。
- 将比率放大100倍,得到VOSC值。
假设某股票每天的成交量如下,为了计算第27天的成交量震荡,我们需要计算出它前12天与前26天的成交量平均值,短期移动平均线 等于 前12天的总成交量/12,长期移动平均线 等于 前26天的总成交量/26,然后计算两者差值2292-2100=192,将差值除以短期移动平均线,192/2292,然后将比率放大100倍,就可以得到VOSC值。
因子构建与分析
因子构建
接下来我们利用因子分析,找出这个因子的使用方法。
首先,我们需要计算这个因子,在BigQuant上已经计算好了,直接调用即可。
sql = """
SELECT
date,
instrument,
100 * ((m_avg(volume,12) - m_avg(volume,26)) / m_avg(volume,12)) AS factor
FROM cn_stock_bar1d
ORDER BY date, instrument
"""
因子分析
再次,将因子值按照从大到小进行排序、分组,0为最小的一组,9为最大的一组。
然后,将因子进行去极值、标准化、中性化等操作
最后,通过因子分析框架,进行因子的分组统计累计收益。
该因子与未来收益偏向负相关关系(负相关是指:因子值越小,累计收益越大为负相关,反之为正相关)。
虽然因子值大的组的累计收益最小,但该因子不是严格意义上的负相关因子,因为第九组之外的组的收益率曲线分组不明确,所以该因子适合做一个空头因子。
这里补充一下,空头因子是指该因子预测下跌的股票比较准,也就是说ta和下跌的股票的关联性比较大。
策略构建
由于该因子是一个偏负相关的因子,我们买入全市场里因子值小的10只票作为投资组合,可以看出其回测效果并不好。\n
成交量震荡因子,是要捕捉震荡的情况,大市值的股票波动较小,所以因子有效性不能体现。而小市值的股票波动较大,可以更好地体现成交量的震荡。
所以,在前面策略的基础上,我们将标的池从全市场改为小市值,还是买入因子值最小的10只作为投资组合,回测发现累计收益和夏普比率大大提升,最大回撤也有所降低。
\
策略源码
策略源码
{{pro}}
优化前:
https://bigquant.com/codesharev3/46b0abed-f5e5-4bbe-9ad0-6f33efd55838
优化后:
https://bigquant.com/codesharev3/544a7660-8ed0-470f-b6d0-2d8c27ed1546
因子分析
https://bigquant.com/codesharev3/e393c7bb-0d15-40d1-8b38-ea9f83ca860f
\