前言:
我们经常能听到某些股票分析师,夸夸其谈什么均线多头排列,双均线金叉,KDJ 金叉,MACD 金叉,综合判定当下 行情多头强势,正是我们买入赚钱的好时机,然后拿出某只强势上涨的股票例证:您看这只股票的这一波大涨是不是 都出现我所说的买入信号呢?
实际情况,当某只股票行情走势很好,出现类似指标金叉的信号是很常见的现象。但是有时候某只当日股票波动很大, 同样出现指标金叉买入信号,然而为什么次日股价不涨反而转跌呢?
那么,到底这样的信号可靠性如何,正确率又怎么样呢?这里,我们利用掘金量化交易平台,基于历史行情,市场数据, 对全市场股票进行模拟交易,根据技术指标信号进行操作,验证这些技术指标到底效果怎样? 同时,我们会根据技术指标的计算方式,对其内在含义进行分析,引导大家去了解它的交易逻辑。
常见技术指标举例
双均线
双均线策略是市面上经常见到的一种择时操作,具体而言,就是比较长短两个周期的均线,当短期均线突破长期均线的时候,我们认为短期趋势向上,应该进场;当长期均线突破短期均线的时候,则认为短期趋势向下, 应该出场等待 (针对国内股票) 或者卖空 (针对境外股票和期货等支持卖空的品种)。
目前市场上流行的均线一般主要是两种,一种是简单的均线,即将过去一段时间内的价格计算简单平均,之后 随着新的数据过来,均线也会有新的值产生;但是这种简单均线的计算方式,将过去一段时间的价格认为是等权重的,这会导致我们看到的均线相比股价变化,滞后太过严重,因此,有人提出了指数平滑移动平均线,将 离当前日期更近的价格赋予更大的权重,为了计算需要,我们假设,当日收盘价定义为 C_0, 之前第 n 日的收盘价定义为 C_n, 于是,我们就有如下公式:
除了简单均线,指数平滑移动平均线,还有很多其他类的均线,包括累计移动平均线,加权移动平均线,指数加 权移动平均线等,具体计算公式和说明可以看 MovingAverage Wiki。
KDJ
KDJ 的计算方式具体分为以下几个步骤:
1.随机未成熟指标 (RSV) 的计算: (收盘价 - N_1 日最低价) / (N_1 日最高价 - N_1 日最低价) * 100;
2.K 值:RSV 值的 N_2 日移动平均;
3.D 值:K 值的 N_3 日移动平均;
4.J 值: 3×K-2×D;
其中, N_1 的取值一般为 9, N_2 与 N_3 的取值一般均为 3。
从计算方式,可以知道,最近 9 日的最高和最低形成了一个通道,最近一日的收盘价在这个通道内距离通道底侧 (9 日最低价) 位置由 RSV 表示,因此,RSV 的 3 日平均表明了最近 3 日收盘价在通道内的平均位置,表明 短期收盘价的运行趋势;
而 D 值作为 K 值的 3 日平均,则表明了收盘价的更长期的趋势,因此,利用 KD 均 线的位置关系,我们可以去评判最近的趋势运行方向。而 J 值的定义,一个比较容易的理解方式是,其表明了短期 短期趋势力量的强弱,而且,因为对于 K 的权重设置为 3,对于 D 的权重设置为 2,可以认为 J 值对于短期 价格更为敏感。如果将 J 值具体展开,表达式为 (7R_0+5R_1+3R_2-4R_3-2R_4)/9, 可以看出 J 值会在 166.67 和 -66.67 之间波动,实际情况中,J 值经常会在 20 到 80 之间波动,如果价格不断上行, 则 J 值会在大于 80 的区域运行;如果价格不断下行,则 J 值不断在 20 以下区域运行。
MACD
MACD 的计算方式具体分为以下几个步骤:
•12 日 EMA 的计算:EMA12 = 前一日 EMA12 X 11/13 + 今日收盘 X 2/13;
•26 日 EMA 的计算:EMA26 = 前一日 EMA26 X 25/27 + 今日收盘 X 2/27;
•差离值(DIF)的计算:DIF = EMA12 - EMA26;
•今日 DEA = (前一日 DEA X 8/10 + 今日 DIF X 2/10)用(DIF-DEA)*2 即为 MACD 柱状图。
从 MACD 计算公式进行分析:
•12 日和 26 日的 EMA 差值体现了短期 (12 日) 和长期 (26) 日的趋势变化,即 DIF 的涵义,当 DIF 不断 变大时,表明短期趋势不断向上;反之,则不断向下;
•对 DIF 进行指数移动平均计算,则体现了趋势的延续性,也就是 DEA 的含义,当用 DIF - DEA 的时候,表明当期趋势相比一段时间内的趋势的能量大小,因此,如果看到红柱长度不断萎缩,表明向上的力量越来越弱;反之, 则表示趋势的力量很强。
技术指标回测与分析
最原始策略
基于以上技术指标的分析,我们很容易就形成简单的股票买卖逻辑,譬如,双均线金叉我们就买入,双均线死叉 我们就卖出;KD 金叉就买入,KD 死叉就卖出;MACD 红柱时买入持有,一旦 MACD 绿柱了,立刻卖出,那么 这样的交易逻辑是否合理,能否赚钱呢?
此时,回测技术的使用,能极大地帮助我们去对指标有效性合理性进行判断和分析。这里,我们使用掘金量化平 台进行回测,回测周期为 2016 年 6 月 17 日到 2017 年 8 月 21 日。同时,为了避免出现针对某一支股票上应用技术指标回测而出现类似幸存者偏差的问题,我们分别对沪深 300 的成分股和中证 500 的成分 股分别进行了回测分析。收益曲线具体可以看下面 6 张图。左边从上往下,依次为双均线策略,KD策略和MACD策略在沪深300成分股上的回测收益曲线;右边3图从上往下依次为双均线,KD以及MACD策略在中证500成分股上的回测收益曲线。
技术指标到底有没有效果?
从上面的结果,我们可以看到,有些指标有些效果,有些指标甚至有反面效果,那么,是否技术指标就没有用, 或者我们选择的指标难道不对?
其实,我们可以从几个方面去理解技术指标:首先,单指标而言,很多股票交易逻辑都跑不过沪深 300 的指数, 如果只是单纯做投资,那不如直接去买沪深 300 的指数基金。但是,从历史的沪深 300 走势,我们也能看 出来,哪怕沪深 300 指数,都是有涨有跌的,如果去保证我们买入在低点,卖出在高点,这个也不是说随机 就能做到的。我们投资的资金不是说能一直都保留不动的,中间可能会随机要取出来,如果说不小心在指数处于 低点的时候卖出,而在指数高点的时候买入,未免不合时宜。因此,哪怕对于指数,我们也希望能够去做 一些择时操作,能够去尽量追涨杀跌。
但是,从之前的回测结果看,单一的技术指标效果似乎很一般,是否说技术指标就没有效果了呢?其实这时候, 我们可以返回过来看技术指标的内禀涵义,双均线,包括 KD 均线,用到的技术都是看短期趋势和长期趋势 的比较,但是,两者看的时间趋势范围是不同的,一个是 5,20 日的趋势,一个是 9,3,3 形成的短, 长周期趋势比较,而 MACD 不仅包含了另外的时间范围内趋势的变化,更是加入了趋势变化强弱的概念, 对于这些从不同维度看待股票的技术指标,我们完全可以去做多个指标的结合,一方面从多个角度去确认 我们进场信号的正确性,另一方面是去尽早找到应该离场的点在哪里。
篇幅所限,笔者这里简单做了一个双均线与指数MACD双重信号确认,出场结合 MACD 的策略,并将其应用到沪深 300 上, 回测效果如下图所示。各位读者如果感兴趣,完全可以基于对技术指标的理解,去开发属于自己的策略, 譬如,根据 MACD 量柱的长短,也就是趋势力量的强弱去决定进出场,去根据 KDJ 中 J 值的含义, 去做关于 J 值的股票交易逻辑策略。
写在最后
关于技术指标,市面上要不就批的很臭,要不就奉为圭臬,归根结底,都是一叶障目,只看到了短期的某一支或某几支股票,而某些股票大师又会去挑出符合他们说辞的股票走势来试图给他们的言论加上说服力。其实,如果投资者懂一些回测技术,利用历史数据,去将自己的想法简单实现,对于这些指标应该能有一些自己的判断。
在本文,笔者之所以用沪深300的成分股和中证500的成分股去做指标的回测,目的就是为了避免只操作几支股票,出现幸存者偏差,另一方面,通过更多投资标的的组合,也能将风险控制在一定范围内,以避免单独一支或几支股票出现黑天鹅,导致投资出现不可控的风险。
此外,由于中国股市中,个股与大盘指数相关性极强,因此,完全可以加入大盘指数的择时判断,然后再去操作个股,如果大盘指数择时信号很差,那么,完全可以空仓等待,宁不做,不做错。
备注:添加掘金小Q微信:myquant2018 , 免费领取双均线、MACD、KDJ指标的策略源码;
相关阅读:
1. 《从回测到实盘之二:如何让回测更贴近实盘结果》
2. 《程序化交易之三:由回测到实盘,还需要注意些什么?》
作者:胡琛博士