在投行和对冲基金中,Scala 或者其他 Functional Programming 都用来做什么

应该主要是 Quant 们用来开发策略。Scala 的好处是直接编译成 Java bytecode,跑在 JVM 上所以性能有一定的保证,对于速度要求不高的策略是可以做 Production 级开发的。Functional 一般来说是对 Quant 很友好的开发语言,使用方便,思维贴近数学而不是底层机器。

应该主要是 Quant 们用来开发策略。Scala 的好处是直接编译成 Java bytecode,跑在 JVM 上所以性能有一定的保证,对于速度要求不高的策略是可以做 Production 级开发的。其他的例子还有著名的 Jane Street 用 OCaml 做主流开发语言。

Functional 一般来说是对 Quant 很友好的开发语言,使用方便,思维贴近数学而不是底层机器。尤其对金融或数理背景的人来说是个福音。对于这些人来说,如果要他们去学习 C++ 或者 Java 的各种奇技淫巧,不仅学者效率低下,从公司的角度看也是对人才的浪费。指针,位运算或者面向对象代码写多了你会忘掉数学推导和建模技巧。Functional 算是针对这种问题的一个比较好的方案。像 Scala/OCaml 甚至 Python/Javascript 之类带点 Functional 特性,又能一定程度上兼顾性能的通用语言都可以作为备选。这种情况下一般还会有专门的计算机研发人员做性能上的开发,比如用 C++ 写底层的高速实现,或者做专门的编译器把 Quant 的代码翻译成快速的版本。

纯研究的话用这些其实不一定有什么好处。因为研究工作更需要的是数学方面的功能(而不仅仅是编写时的思维模式)。所以这方面还是 Matlab/R 之类的天下。当然神奇的 Python 在这方面也能占据一席之地,所以如果没有历史包袱其实是非常理想的语言。

最后一提的是,人在江湖,讲究的是拿人钱财,与人消灾。具体用什么语言,肯定是公司说了算,我们要做的就是不要进了公司再说这个我不会,那个学起来太费劲。不管是 C++ 还是 Functional,甚至公司跟你说我们自己开发了一个独门语言跟市面上的长得都不一样,你能说我不想用这个么?为了做到这点,重要的是学会编程的思想和基本功,而不要拘泥于某一种语言。C/C++/Java 一系因为一般大学都会教,所以大家应该都有点基础;而 Functional 是一种和它们的思维模式差别很大的路数,如果没学过,临时上手会比较吃亏,所以建议大家自己找机会了解一下。

延伸阅读:

什么是Scala?

Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言、并集成面向对象编程和函数式编程的各种特性。

Scala有几项关键特性表明了它的面向对象的本质。例如,Scala中的每个值都是一个对象,包括基本数据类型(即布尔值、数字等)在内,连函数也是对象。另外,类可以被子类化,而且Scala还提供了基于mixin的组合(mixin-based composition)。

与只支持单继承的语言相比,Scala具有更广泛意义上的类重用。Scala允许定义新类的时候重用“一个类中新增的成员定义(即相较于其父类的差异之处)”。Scala称之为mixin类组合。

Scala还包含了若干函数式语言的关键概念,包括高阶函数(Higher-Order Function)、柯里化(Currying)、嵌套函数(Nested Function)、序列解读(Sequence Comprehensions)等等。

Scala是静态类型的,这就允许它提供泛型类、内部类、甚至多态方法(Polymorphic Method)。另外值得一提的是,Scala被特意设计成能够与Java和.NET互操作。Scala当前版本还不能在.NET上运行(虽然上一版可以-_-b),但按照计划将来可以在.NET上运行。

文章标题:在投行和对冲基金中,Scala 或者其他 Functional Programming 都用来做什么,发布者:小编,转载请注明出处:https://worktile.com/kb/p/41242

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年2月23日
下一篇 2023年2月23日

