RSI因子
由small_q创建,最终由small_q 被浏览 49 用户
惊喜彩蛋
RSI因子也能做指数增强策略。
因子原理
RSI是一个用来判断股票或其他资产是否被过度买入或过度卖出的指标。想象一下,如果你在商场里看到一件衣服,大家都在抢购,价格已经涨到天上去了,那这件衣服就“过度买入”了。同样的道理,如果没人关注某个打折的衣服,甚至都没人想买,那它就“过度卖出”了。
RSI的计算方式有点复杂,它是根据一定时间内的平均涨幅和平均跌幅来计算的。具体来说,我们通常用14天的时间框架来做计算。
-
计算平均涨幅:在14天内,所有上涨的日子,取它们的涨幅的平均值。
-
计算平均跌幅:同样,在这14天内,所有下跌的日子,取它们的跌幅的平均值。
-
计算RS:将平均涨幅除以平均跌幅。
-
计算RSI:
它的数值范围从0到100,通常来说:RSI<20时,个股被认为是“过度卖出”, 这时股价反弹的几率变大;
RSI>80时,个股被认为是“过度买入”,这时股价反弹的几率变小。
所以直观上看RSI指标越小越好,这也仅是直观上,我们需要使用多个样本(多只股票)来验证这一思想。
因子构建与分析
-
因子构建:这个因子在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 """
-
我们将因子按照值从小到大进行排序、分组(0为最小的一组,9为最大的一组)。
-
最后通过因子分析框架,进行因子的分组统计累计收益(详见最后的因子分析源码)。
因子分析结论:RSI并不具有单调性。在第五组的收益率是最高的,说明RSI指标的收益率分布是一个钟形分布,即RSI不能一味的低或高。那么我们可以利用**“RSI中间值收益最高“**的这一特性来开发单因子策略。
新因子构建
为了验证我们的因子分析结论,我们要对rsi指标进行二次构建,形成新的RSI指标-RSI'。
x为rsi指标, x_bar为指标的截面平均数,这样处理的y值有一个特性,就是RSI最大值和最小值处于同一水平:
横坐标为原始的RSI取值, 纵坐标为二次加工后的因子值-RSI',也就是说不管是超卖还是超买状态(两个红色区域),作用在这个变换下都会处于同一水平(橙色区域)。根据单因子分析,我们需要的票处于RSI中间水平,在图中表示为黄色区域。
策略构建
-
计算RSI并采用平方函数二次加工RSI‘;
-
将RSI'从小到大排序;
-
月初调仓,每次买入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
\