精华帖子

成交量震荡因子

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

因子逻辑

成交量震荡,是用来识别市场趋势和反转点的重要工具。为什么说它重要?因为成交量的变化往往可以帮助我们预测股价的走势。当成交量突然增加时,通常意味着大资金正在入场,这时股价很可能随之上涨;反之,成交量的突然减少,可能表明市场兴趣减弱,股价有下跌风险。就像一场草地音乐节,前几场小众独立歌手的演出只有少数人驻足观赏,大家可能三三两两坐在草坪上,但是当人群纷纷涌向前排,人潮迅速聚集时,大家就知道是压轴歌手周杰伦将要登场了。这就好比市场中大资金突然入场,成交量激增,往往伴随着市场趋势的变动。

通过分析成交量震荡,我们可以更好地把握市场的脉搏,做出更明智的投资决策!


那成交量震荡要怎么计算呢?简单来说,我们就是要计算出一个反映成交量变化的指标。

  1. 计算短期移动平均线(SHORT):通常取12天的成交量平均值。
  2. 计算长期移动平均线(LONG):通常取26天的成交量平均值。
  3. 计算SHORT与LONG的差值。
  4. 将差值除以SHORT,得到比率。
  5. 将比率放大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

\

标签

投资决策市场趋势量化因子
{link}