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