我的三重滤网
我的三重滤网(一)原版三重
几个朋友把钱凑到一起做期货,给我管理的话,用什么方法?当时想了很多,公共的账户我肯定是不会主观交易的。优化了海龟法则,回测的时候发现不太靠谱,这是后话,以后会说到海龟法则。已知的公布的两大交易系统除了海龟就是三重滤网了。
只是大概看了一下白糖的三重滤网回测,没有进行全样本回测,但是被它的理念吸引住了,所以决定一试。你知道一个系统没有经过回测,并且不跟实盘跑一段时间,直接拿来就用,是非常危险的。但我当时就这么走下去了,还是有点心急。。
一路优化指标、优化参数、优化进场点、优化平仓点。在交易中各种问题都会出现,而且是你之前绝对意想不到的,各种问逐一遇到后,当时的本金已经只有最初的64.62%了。在2015年10月份之前,问题基本得到了解决。2015年10月份,资金达到最初资金的80%,到现在,已经全部回笼。而在最近的半年里,最后的优化基本就没有改动了。我想,已经算是初步成形了吧。
1 最初版本三重滤网法
为什么叫三重滤网?因为它要走三道关,三个条件都达到了,才能触发交易。哪三个条件?三重滤网把观察界分成了两个层次,一个是长周期,一个是短周期。这就是两重,再加一重价格突破就完成了三重。我们一个一个来说。
原版三重长周期选择的是周线,这是第一重滤网。调出周线的MACD,观察它的柱线图,如果当期柱线图的数值较上一根柱线图大,默认为上涨趋势。反之为下跌趋势。如果为上涨趋势,只考虑做多;如果是下跌趋势,只考虑做空。
原版三重短周期选择的是日线,这是第二重滤网。调出日线的KD,观察KD的数值,这里要注意的是原版三重中并没有强调是KD的K值还是D值。这就造成了第一个执行困扰,我当时选的是K值。如果周线看涨,并且日线KD值低于30,那么准备做多;如果周线看跌,并且KD值高于70,准备做空。一定要注意“准备”二字。只是准备而已。
第三重滤网,当前两个条件都满足的情况下,我们假设此时为“准备做多”。当日线的高点被突破,则触发做多条件。比如满足条件下的日线高点为5000点,那么当价格达到5001点的时候,买进建仓。做空就反过来,准备做空的情况下,突破日线最低点时,卖出建仓。如果当天没有触发,则顺延。
平仓:当周线的MACD柱线由大变小,平多。当周线的MACD柱线由小变大,平空。止损,向下突破成交那天的前一根日K线的最低点止损。
2:原版中的一些执行困扰
它的优点是,在既定涨势中寻找买入低点,在既定跌势中寻找卖出高点。我们知道趋势一旦形成,就很难改变。所以在上涨的趋势中,寻找一个低点买进,就会跟随趋势一直向前。并且它的止损位离的很近,一旦突破了前一根K线的高低点就会止损。这种近位止损,会让我们避免了寻找止损的难处,也让我们用这种小小的亏损换取一次又一次大盈利的机会。
如果价格的趋势已经形成,那么它的回调或是反弹,很难回到30以下,或是70以上,然后价格继续向它原有趋势行进。这种情况下,由于交易系统没有给出信号,我们只能眼睁睁的看着价格一去不回头。这正是三重滤网交易法的缺点,要眼睁睁的看着错过很多行情。
再说止损方面,以前一天的日K线的高低点作为止损位的话,很可能会意外的触发止损,止损触发后,行情又随即恢复。也就是止损范围特别窄,如果遇到震荡的比较厉害的行情就会在正确的方向上不停的止损。
容易意外的触发止损,同理,也就是容易意外的触发成交,毕竟前一根日K线的高低点并没有多大,非常有可能上破后下破,下破后上破,成交止损成交止损,不停的来回触发。特别是当日没有触发条件的时候要向后顺延,没触发条件必定是当日的高低点空间变得更短,顺延后的下一个交易日,就会更容易意外的触发建仓点和止损点,陷入更加恶化的循环当中。
另外周线中的MACD柱线长短变化非常快,在一波明显的趋势中,价格没怎么回调呢,而MACD柱线已经出现了斜率上的变化,你不得不平仓,再眼睁睁的看着行情朝着原来的方向继续行进,而你已经踏空。
还有,平仓时如果使用MACD的话或快或慢,如果是一波极速明显的单边市,MACD柱线的变动却又显得略慢了一些。所以当触发平仓条件时,利润可能已经被吞噬了三分之一。
这些缺陷如此之多,是在刚刚开始使用三重滤网法没有想到的,所以在不停的调整优化的同时,也在不停的亏损,在改进最后一项时资金已经亏损了35%。当时顶着巨大的压力,不放弃,理念没问题,那问题一定出现在技术手段上。发现问题后修正不就好了吗?一步一步来,直到半年前确定了最后一点修改方案后,看着资金一点一点回来,信心也就又回来了。
我的三重滤网(二)第一重优化
1 MACD优化
你打开任何一组图表,对比MACD的柱线图和K线走势,你就会惊奇的发现,价格在持续上涨的时候,MACD柱线图不一定会随着价格持续上涨。所以在第一重中MACD从根本上来说,它并不能指示趋势。当然任何一种指标都不能绝对的给出趋势方向,可总得靠谱一点,MACD柱线图是明显的不靠谱。
在很多书中介绍MACD指标的时候,有的把它归为趋势性指标,因为它是以移动平均线为基础计算出来的指标。有的把它归为摆指标。根据我实盘的观察,摆动指标的属性更大一些。
所以我们要换一种更能指示方向的指标,在三重的发明者的著作《以交易为生》中,有读者来信跟他反映,周线上或者说长周期的图表中,可以用EMA(13)来替代MACD柱线图,效果会更好。所以我第一步就换成了EMA线。
2 EMA优化
用EMA实盘跑了一段时间后,发现这东西确实不错,但总体还是亏钱的。所以在此时,你就必须有统观全局的能力。亏钱是亏在三重滤网中的哪一重?如果跟第一重没有关系,那就是EMA没有问题。当时根据我的判断,EMA确实没什么问题,问题出现在第二重和第三重。
可用EMA(13)的某一段时间,几乎没有任何交易,我又有些着急了。是不是参数13太慢了?要不要调快一点?我将EMA(13)调成了EMA(8),交易次数是增多了,可错误率在直线上升,我知道参数让我调的太快了,最后还是改成了EMA(13),一直自用至今。
在平仓信号中,当价格未初发止损时,EMA线向下拐头,触发平仓(止盈)信号。但我发现,每次平仓之时,利润回吐的过多,有点心疼。那怎么才能不让他回吐的过多呢?我先将平仓时的参考线EMA换成了SAR,理由是SAR是一直跟着趋势走的,它不会因为价格反向走了很远之后,它才反应过来。SAR会一直逼近最高/低价位,这让我能以最近的价位最快的时间平仓。
SAR用了几天之后发现,它的优点也是缺点,价格可能只是宽幅的震荡一下,SAR就被触发了,导致平仓过早,后面的行情完全踏空,这又得不偿失了。
到这一步我换成了趋势线。一直在看我的公众号文章的朋友们可以发现有一篇文章是《一起来画趋势线》,就是在那个时间节点,我开始使用主观画趋势线来设定平仓点位。在客观之中加上了一点的主观的东西。
3 加仓优化
三重滤网法虽然可以稳定盈利,但等待开仓机会的时间太久。一波行情好不容易来了,每次只下一个单位的注赚的还是太少,所以在第一重中我又加入了道氏理论。当做多的时候,在长周期的走势中,价格向上突破了前一个波峰的高点时,我再加一个单位筹码的多单。同理,做空的时候,价格向下突破前一个波谷的高点时,再加一个单位筹码的空单。
4 平仓优化
在结合了趋势线界定平仓和道氏理论加仓的方法中,如果已经持有了两个单位的仓位,平仓也要随之变化。因为这不再是一个单位的仓位了,而是两个单位的平均持仓成本。
如果你学过高一代数的话,就可以计算出这条趋势线的代数表达式y=kx+a。你会知道在这条线上的每个时间节点的价格。对于没有学过这个一次函数的朋友们,用笨方法给大家举个例子。
在一段行情中的两个明显的低点中,画一条趋势线。第一个低点为1000点,第二个低点为1100点,从第一个低点到第二个低点共经历了9天。再简单一点就是,9天时间价格从1000点上涨至了1100点,每天上涨11.11点。
再在距离第二个低点过去了5天,问现在这条趋势线上对应的点位是多少。平均每天11.11点,5天为55.55点,从哪儿过了5天?从第二个低点处,所以现在位置的价格是1100+55.55点,为1155.55点。那价格向下突破1155点时平仓。
我的三重滤网(三)第二重优化
1:KD取值
在原版三重滤网中,短周期可以利用的指标非常多。并且基本都是自己作者本人编制的,我试着跟随编制使用了几个,模拟中这些自己编制的指标反应太快。对于我这个相对保守的人来说,信号越少越好。信号多了准确率就会降低。在《以交易为生》很不起眼的一行文字中说到,也可以用KD。并且我试了他所说的几乎全部指标,发现短周期KD是最好用的没有之一。
但KD有两根线,我们需要30以下 /70以上的数据,到底是取K值还是取D值呢?开始我选用的是K值,但用了一段时间后,发现KD中的K线上窜下跳,30以下/70以上很容易很轻松就达到了。也会导致交易次数过多,从而导致伪信号过多,止损过多。
基于我保守的性格,我开始使用D值,KD的计算方法是,先将K值计算出来后,再将K值三天平均,得出D值。D线要缓慢很多,因为慢,所以它很靠谱。选用D线后,一直延用至今。
2:30/70优化
讲解指标的书中在介绍KD的时候,会说到超买和超卖,当KD达到70以上时是超买,当KD达到30以下时是超卖。当然还是很聪明很隐晦的没有说清楚到底是K值还是D值。
但其他方面并不统一,有的说30/70不行,至少得20/80。当然这就是程度问题了,没有必要较那么多的真。可我们用来做系统,每一个数字你都得量化,你不能说30/70可以,20/80也差不多。这也可以那也可以,就会给执行层面带来很多困扰。
我开始还是选取了30/70,因为第一重滤网中我就选用的是比较缓慢的EMA,抛弃了过快的MACD柱线(有人还觉得MACD慢呢)。这让我想起了metllica中的主音吉他Kirk Hammet,据说在其他人还在追求速度的时候,他已经在控制速度了。
随着实盘交易我又发现,D值虽然较之于K值更加缓慢稳重。但在现实交易中,还是显得有些过快。低于30,给出第二重信号后,买入再止损的例子比比皆是。这让我意识到,我还是交易的过早了。
请注意“交易的过早了”是指交易的时机,也就是价格下的同时,KD向下,给出信号,准备交易。但在这过程中,我是在预测D值低于30之后,价格接近低部,然后做多。可是还有一种可能,价格还没跌完,第三重给出信号后成交了,价格继续向下,只能止损。这个推理的关键词是“预测”。
为什么在一个追求慢、稳的系统中出现了“预测”,这不符合逻辑。所以我要把“预测”改为“追随”。怎么办?这就涉及到了拐点的概念,和与之相关的左侧交易、右侧交易的概念。
我们想在大涨中的回调底部买进,是三重滤网的精髓理念所在。何时回调结束呢?按原版来说,在长周期看涨的条件下,短周期KD低于30时,就是调整结束之时,可这不对,或者说这不完全对。
当KD低于30时,我们还未见拐点,可能只是无限靠近拐点而已,我们还处于拐点的左侧。如果此时交易,反而变成了我们一直想要避免的左侧交易,我们想要的是拐点右侧的交易。左侧交易就是预测,右侧交易就是追随。
好吧,KD低于30了,我就举起枪打开瞄准镜准备射击了吗?不是。我在等另一个信号,现在这一步只是我大致观测到了敌人,还没有进行最后的瞄准。继续观察KD值,当D值低于25时,我才认为它已经进入狙击范围。再继续观察,当它从25以下向上起来的时候,我们才举起枪准备扣动扳机。
这是一个U字型,进入30以下就是进入U字型的左侧,是底部范围。再向下,到25以下,才真正有点意思,但还不够,这只是比之前更加深入了5个值而已,也不能确定这个位置就是拐点的右侧。所以当它从25以下向上,再次突破30时,就构成了一个U字型。拐点就是两个30之间的地方,我们在右侧,把亏损留在左侧。
有时D值进入30后,它并不再次进入更低的25,那我只有放弃了。我设置的条件比原版三重滤网更加严谨更加苛刻,都是因为我太保守了。保守是好事吗?保守可能是件让人愉悦的事,但过于保守还是让人觉得有些迂腐。
不过,这没关系。市场中有胆大的交易者,有存活时间很长的老交易者,但没有胆大的老交易者。我宁可错过,我不冒险,毕竟我有妻子和女儿,我的风险已经不仅仅是我的风险了,这是我们全家人的风险。
我的三重滤网(四)第三重优化
1 突破点位的优化
原版三重中,因为没有我后来设计的U字型过滤,所以它简单粗暴的以前一根K线的高低点作为建仓突破点。由于我多加了内容,所以突破点位也需要跟着进行优化。
其实在最初始的状态中,我就考虑过这样一个问题。相临两根K线的高低点太容易互相突破了,也就非常容易触发止损。这就像一把没保险的枪一样,随时可能走火。U字型确保了让我们可以尽量在拐点右侧交易,相当于给这个系统加了个保险,但当时没想明白这个保险怎么加。当我做完了第二重的优化的时候,就知道如何走这一步了。
优化后的突破点的表述有点麻烦。以KD指标中D值进入30以下或70以上至目前阶段中的范围内,找出这组K线中的最高点或最低点作为突破点位。
我拿做多来举个例子,当D值由30以上进入30以下时,例如29.56,此时对应K线的最高价1000点,当D值为28时,对应K线的最高点为990,D值为24时,对应的高点为920,此时准备做多。D值进入30以来这一段时间(3根K线)的最高点为1000点,所以以1000点作为突破建仓点。
刚刚举的例子是一组非常常规的案例,可能还会出现这样的情况。D值29.56,价格1000点。D值28,价格1005。D值24价格920。D值进入30以下后,随后这阶段的K线(3根K线)的最高点在1005,就是D值为28时所对应的价格。那么就以1005作为突破建仓点。
这么做是为了在第二重U型优化后的另一种保障,可以让我们更加确定的我们是在拐点的右侧交易,如果你仔细思考这里面也有道氏理论的影子。
2 加仓的设定
关于加仓我们在第一重优化的时候已经说过了,在长周期下,向上/向下突破前一阶段的波峰/波谷的时候,再加一个单位的仓。并且我们说了止损的时候,画出趋势线,计算出趋势线在任何时间结点上的价位,以此来跟踪止损。
这里面有一条主观的设定,如果我们手里只有一个单位的仓,还未给出加仓的信号,此时不论价格如何演化,我们都以最初的止损为止损。未给出加仓信号,意味着价格没突破前期波峰/波谷,推导出价格未走出新的趋势。此时的价格还处于回调/反弹之中,它还需要一些宽幅的震荡,所以还需要我们保持止损幅度不变,不能让渐渐向上的趋势线把我们先给洗出去了。一旦加了仓,立刻画出趋势线,并且严格按照趋势线来交易。
3:某些主观判断
一般期货合约有三个接力的主力月合约,在任何一个时段,都会有两个合约有着足够的流动性,我们交易哪个合约?最初的时候,我只交易成交量最大的合约,或者是持仓量最大的合约,其他都属于次要合约,都不看。
但有一次我持有焦碳近月的多单,因为已经要换主力月合约了,我就把近月多单平掉换成了远月合约。可近月合约一路上涨,远月合约不仅不涨反而下跌,反而是近月合约一路高歌猛进。在这之后,不论哪个是主力合约,我把三个合约的数据都记下来,都列在可选范围内。不能让任何一条鱼漏网。
可是有一些明显的不能做的,就要果断放弃,比如现在已某个品种的5月合约已经给出了信号,但我不能操作,因为现在已经是3月末了,马上进入4月了。保证金会涨很多,并且临近交割的合约博弈的时间和空间都在缩小,可能性丧失。
在这里可能会有一些明显的技术信号给出来,比如给出了做多信号,但是技术上有明显的顶背离现象出现,这样的品种最好暂时先回避,虽然可能回避错了,错过了一波行情,但慢、稳是我们的原则。
4:我的一些经验和教训
第一条,既然做了程序化,千万不要人为估计,刚刚开始做三重滤网的时候。正好赶上2015年夏天的商品期货大跌,我错误的认为下跌已经临近尾声,我们现在进场可能有些时候就要跟趋势跟在屁股上。从那以后,做空信号即使给出来,我也不做,我只等做多信号。至少让行情走一个轮回后,我再开始多空都做。
可我的估计是错误的,从那时起,商品期货几乎所有品种都又下跌了半年时间。我不但错失了这些赚钱的机会,还在各种多单中反复止损。最初的亏损原因中,不单单是系统没有完善的原因,也存在在空头市场中反复做多止损的原因。
第二条,仓位千万不要太大,这是老生常谈了。所谓老生见不生,常谈见不谈。越是觉得不用说的问题,就越容易出现问题。所幸我做这个账户,还没有出现重仓的情况,因为这不单单是我自己的钱的原因吧,这些钱是大家的,朋友的,师长的,学生的,我得为他们负责。当很多品种都给出信号的时候,我最大的仓位也只占了4成左右。
第三条,坚持。在遵循着交易系统机械的做交易的时候,可能很多时候都没有交易信号给出,你就会变得不耐烦。当系统给出的信号连续出现止损的时候,你就会怀疑自己是不是一个纯粹的傻逼。甚至在利润回吐的时候,我都在痛恨我自己,怀疑我自己,是不是我又错了,是不是系统中还存在着巨大的逻辑漏洞。当一个交易周期中,三天是盈利增长的,两天是利润回吐的,我就会在这三天中自满膨胀,在这两天中把自己骂的猪狗不如。
虽然没有表现出来,但内心还是煎熬的。但这并不代表我不再遵守这套系统了,反而我为我自己并不避讳,坦诚的把自己内心的想法说出来,让你们嘲笑而感到自豪,哈哈。既然用这套系统赚到了钱,为什么不坚持呢?不能总想着那山比这山高,不可能有更快的赚钱方式就把这套系统扔了。
在没有更好的系统之前,不要像我一样,拿真金白银来测试一种交易系统。这次侥幸没有亏损,不代表以后也会这么幸运。不过幸好我已经摸索出来一些路子了,可以让大家借鉴。真金白银并没有白白浪费,我老师李群先生说,天道未必酬勤,如果能用一二年的时间,将一套系统完善,都算是幸运的了。
可能我就是那个比较幸运的人吧,如果能把它当成是提款机,我不怕慢。因为慢、稳是我的原则。我,聪明不足,勤奋有余,但愿天道酬勤。