针对SPM的一点优化——加入MACD红绿柱拐点判决
(2016-05-25 15:04:37)分类: FTD[期货交易] |
正如前所述,均线交易模型EMA-X不比突破模型(无论是箱体突破,还是趋势线突破,还是像海龟交易系统直接取过去20个收盘价突破,都需要量能放大这一重要规则来进行过滤,在一轮大行情起点的均线交叉点附近是不一定需要量能放大的,所以为了避免错杀正确的起点,我把关于量能放大的判断逻辑删除了。)需要采用量能放大来支持,特别是上涨行情。
显然单独采用EMA金叉或死叉模型也就显得太单薄,导致虚假信号比较多。
目前主要采用了过滤规则是:
1.采用未来函数判断未来两周期价格必须在EMA30之上(针对多头)或者EMA30之下(针对空头),这样至少可以滤掉在均线附近缠绕的60%的虚假交叉。
2. EMA多头/空头排列
当然,如果采用未来三周期、甚至四周期来过滤,那效果会更好,但那也导致了信号发出的时间晚了更多。这就是采用未来函数的代价——你采用的未来周期越长,意味着发出信号的时间越晚。这对于日内大波段也许不是个大问题,但如果波动本身就很少,太晚发出信号就比较容易接近转折点。
突然想到了还有一个重要的趋势类指标MACD没有用(不知道为何文华将其归为摆动类指标),根据埃尔德论述,MACD是比均线更好的系统,不过有待专门弄个MACD交叉模型,以及价格与MACD指标背离的模型。
当前,MACD至少可以辅助判决趋势转折点(MACD红绿柱长度变化的拐点),可以将此逻辑加到BOLL模型中去,从而寻找到更加精准的点,以进一步减少提前入场的概率。
当然,这个也许有点复杂了,采用EMA3斜率变化来判决也是等价的,而且从程序实现来看要简单得多(相邻两K线EMA3斜率乘积为负数就是转折点!)。
好在文华财经这个高级动态麦语言非常好,写完了可以直接运行,而不像采用的C/C++等编译语言,否则还要去安装编辑器、编译器,那会大大降低实现效率。
而且发现最新版本有个功能很实用,就是不同交易日以前采用的是一个小黄线进行分隔,现在直接采用一个矩形框,如果整个交易周期是上涨的,那就是一个空心的框,如果整个周期是下跌的,那就用填充的透明的框,这样就更加直观明了了。
最后,没有十全十美的系统,优化必须是有限优化。过度优化没有必要,边际收益会越来越小。
===========================
通过程序实现来看,还是采用了MACD红绿柱长短变化判决来寻找价格拐点(同样一行核心代码搞定),不知道SLOPE函数如何实现的,发现短期变化无法精确识别。
MACD_GD_FLAG:IFELSE((MACD_Z>REF(MACD_Z,1)&&REFX(MACD_Z,1)
有了这个拐点标记那就厉害了,那就真的可以寻找到局部最高点和最低点位置了,加入到BOLL模型中,就不会提前发出信号了!!!
尽管算法为了取得简单性而采用了绝对值比较,在红绿柱变化的临界点有误差,但是超买超卖区更好不会发生在红绿柱颜色变化的临界区,所以这个误差并不会带来真正的影响,从而获得了程序的简单化。否则那就弄得很复杂了,因为要去判断最近都是红柱,还是都是绿柱,还是红绿柱过渡区域。
值得注意的是:MACD红绿柱拐点与价格拐点本身可能同步,也可能不是同步的。之所以采用MACD红绿柱拐点,而不直接采用价格来判决是因为价格涉及到最高价、最低和收盘价三个价格,到底采用哪一个为标准比较麻烦,而红绿柱长度则表征了多空力量强多转换,具有很大的指导意义。
==================================================
遗憾的是高级编程部分暂时无法实现。因为那是专门针对程序化交易的赢智版本。
当前需要实现功能就是——价格波动接近涨停时,进行声音报警(获取当前合约的涨停价格需要高级函数),以免在接近涨跌停价还去进行开仓操作。
shannon
May 25th, 2016
前一篇:趣谈:现代人的性别问题
后一篇:杨绛逝世:她像一滴水融化在海中