高频交易算法研发心得--RSI指标及应用
前面文章中我们提到了MA均线(包括EMA,SMA)、MACD以及SAR指标,这三类指标存在一个共同特点,即:从固定周期的价格作为判读的指导思想,并将价格进行平滑处理,然后得到可参考的判读结果。
今天我们变换思维,并从市场的角度来考量问题,同时,来聊聊RSI指标。
1. 指标定义
RSI:相对强弱指数(Relative Strength Index),是根据一定时期内上涨点数和涨跌点数之和的比率制作出的一种技术曲线。能够反映出市场在一定时期内的景气程度。其N日的伪函数定义如下:
Double RSI(int N) { //1.首先计算N日的总涨价格 Double totalUp = GetTotalUp(N); //2.然后计算N日的总跌价格(其值为绝对值) Double totalDown = GetTotalDown(N); //2.计算RSI,即:总涨幅占总变化价格的比例 Double rsi = (totalUp) / (totalUp + totalDown); return rsi; }
注意:上面公式计算的结果与大家在常见软件中看到的值不一样,常见软件中显示的结果会乘以100,以便结果的显示区间为:[0~100]。
通过上面的公式描述,看官们不难发现,其实RSI指标是应用了菜市场买白菜的原理,即:
- 如果价格上涨的数量占总变化的比例比较小(大多数情况下降),那随后可能会涨价。
- 如果价格上涨的数量占总变化的比例比较大(大多数情况上涨),那随后可能会降价。
- 由于计算是通过占比方式来实现的,其值范围是[0,1],因此适用于编程量化。
2. 应用方式
通常情况下RSI可以从以下两方面进行判读:
- 短周期线的上下边界
无论看官们是否是做软件的,您都会明白一个道理,一台计算机的CPU的使用率过高,一定不是正常状态,要小心CPU会不会烧了;如果CPU使用率过低的话(服务器),你会考虑,我是不是花钱花多了。
同样的道理,持续的上涨比例过高或过低,都代表了当前市场处于高温或低温的不稳定状态。参考了百度百科,一般认定[70%~80%]为卖出的上限参考点,[20%~30%]为买入的下限参考点,而处于中间比例时,为不明确点,可以进行观望,具体如下:
操作 |
RSI区间 |
超买(买入) |
极端情况:[0%~10%] |
正常情况:[10%~20%] |
|
观望 |
[30%~70%] |
超卖(卖出) |
正常情况:[80%~90%] |
极端情况:[90%~100%] |
其应用的典型特征如下图所示:
- 通过长短周期相互穿越进行判定
此方式与MA均线穿越的判读方式相同,即:
当短周期均线下穿长周期线的时候,说明整体趋势正在下降,可以卖出。
当短周期均线上穿长周期线的时候,说明整体趋势正在上长,可以买入。
其典型的特征如下图所示:
- 3. 总结
通过观察上面的几个图,看官很容易发现RSI的短周期线波动会非常大,因此,最好不要将RSI做为主要的判读指标。
本文中只是描述了RSI的伪算法,用户可以通过调用Warensoft Stock Service来实现该算法,在2017.1.12版本的客户端驱动中,已经添加了该算法的调用接口,欢迎大家进行测试并反馈意见。
作者:科学家
Email:warensoft@163.com
微信:43175692