高频交易系统怎样在多线程和端口通讯之间取舍?

论坛 期权论坛 期权     
匿名用户   2018-10-15 23:54   2882   8
提示: 作者被禁止或删除 内容自动屏蔽
分享到 :
0 人收藏

8 个回复

正序浏览
8#
大柳  1级新秀 | 2018-10-15 23:54:42 发帖IP地址来自
不要用多线程,现在一般使用单线程模式,即一颗CPU一个线程,努力把CPU跑满,如果计算能力不够就采用分布式。
7#
baoz  3级会员 | 2018-10-15 23:54:41 发帖IP地址来自
> 多线程系统的延迟小,但不利于代码功能区分
为嘛不利于代码功能区分?

> 多个程序之间端口通讯的方法则代码比较清晰,但显然会增加延迟
增加多大的延迟?是不可接受的么?莫非你的系统需要到微妙以内?

你的目的是解决问题,而不是提出一些不存在的问题。
6#
胡赟星  1级新秀 | 2018-10-15 23:54:40 发帖IP地址来自
以前在法国巴黎银行的打杂时,专门做高频交易系统的那个团队,据说重写了STL,然后用FPGA实现部分核心算法,并把交易服务器尽可能搬到了交易所附近。
5#
陈欣  2级吧友 | 2018-10-15 23:54:39 发帖IP地址来自
我们自己开发的系统基本上还是用socket为主,确实考虑到开发成本的问题。如果数据量大的时候,偶发有线程互斥等其他问题。这也是没办法的事情,一来觉得交易所的数据给的就慢。你本地提高几十毫秒未见得对整体系统有多大提升,换其他的方式还需要各种测试。综合来看,socket易用,也便宜。有些问题可以靠算法来优化,只要稳定,国内基本都ok,国内的数据慢,也不用想太多。
4#
匿名用户   | 2018-10-15 23:54:37 发帖IP地址来自
提示: 作者被禁止或删除 内容自动屏蔽
3#
pig pig  5级知名 | 2018-10-15 23:54:36 发帖IP地址来自
1.怎么感觉在【高频交易】这个话题下的问题的技术水平如此低下?错觉么?

2.既然主要需求是极端高的性能,以及极端低的延迟,那么整个系统的设计原则肯定是:怎么高性能怎么来,怎么简单怎么来。所以:

3.代码功能区分(其实是模块化,低耦合,低硬编码)、多个程序之间端口通讯的方法(难道是端口复用?或者是基于TCP/UDP的进程间通信?)等这些显然会增加延迟的技术,那就肯定不用。

甚至...甚至...甚至....嗯嗯......

4444444.有条件的最好用FPGA、DSP来代替低性能的普通PC机、工作站或服务器,有研发技术实力的研究所或公司甚至可以用HyperIFR51(基于光信量子技术的51单片机)来进行超速计算。有条件的单位可以使用微波通信来代替普通光纤网络,有海量资金的高端企业甚至可以通过核心人脉去租用电信最新最保密的军用级P3OEMod25k(基于核子共振技术的25k极速拨号电话网络)来进行超速通信。噗....
2#
赵劼  5级知名 | 2018-10-15 23:54:35 发帖IP地址来自
题主应该是The Art of Unix Programming这类书看到沟里去了吧,言必称进程,视线程和面向对象为毒物。
1#
like  4级常客 | 2018-10-15 23:54:34 发帖IP地址来自
1. 不要过度追求“distribution architecture”
2. 坚定不要过度追求
3. 打散你的code,分不同的module
    3.1 可以学习C是怎么做的,哪怕是non-OO语言,也是可以打散的
4. 干货时间, martin fowler的microservices: Microservices
    4.1 理解透了,你也知道哪些应该“单独”进程,哪些放在一个进程里multi thread处理即可

PS: 我很不喜欢下面的一些答案,不管咋就喷,从我的经验来看我觉得这个问题挺好的:
market data 和 策略order之间的协调是永远的难点之一。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:24326
精华:1
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP