设计开发一个高频交易系统,有哪些地方需要注意的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
myself659410
V2EX    程序员

设计开发一个高频交易系统,有哪些地方需要注意的?

  •  
  •   myself659410 2017-08-14 18:40:51 +08:00 10278 次点击
    这是一个创建于 2980 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例如开发语言的选择是否应该选择 java,c/c++这种?(业界高性能一般都 c++ 对硬件有更好的控制能力) 更新与升级需要在设计上注意上什么? 撮合系统分布式还是集中式?如果实现分布式撮合系统有哪些业界的案例? 硬件方面是采用 x86 的服务器,是否可以考虑采用一些最新服务器,充分利用新硬件加速?

    采用 disruptor 开源怎么样?

    37 条回复    2017-08-16 00:03:41 +08:00
    wekw
        1
    wekw  
       2017-08-14 18:48:35 +08:00 via Android
    x86 的网卡不行,网卡延迟 200 毫秒,都是钱呐
    pimin
        2
    pimin  
       2017-08-14 20:39:56 +08:00 via Android
    首先应该找一个有同类项目开发经验的团队
    LosLord
        3
    LosLord  
       2017-08-14 20:41:47 +08:00 via Android
    交易系统,这种东西偏业务型的,感觉用 java 好一些
    lydasia
        4
    lydasia  
       2017-08-14 20:48:35 +08:00 via iPad   2
    @wekw 什么网卡延迟 200 毫秒?
    vitalbo
        5
    vitalbo  
       2017-08-14 20:51:16 +08:00
    java c 都可以 用 c 的多一点
    whileFalse
        6
    whileFalse  
       2017-08-14 21:05:48 +08:00
    java 的话,内存回收会不会卡一秒
    wohenyingyu01
        7
    wohenyingyu01  
       2017-08-14 21:09:35 +08:00   1
    @wekw 咸鱼上 10 块钱买的网卡 10ms 延时,你的 200ms 的 x86 网卡应该是 3 块钱买的吧?
    allenhu
        8
    allenhu  
       2017-08-14 21:11:50 +08:00 via Android
    关键是网速
    binux
        9
    binux  
       2017-08-14 21:12:01 +08:00   4
    @wohenyingyu01 #7 「 10 块钱买的网卡 10ms 延时」,200ms 当然是 200 块啊
    introom
        10
    introom  
       2017-08-14 21:12:49 +08:00 via Android
    @whileFalse 会,看 spark 就知道 gc 很影响效率。所以要么 gc 调优,要么自定义钻石类型跳过 GC.
    然而 cpp 这么美丽,为什么不用? cpp standard draft 那么醍醐灌顶,为什么不像圣经一样人手一本,顶礼膜拜?
    JanDai
        11
    JanDai  
       2017-08-14 21:15:28 +08:00
    做高频交易不用 FPGA 反而用 Java,或许可以试试用 FPGA 实现的 JVM
    wdlth
        12
    wdlth  
       2017-08-14 21:42:52 +08:00
    内核和网络要进行优化,加钱上 IPLC、搞根独揽……
    wevsty
        13
    wevsty  
       2017-08-14 22:10:50 +08:00
    追求运行效率的话,开发语言上当然 C or CPP,当然如果有能力和毅力用 ASM 的话,算你狠。
    nVic
        14
    nVic  
       2017-08-14 23:58:41 +08:00 via iPhone
    最重要的地方其实不是用什么语言和网卡。
    4ever911
        15
    4ever911  
       2017-08-15 00:16:39 +08:00 via iPhone
    楼上的回答都好 young 好 simple
    Admstor
        16
    Admstor  
       2017-08-15 00:22:19 +08:00
    高频似乎对延迟非常非常敏感
    java 应该不行
    基本上只能用 C/CPP

    x86 必须直通上光纤才行吧
    ibx
        17
    ibx  
       2017-08-15 00:23:13 +08:00
    @nVic 请问最重要的地方是什么
    hst001
        18
    hst001  
       2017-08-15 00:24:54 +08:00
    服务器搬到交易所机房旁边
    uuair
        19
    uuair  
       2017-08-15 00:29:23 +08:00
    你是打算自己做,还是有团队呢?
    uxstone
        20
    uxstone  
       2017-08-15 00:40:19 +08:00
    费这么大的劲, 能稳定在多少收益率?
    lightening
        21
    lightening  
       2017-08-15 00:49:55 +08:00
    不是他们搞高频交易的都要把机房放到交易所旁边吗?不然因为光速有限,延迟太大了?
    lsmgeb89
        22
    lsmgeb89  
       2017-08-15 01:01:32 +08:00
    不是搞微波通信吗?

    来点干活,看地一个回答:
    https://www.zhihu.com/question/23185359
    buseni
        23
    buseni  
       2017-08-15 08:01:41 +08:00 via Android
    和语言关系不大吧,golang 或者 php 都可以
    kuno1
        24
    kuno1  
       2017-08-15 08:07:05 +08:00
    这些都是金融科技公司的看家本事,需要相关的网络技术沉淀才有成功机会,先看看内核的 tcp/ip 协议栈 :)
    wekw
        25
    wekw  
       2017-08-15 08:40:38 +08:00 via Android
    #更正# x86 网卡延迟 200 微秒……
    wekw
        26
    wekw  
       2017-08-15 08:45:02 +08:00 via Android
    经过我对办公室内常见以太网设备的 ping 分钟,延迟最低的是惠普打印机,然后是路由器,然后是 x86 机器的网卡。
    jerseyjerk
        27
    jerseyjerk  
       2017-08-15 08:55:42 +08:00 via Android   1
    现在几乎都使用 FPGA 了. 核心部分代码是 C 直接烧入 FPGA. 机器通常部署在离交易所很近的地方,尽可能地减少延迟。你所说的撮合系统,并非一个高频交易系统考虑的问题,通常是由交易所实现的。一个高频交易系统的核心并不极其复杂,真正复杂的是两部分。第一是 compliance, auditing 等金融监管的需求。第二是 Routing,因为很少有通用的高频交易系统,一般都是 commodity 一套,Equity 一套这样,上下游都是不同的系统,所以要做到很高效率的 routing.
    nicevar
        28
    nicevar  
       2017-08-15 09:17:03 +08:00
    @jerseyjerk 上层最重要的部分一定要用 php 或者 go 来写,否则整套系统垮掉
    hienchu
        29
    hienchu  
       2017-08-15 09:18:31 +08:00 via iPhone
    还是先搞清楚什么是高频交易,为什么要高频交易吧
    danielmiao
        30
    danielmiao  
       2017-08-15 09:26:45 +08:00
    不知道你的啥网卡,我的 2 台 gen8 上的虚机互 ping 也就 0.1ms 。。。。。
    另外如果真是这样高频的交易,不应该先考虑用什么样的数据存储再考虑用什么语言么。。相对语言的效率区别,磁盘 I/O 的影响会更大吧
    areless
        31
    areless  
       2017-08-15 09:28:45 +08:00
    有发现没?大多量化高频对冲基金都没有跑赢现在的一系列大盘指数,策略上有专门对付策略的策略,量化上有专门对付量化的量化,重要的是想法不是系统。先玩熟 MT4 吧,MT4 里什么都能做。而且这种庞大的计算系统在市场上获利的作用,并没有被证明过。要么就是用了一段时间没有收益了,要么有了收益一段时间系统出问题了,那跟江湖巫术又有何异?
    zhongkouwei
        32
    zhongkouwei  
       2017-08-15 09:46:46 +08:00
    策略很重要吧,我猜
    china521
        33
    china521  
       2017-08-15 10:14:38 +08:00   1
    什么都不如实盘过的源码来的实在: https://www.botvs.com/strategy/34388
    vjnjc
        34
    vjnjc  
       2017-08-15 11:00:49 +08:00
    @china521 这个看起来厉害
    winglight2016
        35
    winglight2016  
       2017-08-15 11:33:26 +08:00
    @vjnjc 居然 js 写的,作为客户端 nodejs 大概已经是效率比较高的实现方式吧
    omg21
        36
    omg21  
       2017-08-15 13:56:58 +08:00
    1.自己做交易系统,数据源从哪来?就是说怎么知道现在到什么价格了?
    2.现有的文华、金字塔这些程序化交易软件,为什么不用?
    谁能给简单科普一下?
    leloext
        37
    leloext  
       2017-08-16 00:03:41 +08:00
    @Admstor 光纤速度比不过空气中的电磁波速度,介质的区别。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2614 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 06:13 PVG 14:13 LAX 23:13 JFK 02:13
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86