首先什么是全自动交易?我认为排除因特网连接不畅因素,如果能够上午开机启动交易程序后直到下午市场收盘关闭程序,期间不再人工干涉而电脑能自动完成所有交易的话,那就可算是实现全自动交易了。这个听起来难度挺大,其实所涉及到的编程知识不是特别复杂,理工科大学毕业生如果有一定的自学能力,通过一段时间的学习和努力都可以达到这个目标。看这个博客时间长的朋友知道我两年前已经解决了全自动化交易的问题,但我大学里学的也不是IT相关专业,说到电脑编程相关知识,只是先后读过中学里的LOGO, FORTRAN 两门副科和大学的公共课程BASIC 基础三门而已。好在后来新出的一些算法语言虽然各有自己的语法,但是如何把人脑的逻辑转化成电脑的机器逻辑,基本思路和方法都是十分相似的。这里碰到的一个问题是钻研精神。我看到海内外交易论坛中有些朋友把很多软件都玩了个遍,其中一些还很深入,可最后仍然没有找到适合自己的平台,这十分可惜。交易员的时间是宝贵的,熟悉和学习各种交易平台不是我们的主要工作,利用它们来盈利才是。有些专业搞计算机的朋友水平极高,已经到了自己编写交易平台的境界。高山仰止,不过非职业IT人士也不必灰心气馁,编程能力和盈利能力之间,本没有明确的函数关系,另外是否需要 reinvent the wheel, 这也是一件值得商榷的事情。幸运的是在全球化背景下,海外交易软件行业为我们提供了极大的选择空间。我一直赞同这样一个看法: 我们日常所做工作的百分之九十五,在任何一个成熟的海外交易软件平台上通过二次开发都能完成。诸如浏览行情,测试研发,乃至自动交易这些任务,用TRADESTAION, MULTICHART, NINJATRADER, AMIBROKER, OPENQUANT, RIGHTEDGE 其中任何一个软件都绰绰有余。怎么选呢?不妨结合自己所需要完成的任务都去看看,看着顺眼的就是适合的,适合的就是最好的。铆牢一个钻研下去,假以时日成功的机会大。当然,二次开发是必须的。无论你选择什么平台,下载安装了该平台以后还是需要编写一些公式来把你的交易策略上载到平台之中进行研发测试。如果研发成功以后还要进行策略部署,需要发展相应的自动订单处理系统,这是自动交易的基建部分(ATS infrastructure ),大多需要更复杂更精确的编程。成熟的订单处理系统可以做到运行期间不需要人工的介入,realtime running error handling 非常重要。全自动交易程序一般由交易策略/交易执行/交易监控 ( Strategy/ Execution/ Monitoring 三个部分组成。其中监控部分的代码往往是最长的,远远长于策略和执行子程序。
为什么ATS最好自己编呢?我想可能有三个原因。首先是使用习惯的问题。如果东西是自己写的,那么肯定可以最大限度地符合自己的操作习惯。大到下单种类/下单数量/scaling 方法/hosted server的设定 ,小到界面上一个按钮放置的位置,都可以调试到让自己满意为止。第二个原因是ATS平台的打造,和任何其他软件产品一样,不是一件一劳永逸的事情,需要经常更新和升级。( ATS 中的system(系统),指行使下单改单撤单职能的自动订单处理程序,不是指交易策略)。交易品种,交易规模,账户数目,甚至API接口端程序升级带来的种种细微变化都可能随时引出新的问题,对订单处理系统提出新的要求,所以后续的维护很重要,如果不是自己编写,发生问题时很可能会发生束手无策的情况,相当麻烦。最后一个原因是心理方面的。想想看,把你的机器灌输给一台没有生命的机器,让它 do the dirty job for you——日复一日地严格按照你的思维去重复繁杂无趣的盯盘下单工作,这是件多么有趣的事情。如果能产生盈利的话,毫无疑问这就是交易的最高境界。这里如果ATS 不是你自己编程的,那么乐趣会少很多。当然对交易而言,物质上的获得是第一位的,精神上的追求要稍后才会发生。在刚踏入这个行业的时候,只要能保证盈利,哪怕是blackbox系统大多数人都会毫不犹豫地接受。所以不难理解,为什么commercial trading system(指交易策略)市场虽然水货多多仍然存在了几十年。
|
|