功夫核心一直都是支持C++编写策略的。目前的产品形态主要是基于扩大用户受众数量来考虑的。任何一款产品,如果不能得到足够的用户数量都是无法生存的,所以对大家来说,就必须在性能和产品易用性之间找到一个平衡点。纯粹考虑性能,当然是C++,操作系统深度定制,高端网卡,FPGA一步一步往上码性能会更好,但问题是这样做,有多少用户是真正需要的?这样做,最后一定是沦为一个纯定制项目,格局太小了。
功夫本身的定位是一款通用产品而不是某种神奇的技术实现,需要先理解这一点。你如果把它当成一个产品来用,需要考虑的是产品的设计语言是否符合你的业务需要,产品本身的架构是否能长期可持续升级,扩展性是否足以支撑未来多种多样的策略需求,或者大道至简的说这产品究竟有没有帮你节省掉你不愿意花费的时间?在这些考量里,功能、速度占的权重其实都是没那么大的,因为这些总可以随着开发的推进而逐渐实现或提高,关键在于这产品的基础是不是足够扎实,三天两头推翻重来的东西才是最要命的。
举个实际的例子。在一个自动化交易系统里,很可能同时运行若干个策略,每个都有几十几百个限价单,这个时候市场突发状况,你需要立刻一键停止策略并撤掉这些单子,并且正确维护各个策略的交易记录。偶相信对绝大多数交易者来说,需要的就是这么一个直观的按钮而已,点下它世界安静,没有人真的有兴趣想研究到底触发了那些计算机信号,内存硬盘上的数据缓存到底怎么维护,网卡收发了哪些包。就这么一个操作,你猜猜底层实现的工程量有多少?怎么做能保证在各种操作环境下以各种方式使用它都能正确执行(同时还不影响正常情况下的系统运行速度)?如果你用的产品从根本上就无法支持这样的操作,你还会愿意长期使用吗?
诸如此类的问题还有很多。如果从这个角度思考,你会发现其实这个行业根本没有多少人真正理解IT、产品和工程这些概念,有太多产品从根本上设计的就是错的,实现更是到处给自己挖坑,太多人的时间精力浪费在不知所谓的地方。如果一个需要在市场上撕杀、靠交易盈利的人天天琢磨计算机原理还引以为豪,偶都想象不出还有什么比这更浪费的行为,但现实就是这行业里还挺常见。
最后回到问题,沿着偶上面讲的逻辑,功夫现在的产品形态,就是为了让更多人能够开箱即用,甚至连Python都不需要自己额外安装,就可以直接切入到策略开发和运行,在这阶段浪费的那点速度其实根本不算什么;而后续随着业务升级, 各种操作系统定制、绑核、网卡定制甚至FPGA方案都可以在后台无缝切换,这一切也都是在不影响策略开发体验的情况下提供的。简言之,如果你的交易人生是场马拉松,功夫要能从起点陪你到终点,这也是大家坚持做这个东西的核心逻辑。
更多IT知识欢迎关注偶哦