例如开发语言的选择是否应该选择 java,c/c++这种?(业界高性能一般都 c++ 对硬件有更好的控制能力) 更新与升级需要在设计上注意上什么? 撮合系统分布式还是集中式?如果实现分布式撮合系统有哪些业界的案例? 硬件方面是采用 x86 的服务器,是否可以考虑采用一些最新服务器,充分利用新硬件加速?
采用 disruptor 开源怎么样?
1
wekw 2017-08-14 18:48:35 +08:00 via Android
x86 的网卡不行,网卡延迟 200 毫秒,都是钱呐
|
2
pimin 2017-08-14 20:39:56 +08:00 via Android
首先应该找一个有同类项目开发经验的团队
|
3
LosLord 2017-08-14 20:41:47 +08:00 via Android
交易系统,这种东西偏业务型的,感觉用 java 好一些
|
5
vitalbo 2017-08-14 20:51:16 +08:00
java c 都可以 用 c 的多一点
|
6
whileFalse 2017-08-14 21:05:48 +08:00
java 的话,内存回收会不会卡一秒
|
7
wohenyingyu01 2017-08-14 21:09:35 +08:00 1
@wekw 咸鱼上 10 块钱买的网卡 10ms 延时,你的 200ms 的 x86 网卡应该是 3 块钱买的吧?
|
8
allenhu 2017-08-14 21:11:50 +08:00 via Android
关键是网速
|
9
binux 2017-08-14 21:12:01 +08:00 4
@wohenyingyu01 #7 「 10 块钱买的网卡 10ms 延时」,200ms 当然是 200 块啊
|
10
introom 2017-08-14 21:12:49 +08:00 via Android
@whileFalse 会,看 spark 就知道 gc 很影响效率。所以要么 gc 调优,要么自定义钻石类型跳过 GC.
然而 cpp 这么美丽,为什么不用? cpp standard draft 那么醍醐灌顶,为什么不像圣经一样人手一本,顶礼膜拜? |
11
JanDai 2017-08-14 21:15:28 +08:00
做高频交易不用 FPGA 反而用 Java,或许可以试试用 FPGA 实现的 JVM
|
12
wdlth 2017-08-14 21:42:52 +08:00
内核和网络要进行优化,加钱上 IPLC、搞根独揽……
|
13
wevsty 2017-08-14 22:10:50 +08:00
追求运行效率的话,开发语言上当然 C or CPP,当然如果有能力和毅力用 ASM 的话,算你狠。
|
14
nVic 2017-08-14 23:58:41 +08:00 via iPhone
最重要的地方其实不是用什么语言和网卡。
|
15
4ever911 2017-08-15 00:16:39 +08:00 via iPhone
楼上的回答都好 young 好 simple
|
16
Admstor 2017-08-15 00:22:19 +08:00
高频似乎对延迟非常非常敏感
java 应该不行 基本上只能用 C/CPP x86 必须直通上光纤才行吧 |
18
hst001 2017-08-15 00:24:54 +08:00
服务器搬到交易所机房旁边
|
19
uuair 2017-08-15 00:29:23 +08:00
你是打算自己做,还是有团队呢?
|
20
uxstone 2017-08-15 00:40:19 +08:00
费这么大的劲, 能稳定在多少收益率?
|
21
lightening 2017-08-15 00:49:55 +08:00
不是他们搞高频交易的都要把机房放到交易所旁边吗?不然因为光速有限,延迟太大了?
|
22
lsmgeb89 2017-08-15 01:01:32 +08:00
|
23
buseni 2017-08-15 08:01:41 +08:00 via Android
和语言关系不大吧,golang 或者 php 都可以
|
24
kuno1 2017-08-15 08:07:05 +08:00
这些都是金融科技公司的看家本事,需要相关的网络技术沉淀才有成功机会,先看看内核的 tcp/ip 协议栈 :)
|
25
wekw 2017-08-15 08:40:38 +08:00 via Android
#更正# x86 网卡延迟 200 微秒……
|
26
wekw 2017-08-15 08:45:02 +08:00 via Android
经过我对办公室内常见以太网设备的 ping 分钟,延迟最低的是惠普打印机,然后是路由器,然后是 x86 机器的网卡。
|
27
jerseyjerk 2017-08-15 08:55:42 +08:00 via Android 1
现在几乎都使用 FPGA 了. 核心部分代码是 C 直接烧入 FPGA. 机器通常部署在离交易所很近的地方,尽可能地减少延迟。你所说的撮合系统,并非一个高频交易系统考虑的问题,通常是由交易所实现的。一个高频交易系统的核心并不极其复杂,真正复杂的是两部分。第一是 compliance, auditing 等金融监管的需求。第二是 Routing,因为很少有通用的高频交易系统,一般都是 commodity 一套,Equity 一套这样,上下游都是不同的系统,所以要做到很高效率的 routing.
|
28
nicevar 2017-08-15 09:17:03 +08:00
@jerseyjerk 上层最重要的部分一定要用 php 或者 go 来写,否则整套系统垮掉
|
29
hienchu 2017-08-15 09:18:31 +08:00 via iPhone
还是先搞清楚什么是高频交易,为什么要高频交易吧
|
30
danielmiao 2017-08-15 09:26:45 +08:00
不知道你的啥网卡,我的 2 台 gen8 上的虚机互 ping 也就 0.1ms 。。。。。
另外如果真是这样高频的交易,不应该先考虑用什么样的数据存储再考虑用什么语言么。。相对语言的效率区别,磁盘 I/O 的影响会更大吧 |
31
areless 2017-08-15 09:28:45 +08:00
有发现没?大多量化高频对冲基金都没有跑赢现在的一系列大盘指数,策略上有专门对付策略的策略,量化上有专门对付量化的量化,重要的是想法不是系统。先玩熟 MT4 吧,MT4 里什么都能做。而且这种庞大的计算系统在市场上获利的作用,并没有被证明过。要么就是用了一段时间没有收益了,要么有了收益一段时间系统出问题了,那跟江湖巫术又有何异?
|
32
zhongkouwei 2017-08-15 09:46:46 +08:00
策略很重要吧,我猜
|
33
china521 2017-08-15 10:14:38 +08:00 1
什么都不如实盘过的源码来的实在: https://www.botvs.com/strategy/34388
|
35
winglight2016 2017-08-15 11:33:26 +08:00
@vjnjc 居然 js 写的,作为客户端 nodejs 大概已经是效率比较高的实现方式吧
|
36
omg21 2017-08-15 13:56:58 +08:00
1.自己做交易系统,数据源从哪来?就是说怎么知道现在到什么价格了?
2.现有的文华、金字塔这些程序化交易软件,为什么不用? 谁能给简单科普一下? |