相关推荐

  • 土木工程的项目管理和管理学的工程管理有什么区别

    土木工程的项目管理和管理学的工程管理的区别有:1、应用领域不同;2、专业性差异;3、适用范围不同。土木工程的项目管理主要应用于土木工程项目,如道路、桥梁、水利等;而管理学的工程管理适用于各类工程项目,不局限于特定领域。 一、土木工程的项目管理 土木工程的项目管理是指在土木工程项目中,对项目进行规划、…

    2023年7月30日
    7100
  • 什么是端口443

    端口443是互联网上用于HTTPS(超文本传输安全协议)服务的默认端口。HTTPS是HTTP的安全版本,保护数据的隐私和完整性。当你访问一个使用HTTPS的网站时,你的浏览器会与服务器建立一个TCP连接,这个连接的默认端口就是443。 一、定义 端口443是互联网上用于HTTPS(超文本传输安全协议…

    2023年7月29日
    9000
  • 什么是软件项目管理

    软件项目管理指的是对软件项目进行计划、协调、执行、监督和控制,以达到项目目标的一种管理方法。一个成功的软件项目管理需要对项目进行全面规划和有效的资源管理,包括时间、人力、资金和技术资源等方面的管理。 软件项目管理指的是对软件项目进行计划、协调、执行、监督和控制,以达到项目目标的一种管理方法。一个成功…

    2023年2月28日
    33400
  • 嵌入式可以做什么

    嵌入式是用于控制、监视或者辅助操作机器和设备的装置。嵌入式是一种专用的计算机系统,作为装置或设备的一部分。嵌入式是才发展起来的一项IT开发技术。嵌入式开发在FPGA\ARM\DSP\MCU等各个方面都有了细分专业团队进行外协设计。提供从原型样机、顶层软件架构到源码的所有设计。 一、嵌入式是什么? 嵌…

    2023年7月28日
    6000
  • 为什么要用okr

    原因有:一、OKR提供必要的清晰度;二、OKR的工作周期短;三、OKR适合每个业务重点;四、OKR促进公司内部的合作;五、OKR确保透明度并创造意义;六、OKR提供心理保障。OKR方法迫使公司定义其愿景和使命,定义的策略越精确,运营结果就越好。 一、OKR提供必要的清晰度 OKR方法迫使公司定义其愿…

    2023年4月27日
    3300
  • 如何定义需求的优先级

    根据以下几点定义需求的优先级:1、收益;2、惩罚;3、成本;4、风险;5、依赖关系;6、时间敏感性;7、稳定性;8、监管或政策合规。收益是针对变革的宗旨和目标进行衡量的实施需求能够为相关方所带来的好处。

    2023年1月6日
    14000
  • 人力资源如何支持跨部门协作

    人力资源在支持跨部门协作方面发挥着核心作用,关键在于以下几个方面:1、建立明确的协作目标和责任;2、提供协作平台和工具;3、促进沟通和团队建设;4、培训和发展跨部门技能;5、激励和评估跨部门协作。其中,促进沟通和团队建设通过组织定期的部门间会议和团队活动,可以消除隔阂,增强部门间的信任和理解。 1、…

    2023年8月21日
    6200
  • 每日工作安排用什么软件最好

    每日工作安排的软件有:1、Todoist;2、Trello;3、Google日历;4、Evernote;5、Focus@Will。Todoist 是一款功能强大的任务管理软件,可在桌面、移动设备和网页平台上使用。它提供丰富的任务管理功能,包括任务分类、任务优先级、任务标签、任务提醒等功能。 1、To…

    2023年2月26日
    23500
  • 国产数据库大家都用什么管理工具

    国产数据库管理工具包括:1. SequoiaSQL管理工具;2. DAS数据库自动化管理服务;3. 分布式数据库 TiDB 的管理工具;4. GBase 8s管理系统。SequoiaSQL管理工具为开源分布式数据库管理工具,广泛应用于各类国产数据库的管理和维护,可以灵活适配各类数据库产品,有效支撑大…

    2023年7月12日
    17600
  • 精益敏捷项目经理,如何快速开发项目

    精益敏捷项目经理,快速开发项目要做到:一、着重关注最有价值的功能;二、采用迭代式方法;三、实行持续集成和持续交付;四、利用自动化工具;五、保持团队合作。快速项目开发的关键是要集中精力开发最有价值的功能。 一、着重关注最有价值的功能 快速项目开发的关键是要集中精力开发最有价值的功能。通过与利益相关者合…

    2023年3月22日
    3400

发表回复

登录后才能评论
联系我们
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部