V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mikewang7681
V2EX  ›  酷工作

Linux 环境下的 C++在高频交易系统开发中的应用

  •  
  •   mikewang7681 · 2019-06-20 14:18:02 +08:00 · 1410 次点击
    这是一个创建于 1764 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Recruitment Consultant:Mike:微信 authorwang,有国内顶级对冲基金 C++ developer 的机会( base 上海,北京(最紧急),杭州),本硕名校 985 优先,年龄<35。


    在金融衍生品市场中,做市商( Market Maker )肩负着为期权期货产品报价( Quoting )的义务。“低延迟”对于这类公司以及量化对冲基金公司而言至关重要,如果你的速度比别人快,同样的报价就可以优先成交,错误报价可以快速撤回,还可以抓市场上的错误定价进行套利。显然,人工下单肯定不可行,而且面对种类繁多的产品,人工报价容很易出现失误,所以我们需要开发交易系统来实现“低延迟”。
    如今,大部分衍生品交易系统都是用 C++实现,这固然与 C++的一些优良特性密不可分,当然也有历史方面的原因。金融衍生品大约发展成熟于 20 世纪 80 年代,当时世界上主流的编程语言有 C,C++,Fortran 等。现在 C++主要的竞争对象 Java 和 C#都还没有出现。而 C 和 Fortran 并不太适合写大型程序,所以,C++在衍生品交易领域就成了主流的选择。
    我们再来了解一下 C++的历史。它发明于 20 世纪 80 年代,大约经历了三个发展阶段。第一阶段因为跟 C 有很好的兼容性,效率与 C 接近,而且还面向对象,在工业界中占据了相当大的份额。第二阶段由于标准模板库( STL )和 Boost 的出现,泛型程序设计占据了越来越多的比重。同一时期由于 Java,C#等的兴起,抢走了 C++的部分市场。第三阶段至今,模板元编程以及新特性的加入使得 C++重新焕发活力,同时也变得更为复杂。
    C++相比于虚拟机语言 Java 和 C#,它直接把源程序编译为机器码,同时可以在编译及链接期间进行优化,以获得性能的提升。相比于动态语言 Python 和 Lua,它减少了运行时的动态类型检测。因为 C++没有垃圾回收(GarbageCollection)机制,所以不用担心延迟的不确定性。又因为它能直接编译成机器码,可以做底层优化,例如使用内部函数和嵌入汇编语言。
    此外,C++做并行计算也相对比较容易,比如可以直接用 CUDA。但是 C++也存在诸多问题,比如编译链接速度慢且容易出错,缺乏其他语言常见功能的支持,开发效率低等等。但是 C++也一直在发展,相信越来越多的问题会得到解决。所以,如果你想开发高性能的服务器程序,那么 C++是一个很好的选择。
    但是,低延迟与 C++并不能划等号。有些公司用经过优化的 JVM,用稍显小众的 Ocaml, Haskell, Erlang 等语言实现交易系统,也有不输 C++的性能。与整体系统架构设计相比,编程语言的影响并没有那么大。交易公司也会租用交易所的机位,用光纤直连,以及把不需要经常变动的部分用硬件实现等等来降低延迟。
    综上所言,C++在交易系统中的广泛运用既有历史原因,也跟自身的特性密不可分。随着信息技术的发展,C++也将在金融交易市场中扮演着日益重要的角色。

    另外相比国外,由于制度的原因,国内股票市场比国外更加无效,这意味着有更多的 Alpha 收益可以攫取,所以近年来国内量化投资领域一直在快速发展。
    1 条回复    2019-06-21 22:50:06 +08:00
    matrixji
        1
    matrixji  
       2019-06-21 22:50:06 +08:00
    消灭 0 回复,C++老码农,然 < 35 就 PASS 了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3242 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 14:08 · PVG 22:08 · LAX 07:08 · JFK 10:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.