量化里面有很多指标,而这些指标又会相互组合形成很多策略,每一种指标都有一些特殊的用处,有一些是震荡指标,有一些是趋势指标,有一些是专门研究通道的指标,比如我们前面说的布林指标就说一个通道指标,今天我们要介绍一个很有意思的指标叫SAR指标,我们一起来看一下。
1.什么是SAR
Parabolic SAR(停止和反转,简称SAR)指标是由著名的技术分析师威尔斯·威尔德(Welles Wilder)发明的。它是一种流行的技术分析工具,用于确定资产价格的潜在停止点和反转点,常用于股票、外汇、期货等多种市场。
这个指标有啥作用呢:
Parabolic SAR旨在提供以下信息:
-
趋势方向:SAR点位于价格图表下方时,表明市场处于上升趋势;位于上方时,表明市场处于下降趋势。
-
入场和退出点:SAR指标提供潜在的买入和卖出信号。当价格交叉并开始低于SAR点时,可能是卖出或做空的信号;当价格交叉并开始高于SAR点时,可能是买入或做多的信号。
-
止损点位置:SAR点也可以用作移动止损的依据,因为它们随着价格变动而调整。
是不是非常神奇。我们先看一下这个指标长什么样子,比如我们随便一个股票软件的分析图,找到这个SAR指标,看看:
可以看到图上我们选择了SAR这个指标,有点类似抛物线。在K线的上方和下方都有红色和绿色的小方块,当价格从SAR点下方突破到上方时,可视为买入信号;相反,当价格从SAR点上方跌破到下方时,可视为卖出信号。
可以简单理解,当价格从绿色的方块->红色的方块,表示可以做多进场,当价格从红色的方块->绿色的方块,表示可以离场,即平仓。
是不是很简单,这个指标可以看成是转向指标,非常灵敏,这既是它的优点,也是它的缺点。后面我们会详细说说,下面我们来看一下用Python如何计算这个信号。
2. 如何用Python计算这个信号
任何指标都有参数,sar也是一样的,sar的参数设置详细如下:
SAR指标有两个主要参数:
-
加速因子(AF):开始值通常设为0.02,每次价格达到新高(或新低),加速因子会增加,直到达到最大值。
-
最大加速因子:通常设为0.2,限制加速因子的增加,防止SAR点过于接近价格,从而减少其作为趋势跟踪工具的有效性。
计算sar有两个方法,一个就是纯用pandas 和numpy 来计算,这个非常复杂 ,不是不能做,代码量比较大,还有一种就是用第三方库强大的talib开操作(这个库我们后面会专门写文章讲解),如果用talib来计算就非常简单的,只需要几行代码就搞定。
首先要先安装这个库:
pip install pandas_ta
然后一行代码就可以搞定了
df['sar'] = ta.sar(df['high'], df['low'], acceleration=0.02, maximum=0.2)
我们看一下效果, 我们拿创业板300001 特瑞德德股票k线来计算一下:
在上面的表格中,我们可以清晰的看到这个指标的计算结果,那这个结果到底对不对呢,我们需要跟软件上指标计算对比一下,以确保我们的计算公式,计算流程都是对的,我们找一个软件看一下:
12月11号计算的sar是18.38,确实一样的,如果不放心,可以多对比几个日期。
3.回测看一下这个指标,到底如何
我们选择一个股票进行回测,比如我们选择上面的创业板 特锐德看一下效果,我们回测1年的数据:
我们从图上粗略的分析一下,可以看到抓住了几次上行的趋势,1月的和10月的抓的不错,其他的趋势不是启动的太晚,就是启动之后就被打脸回撤了,效果其实不是很好,那这个指标是不是就不灵呢,非也,我们看来一个股票的回测:
我们看这个天孚通信从2024年1月份开始到现在,通过SAR指标可以非常准确的把握这波抄底的行情,点位抓的还是比较准确的,计算了一下大概有40%的涨幅。
结论:
也就是说这个指标适合那些波动比较大的股票,可以非常明确的把握趋势的转折和持续的时间,上面只是一个简单的指标介绍和分析,很明显这个指标不能单独使用,有一些假信号出现,需要跟其他指标配合或者择股策略一起配合才能发挥功效,限于篇幅,我们就不展开讨论,后面我们会找时间继续深入研究指标应该如何使用。
读者福利:对Python感兴趣的童鞋,为此小编专门给大家准备好了Python全套的学习资料《完整版的Python的全套学习资料》(安全链接,放心点击)
全套PDF电子书