精华帖子

RSI因子

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

惊喜彩蛋

RSI因子也能做指数增强策略。

因子原理

RSI是一个用来判断股票或其他资产是否被过度买入或过度卖出的指标。想象一下,如果你在商场里看到一件衣服,大家都在抢购,价格已经涨到天上去了,那这件衣服就“过度买入”了。同样的道理,如果没人关注某个打折的衣服,甚至都没人想买,那它就“过度卖出”了。

RSI的计算方式有点复杂,它是根据一定时间内的平均涨幅和平均跌幅来计算的。具体来说,我们通常用14天的时间框架来做计算。

  1. 计算平均涨幅:在14天内,所有上涨的日子,取它们的涨幅的平均值。

  2. 计算平均跌幅:同样,在这14天内,所有下跌的日子,取它们的跌幅的平均值。

  3. 计算RS:将平均涨幅除以平均跌幅。

  4. 计算RSI


    它的数值范围从0到100,通常来说:

    RSI<20时,个股被认为是“过度卖出”, 这时股价反弹的几率变大;

    RSI>80时,个股被认为是“过度买入”,这时股价反弹的几率变小。

    所以直观上看RSI指标越小越好,这也仅是直观上,我们需要使用多个样本(多只股票)来验证这一思想。

因子构建与分析

  1. 因子构建:这个因子在BigQuant上已经构建好了,可以直接调用

    sql = """
    SELECT 
        date, 
        instrument, 
        m_ta_rsi(close,6) AS factor
    FROM cn_stock_bar1d
    QUALIFY COLUMNS (*) IS NOT NULL
    ORDER BY date, instrument
    """
    
  2. 我们将因子按照值从小到大进行排序、分组(0为最小的一组,9为最大的一组)。

  3. 最后通过因子分析框架,进行因子的分组统计累计收益(详见最后的因子分析源码)。

因子分析结论:RSI并不具有单调性。在第五组的收益率是最高的,说明RSI指标的收益率分布是一个钟形分布,即RSI不能一味的低或高。那么我们可以利用**“RSI中间值收益最高“**的这一特性来开发单因子策略。

新因子构建

为了验证我们的因子分析结论,我们要对rsi指标进行二次构建,形成新的RSI指标-RSI'。

x为rsi指标, x_bar为指标的截面平均数,这样处理的y值有一个特性,就是RSI最大值和最小值处于同一水平:

横坐标为原始的RSI取值, 纵坐标为二次加工后的因子值-RSI',也就是说不管是超卖还是超买状态(两个红色区域),作用在这个变换下都会处于同一水平(橙色区域)。根据单因子分析,我们需要的票处于RSI中间水平,在图中表示为黄色区域。

策略构建

  1. 计算RSI并采用平方函数二次加工RSI‘;

  2. 将RSI'从小到大排序;

  3. 月初调仓,每次买入RSI'最小的五支票。

    可以发现经过二次加工的RSI因子做成的单因子策略也有13%的年化,我们的基准收益率是沪深300的累计收益曲线,曲线在一定程度上是负相关的关系, 所以该策略大概率是小盘股策略。我们将基准换小市值(中证1000),走势极其相似,并且收益超越了中证1000的走势,该策略可以作为一个中证1000指增策略来使用。

相关策略源码

策略源码

{{pro}}

https://bigquant.com/codesharev3/1bde68c8-e235-4bc8-acd3-f3eff584e9e7

因子分析源码

https://bigquant.com/codesharev3/151747e3-eecf-4a51-90ce-72abc87dfc73

\

标签

交易决策量化因子
{link}