开发了这么久EA也发现了不少东西,但有一个东西却是刚刚发现,就是外汇的黑暗之手,要想盈利必须要搞明白这里面的原理。
在程序里面所有下单平仓动作都是根据获取到的行情数据进行的,这些数据从哪里来的呢,当然是行情服务器推送过来的数据,这样的话我们所有的行动就是由于网络原因总是会慢于服务器的,不管你的网络有多快,我们所有决策永远是一个延后的行动。这样就产生了黑暗之手的问题,造成我们的线下测试盈利曲线很优美,实际线上总是会不断亏损,我称之为黑暗之手。
我的测试过程如下:
第一步:我会创建一个buystop订单,距离当前行情位置10个点。第二步:检测当前行情和我创建订单的距离,当小于10个点时,我会步进修改订单创建位置。从逻辑上来讲,行情向上移动,我也移动,这样永远不可能成交。但现实中不是这样的,居然很多情况下都可以成交,也就是订单跳跃了我这个距离。我的服务器可以说是1.4毫秒都不管用。所以对我们来说我们永远是延后的,我也是在网上看到这些一个算法,居然可以成交并盈利,我一看这如何盈利,我的第一直觉这不可能成交。
有了以上的测试过程,我规划了我新的算法,假设一次跳跃几十点我就可以盈利了不是吗? 对于波动大的行情是很管用的。一次跳跃40点以上就可以实现稳定盈利,这里就怕一种情况,就是跳到你的指定位置成交后立即回抽,正好止损出局,这样就变成亏损了。
如果利用以上特性就需要仔细考虑。我给出了以下方案:
对于跳跃大的我创建两个方向的Stop订单,这样不管是哪个方向,只要大于60点的超级跳跃,就可以实现稳定盈利。这种机会其实是不多的,超级跳跃都会发生在行情剧烈波动的时候。
对于跳跃不大的情况,我创建反向的limit挂单交易,离行情点的距离不要大于10个点,当跳到位置后立即回抽,这样就可以盈利了。这种很合适跳跃不大的情况。
这次的发现真是感觉很奇特所以和大家分享下,我相信总会找到那条稳定盈利的之路。目前三套策略都是测试中,已纪表现出不错的业绩。