说起我的程序化之路,那要从3年前被人拉进来开户做外盘黄金开始说起。
那时候啥都不懂,开户交易了5000块,做了3个月,亏完了。
然后也就没有再做,但心里一直埋着这样一个冲动想去战胜它。
于是毕业的时候由于本专业没怎么读书,就决定找了一家做伦敦金的公司上班。
上班的第一天老板让我们自己开户入金交易,说是积累实盘经验。
硬着头皮拿了5万人民币进来做,做了半年,最低到8千,后来又回到4万,最后亏到剩1.5万,然后我出金不做了。
前前后后刷了将近150手,算算手续费150*400,我帮老板赚了6万,我却没赚到钱,现在想想好亏啊。
后来,老板看我刷单的能力还不错,就让我留下来继续干了。
后来将近半年也没有做自己的,一直在代客操盘,维护客户,发策略,研究策略。
然后直到1年半前,慢慢总结自己这将近1年多的临盘经验,越来越觉得,手动交易,由于无法进行回测。因此也就无法判断方法是否可行,所以基本会不断的失败。再者我曾经因为失恋,交易做的一塌糊涂,所以慢慢的在那时坚定了做程序化的想法。
最初的开始是学习MT4平台的MQL4,从最开始的网上购买MQL4编程教程,到慢慢的学会了基本的语法,能够读懂,到最后能够理解大多数的策略,能表达自己策略,过了3个月吧,最后可以自己差不多的理解网上大部分的交易系统了。但是,不断的回测,回测,总是发现网上找不到一个能赚钱的东西,只要是网上公开的。
既然复制别人没有前途,那我就开始自己写系统了。
我最开始的第一个系统是双均线系统,金叉做多,死叉做空,我采用优化的方式,给长线周期和短线周期都取值为1-400,我想400*400个组合,肯定能找到一个回撤小,收益好的曲线吧。但是,事与愿违,我找不到一个好的组合。之后的故事也就很自然了,我又写了好多自己以前的思路,然后发现,如果不去优化他,根本无法赚钱。而且多半都是历史最好的结果才能换来稍微舒服的收益曲线。
就这样迷茫了2个月,然后不断地去研究那些索罗斯、巴菲特、西蒙斯,特别是西蒙斯,能找到的资料我都要反复的读几遍,希望从中获得大师的灵感。然后慢慢的我就总结了我自以为一个交易系统所应该的过程。(这是我交易这些时间到目前为止的总结)
1.这个交易思路一定要有坚实的理论依据作为前提,并且这个理论,一定要同你个人长期交易中总结下来的经验相吻合。那些从别人身上拿来的指标,或者策略,如果不是你自己的,那么只要它一发生亏损,你就无法坚持下去,最后的结果就是你必然会亏损,然后放弃交易。举个例子,套利,同一产品在不同市场的价格出现显著差异,然后进行高卖低买,最后价格回归,获利离场。这是我个人在长期交易中总结的经验,同时也是目前市场上理论最为成熟的交易思路之一。
2.如果你已经日日夜夜不断的交易了1年以上,那你应该就能体会第1点了,接下来拿着你成熟的交易思路(呵呵,第一个失败的概率很大,你可能要总结很久,总结到很多个,才会有一个靠谱的),将它表达成为能够程序的代码,这时候你需要选择一个平台,学习这个平台的语言。目前大多数的平台的语言都相对简单,因为平台一般都会封装各种函数给你用,你只要会基本的语法,然后照着平台给你提供的例子,就能差不多的表达出来了。但是如果你想往更加专业的去走,那你可能要学学VBA,JAVA,C++等,去进行二次拓展,甚至是写自己的CTP交易终端。我现在就是用VBA在玩金字塔,然后C++学的差不多了,准备开始写CTP交易终端。
3.拥有了以上2点,这时候我就开始给自己写策略了,但是,计算机毕竟还是计算机,想要表达你的思路,必然要带有参数在里面,但是,所有写过系统的人都知道,参数这个东西是魔鬼,没有不行,但是越少越好。我的方法是,不优化,并且将参数设定在一个范围。举个例子,我进场了多单,我离场选择下破N个周期的低点。N:=20-INTPART(ENTERBARS/5);
这时候的N就不是一个固定的参数,而是随着下单之后的周期来决定,时间越长,越容易离场。
4.搞定了编写策略的问题,并且参数也很少,同时没有进行优化。这时候,我们可以开始进行回测了。如果回测的结果也很好,恭喜你,你又靠近胜利了。如果回测的结果不好,那就继续努力吧。但是,很显然,还有一个问题,就是滑点的问题。记得,有一次好像是美联储的利率决议,我的一个现货白银的单子在4400想要平仓,结果滑点了120个点,给我在4280成交,当然这个是极端的情况,但是一般的情况下,滑点的是必然的。我现货白银实盘了2个礼拜后,将回测的结果跟实盘的成交进行对比,发现滑点一般是1个点,不管是开仓还是平仓都是,所以,我把回测的代码改成价格到达之后,多单开高俩个点,平仓平低一个点。这时候我再去回测,发现策略可行,那基本上,我这个策略就非常完美了,如果,加上滑点进行回测,这个策略是亏钱的,那可能一切都要从头干起了。
5.未来函数,闪烁等骗人的问题,我就不在这里说了,没意思。
当然还有一个滑点的特殊情况就是,每个交易周期开盘的时候,经常会有跳空,这时候的交易策略一定要禁止在这个时候进行交易,因为成交的滑点问题十分巨大。所以我个人的策略一般不做开盘的一段时间。
6.策略是长线还是短线的问题?个人觉得,如果你的短线策略可以走完以上的步骤,并且在回测的结果中符合预期,那么你就可以继续坚持。但是,这样的策略其实个人不太支持,毕竟频繁交易,实在不是一件好事。我个人是长周期趋势跟短线交易多策略的方法。