量化后的程序化交易还是存在着两个问题:第一,程序化是不是建立在各种技术指标之上的。第二,如果是,那么技术指标中存在未来函数,这东西不太靠谱。
10.1.1 程序化就在身边
其实你每次交易都是程序化。先说说什么是程序化交易,官方的定义是,程序化交易系统是指设计人员将交易策略的逻辑与参数在电脑程序运算后,将交易策略系统化。
但凡还不是靠拍脑袋做决定的交易,都可以算得上是程序化交易。为什么这么说?假如一个人是靠移动平均线策略进行交易的,短期均线上叉长期均线则做多,短期均线下叉长期均线则做空。又比如,价格突破前期高点则做多,价格突破前期低点则做空。这就是程序化交易,只不过它没有将这个策略编成程序,然后一切交给电脑。这种方法姑且称之为半自动化吧。
可更多时候,你会遇到那种貌似大神级的存在。他们凭借着主观分析,忽而根据波浪理论做多,忽而根据价格形态做空。并且夹杂着其他各种名目的分析方法。他所利用的工具看似都是信手拈来,每次都不一样。这种分析也是程序化分析吗?
其实,这也是半自动程序化交易。
只不过是将所有的技术分析融汇贯通后,再用一根绳子穿起来。该用什么的时候就用什么。比如用波浪理论看到价格已经走完前一级别下跌的C浪。那么必将启动新级别的推进1浪。此时我会在这里先找到蜡烛图的底部反转形态,锤子线、倒锤子线、刺透形态、看涨抱线形态。蜡烛图形态具备后,我会在原下跌C上画出一条下降趋势线,等待价格向上突破这条趋势线。再接下来,均线会形成多头排列,走一段时间后,再次拧成一股绳,均线再次聚合,等待下次发散。再接下来会出现双重底、三重底、头肩底等价格形态。价格在底部时,会出现如此之多的特征,你随手拿一个,基本就可以给别人分析一番了。看似杂乱无章,其实有章可循。如果将它编成程序怎么样呢?有条件ABCDEF六个,只要符合其中某三个或四个,便做多。
在外人看来,做多条件一会儿是ABC,一会儿是DEF,一会儿是ADE,好像不是程序化啊。其实后台运行的就是程序化。
只要遵循着某种理性的分析而产生的交易,都是程序化交易。只不过没有数字,没有程序,你看着不像而已,不像不代表本质不是。
10.1.2 量化堆积成策略
《海龟交易法则》的作者柯蒂斯·费思说,程序化交易就是搭积木。这话什么意思?各种程序化交易都是从我们最常见的几种方法中组合而成的。这些经典技术分析方法就是积木,最后搭建成形的东西就是交易系统。积木都是一样的,能搭建成大厦还是草棚,就看搭建者的本事了。
那有哪些积木呢?最常见的就是移动平均线,还有各种技术指标。比如说,当MA5上叉MA10,同时KD指标中K线上叉D线时,做多。这就是用积木搭建的一个非常简化的交易系统。
还有一些系统是用基础数据来搭建的,比如RangeBreak日内冲销系统。它只用四个基础数据开盘价、最高价、最低价、收盘价来搭建。或者是海龟法则的交易策略,突破最近50个交易日高低点来建仓,突破最近20个交易日高低点来平仓。还有菲阿里四价系统和空中花园系统,都和技术指标扯不上关系。
所以先回答第一个问题,程序化交易系统并不都是建立在技术指标之上的,只有一部分是。
交易系统建立的基础是否是技术指标,与它的好坏没有必然联系。闻名于世的程序化交易系统——三重滤网,就是基于技术指标来搭建的。
第二个问题,什么是未来函数,打个比方吧,你可能见过一些这样的指标,在盘中它会在盘面上提示“买进”“卖出”的信号,有些以箭头指示。
当价格符合某些条件时,这些信号就出现了,但价格是变化的,价格变化到不符合条件时,这些信号又消失了。它一会儿出现一会儿消失,我们还能靠着未来函数无限制交易吗?
不能!
基本上技术指标都有未来函数。比如均线,MA5上叉MA10时做多。价格在关键价位之上叉上了。价格回落了又没叉上。比如KD也存在这种情况。MACD还是存在这种情况。
只要是带两根线的指标,都存在这种情况。那就选用一根线的指标,一根线的指标通常都有零轴,那么穿叉零轴还是会面对这样的问题。
10.1.3 不要畏惧未来函数
这个问题好像无解!这种无解的东西,放到交易系统里怎么用?用法有两种。
一种是单纯使用法。比如双均线法,短期均线上叉长期均线做多。短期均线下叉长期均线做空。这种方法看着挺土,可以做个回测试试。
目前还没有一种方法在长期范围内比双均线法的收益更高。我们为什么不用?因为价格在大部分时间内都处于震荡状态,也就是均线失效的状态。此时用双均线法会产生大量的伪信号,资金会受到长时间大规模的侵蚀。
说回双均线法的使用,我们以日K线为例。均线就是未来函数,一会儿叉上一会儿没叉上。在一个交易日中,它可能反复来回一百遍。
因为价格是变化的,变化到什么时候?这是关键问题,变化到收盘,收盘后它就不动了。好,那你等它不动的时候买进对吗?不动不就到收盘了吗?
如果你这么问,我想问你14:59:50的时候,它再次发生变化的可能性是不是已经特别小了?当14:59:50的时候,MA5上叉MA10基本已经确定下来了,好,你买进。
或者你会担心这东西不保准,没准它真的就变了,特别是处于关键价格上,一个价位就会导致变化发生。好,那你明天开盘买。第二天开盘了,前一天的变化是不是已经确定了,不会再发生变化了吧。
一般情况下,使用带线的指标都是趋势追踪系统。那么差一天再买,价格即使发生跳空,对于随后的趋势来说也差不了太多。
一种复合使用法。我拿三重滤网来举例,只简单说一下它的原版策略,当日线趋势为上涨趋势时,寻找小时线KD指标低于30的情况。当价格触发了它之前一根K线的最高点时,买进。
此时我们使用的指标是KD随机指标,它也具有未来函数的属性。但是在这里,它不要求KD双线交叉来提示,而是通过KD的数值低于30来提示。最后的交易确认不是用指标来确认的,而是通过价格的突破来确认的。
那么还是那个问题,在这个小时内,KD值可能一会儿在30之上,一会儿在30之下,这怎么办?一个小时很快会过去,你现在处于30小时之下了吧,那就等。等这个小时过去,这个小时过去了,你还处于30之下,那就进入狙击范围了。只要等待价格突破就好了。
如果在这个小时内KD刚刚进入30以下,价格就已经向上突破了前一个K线的高点了,那做还是不做?其实你会发现,当价格向上涨时,随着价格突破了前一根K线的高点,KD值也早已回到30之上了。
这种情况下,三个条件中有一个条件不符合了,这笔交易自然也就取消了,不存在KD是否有未来函数的问题。
共有条评论 网友评论