以C++为核心语言的高频交易系统是如何做到低延迟的?

在开始前我有一些资料,是我根据网友给的问题精心整理了一份「 c++的资料从专业入门到高级教程」,

点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!

问题中限定语言是C++,可讨论的范围就比较精简了。现有的答案都在谈系统架构层次上的东西,略显跑题。我对C++了解不多,但我尝试以一名C++程序员的视角,从基本思路出发做一个分析,抛砖引玉。

首先我们要明确系统的需求。所谓交易系统,从一个应用程序的角度来说,有以下几个特点:

1. 一定是一个网络相关的应用,假如机器没联网,肯定什么交易也干不了。所以系统需要通过TCP/IP连接来收发数据。数据要分两种,一种从交易所发过来的市场数据,流量很大,另一种是系统向交易所发出的交易指令,相比前者流量很小,这两种数据需要在不同的TCP/IP连接里传输。

2. 因为是自动化交易系统,人工干预的部分肯定比较小,所以图形界面不是重点。而为了性能考虑,图形界面需要和后台分开部署在不同的机器上,通过网络交互,以免任何图形界面上的问题导致后台系统故障或者被抢占资源。这样又要在后台增加新的TCP/IP连接。

3. 高频交易系统对延迟异常敏感,目前(2014)市面上的主流系统(可以直接买到的大众系统)延迟至少在100微秒级别,顶尖的系统(HFT专有)可以做到10微秒以下。其他答案里提到C++随便写写延迟做到几百微秒,是肯定不行的,这样的性能对于高频交易来说会是一场灾难。

4. 系统只需要专注于处理自己收到的数据,不需要和其他机器合作,不需要担心流量过载。

有了以上几点基本的认识,我们可以看看用C++做为开发语言有哪些需要注意的。fbdec18c08ee1a2147eb50a0069ea142.jpeg

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-12 01:42:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-12 01:42:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-12 01:42:03       87 阅读
  4. Python语言-面向对象

    2024-05-12 01:42:03       96 阅读

热门阅读

  1. 重庆市工程技术生态环境专业职称申报条件

    2024-05-12 01:42:03       39 阅读
  2. 【负载均衡式在线OJ项目day3】运行模块

    2024-05-12 01:42:03       38 阅读
  3. 优先队列全面讲解

    2024-05-12 01:42:03       35 阅读
  4. Git使用经验总结5-修改提交信息

    2024-05-12 01:42:03       32 阅读
  5. Day_1

    Day_1

    2024-05-12 01:42:03      30 阅读
  6. RockChip Uboot/Kernel开机LOGO和Android开机动画

    2024-05-12 01:42:03       40 阅读
  7. Python3 笔记:位运算符

    2024-05-12 01:42:03       35 阅读
  8. P1164 小A点菜

    2024-05-12 01:42:03       30 阅读
  9. 设计模式——命令模式(Command)

    2024-05-12 01:42:03       37 阅读
  10. 软件测试概述

    2024-05-12 01:42:03       37 阅读