在开始前我有一些资料,是我根据网友给的问题精心整理了一份「 c++的资料从专业入门到高级教程」,
点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!
问题中限定语言是C++,可讨论的范围就比较精简了。现有的答案都在谈系统架构层次上的东西,略显跑题。我对C++了解不多,但我尝试以一名C++程序员的视角,从基本思路出发做一个分析,抛砖引玉。
首先我们要明确系统的需求。所谓交易系统,从一个应用程序的角度来说,有以下几个特点:
1. 一定是一个网络相关的应用,假如机器没联网,肯定什么交易也干不了。所以系统需要通过TCP/IP连接来收发数据。数据要分两种,一种从交易所发过来的市场数据,流量很大,另一种是系统向交易所发出的交易指令,相比前者流量很小,这两种数据需要在不同的TCP/IP连接里传输。
2. 因为是自动化交易系统,人工干预的部分肯定比较小,所以图形界面不是重点。而为了性能考虑,图形界面需要和后台分开部署在不同的机器上,通过网络交互,以免任何图形界面上的问题导致后台系统故障或者被抢占资源。这样又要在后台增加新的TCP/IP连接。
3. 高频交易系统对延迟异常敏感,目前(2014)市面上的主流系统(可以直接买到的大众系统)延迟至少在100微秒级别,顶尖的系统(HFT专有)可以做到10微秒以下。其他答案里提到C++随便写写延迟做到几百微秒,是肯定不行的,这样的性能对于高频交易来说会是一场灾难。
4. 系统只需要专注于处理自己收到的数据,不需要和其他机器合作,不需要担心流量过载。
有了以上几点基本的认识,我们可以看看用C++做为开发语言有哪些需要注意的。