智能进化

上一篇写到自适应策略,目前已经设计好一套思路,从已经做的情况看,能找到不错的回测解。实盘运行了一组策略,坚持运行了一星期,效果出乎意料。

印象比较深的有好几个单子。第一个是GBPUSD,在涨势凶猛的时候系统下出了一个空单,当时我参考了市面上的投机情绪,以及从当时的趋势来看,下空单相当不明智。我最终傻乎乎的手动做了个对冲,结果涨了没多久,市场开始横盘,我手动把对冲单来回做了几次,最后还是选择了对冲。到晚上的时候,市场开始下跌,结果命中了目标价。另一个是USDJPY,做了一个多单,当时虽然市场在上涨,但是H4已经接近布林线上轨,自己记录了下不看好,但还是选择观望了一段时间,几乎过了一天,都没有涨到目标价,离目标价就是差10来个点就开始下跌。最后连续反复几次,终于被一次下跌吓住了,又选择了对冲。结果又过了一天,USDJPY终于涨上去了,这一单又浪费了。还有一次EURUSD,单子下完就觉得这单下得好牛,选择的目标价相当有创意,我认为是个好单,结果没过多久,命中目标。总体看来,系统的单子比自己分析沉着冷静,而且常常反预期,颇有大师风范。

运行了一周还是把策略停住了,主要觉得研究和部署方面还不够,不想急于上马。这个期间出现了不少部署的问题,后来一一解决,当然少不了不少耗时的功夫。我觉得这也不好,就是过于追求完美,打游戏的时候也是这样,老是喜欢在家屯兵,觉得势力不够强的时候不敢动,结果好不容易觉得满意了,一出兵反而被打得一塌糊涂。就是缺乏实战经验的问题,希望赶紧改。

还有就是自己应该停掉失败的手动交易,转到全自动交易上来。事实一再证明这种决策应该是正确的,但老有一种幻觉,认为自己手动交易也会成功,不能让这种情况继续了。

现在的情况是我把目前的模式进一步参数化,变成了一个通用的程序,自适应的整个模式已经变成规范化了,寻找一个接一个策略仅仅是时间问题。但在目前,即使是一个模式,求解空间也相当的大!

于是问题又来了,需要在极其众多的优化解中进行分析,找出比较好的解。然后把这些解放到更长的时间段内去测试,再来参考哪些好哪些差一些。

比如有一部分程序,过去三年效果很好,然后再载入到过去十年,效果依然不错,这些解我可能就用了。但有些解则放入十年周期会效果完全不及预期,那肯定需要放弃。同时还要避免多个优化解过于接近的问题。

尽管已经写了相当多的代码来减少工作量,但仍然逃不出手工验证的框架。这其中的工作量大的不行。计算需要十个小时七台电脑为一个单位计,已经是在尽力凭借经验减枝的情况下。然后是人工的验证,随随便便就是一天可能还验证不完一组,其中还有不少是跳着看过去的。

然后还要面临更多的模式。真正策略投入市场还得统计分析什么的。以及我所想到的各种点子,需要更多的代码和时间。

即使是这样,还有一关就是不放心啊!-_-!

必须尽可能的自动化,多用程序逻辑解决问题,尽量减少人肉分析,这是我对自己的一个提议。

以及接下来更希望做的一件事,就是把前两年学习机器学习的那一套,尤其是遗传编程的东西用上,目前来看,技术上已经基本打通了,但就是需要时间。

Genetic Programming和Genetic Algorithms的不同在于,前者是生成解决方案的程序,后者是寻找优参的程序。

个人理解,大部分优化算法的基本目的都是减枝,因为穷举的范围大到不可计算。GA的算法好比已经设计好一个物种,比如蝴蝶,然后进化出各种不同颜色的翅膀而适应环境。GP不同于一般优化算法,属于生成算法类的算法,好比能生成物种,除了蝴蝶还有老虎,狼,鳄鱼,蚯蚓,蟑螂什么的。

这两种程序都写过,GA是用规定的几何图形生成尽可能相似的图片,GP则是生成包含各种算术法则的多项式。最大的好处是不必寻找最优解,只需要寻找局部优解,这样还可以避免全局搜索导致的解空间过于集中适应性太差的问题。还有一个好处是可以在迭代n次后觉得差不多就能喊停,做一些分析觉得可以就用了。

除此之外,还要考虑种族大灭绝的问题。市场跟大自然真像。

这种研究越来越有意思了。想想就觉得有点小兴奋呢。当前需要把自适应算法尽可能用到多的模式中去。希望自己能把握好工作和休息时间的安排,我最大的问题是一工作起来就太投入,休息时间严重不足!

Leave a Reply