本文在Creative Commons许可证下发布

  我经常被问到的一个问题是:用哪种计算机操作系统和计算软件进行量化交易的理论研究和代码实现?

  我想把这个问题简化,从挑选的计算软件和计算库来反推最佳使用的计算机操作系统。简而言之,就是在本文撰写的时候而言,如果你想进行基于任何严肃的数学理论和金融量化交易研究理论,这里特指机器学习或者深度学习。并且需要在本地研究机器上使用桌面版本,在实时交易VPS或者同等设备上使用服务器版本的话。这种情况下,为了避免这种形式的研究所需的前沿计算库出现问题的最直接的方法是——Ubuntu 18.04LTS Linux。然而Ubuntu/Linux对于我们中的许多人来说可能并不熟悉,因为Windows仍然是家庭和现代办公环境中计算机操作系统的实际选择。

  而且,考虑到个人研究的目标是花尽可能多的时间研究和开发量化交易策略,而不是阅读成堆的编程书籍,那么学习一个对个人来说全新的操作系统和相关的命令行界面(CLI)是否值得?就是一个仁者见仁智者见智的问题了。

  显然,这将取决于自己的情况。对于自己的交易风格,首选的交易研究方法,选择的编程语言和个人设计的交易模型的复杂性都是应该考虑的点。我想说的是,对于目前大多数人选择的基于Python的科学计算和量化研究来说,学习GNU\Linux和CLI将为个人的量化生涯带来巨大的回报。

  现在让我们来看看量化交易研究中可能使用的这三种主要操作系统。

一、Microsoft Windows

  在本文中,我假设几乎所有的读者(如果不是所有的话)都完全熟悉Windows,所以我觉得不需要解释这里是什么,不像下面讨论的其他两个操作系统!

1、有利于量化交易的优点?

  Windows通常很容易使用(大多数新计算机都将其作为默认操作系统提供),而且许多在售的基于图形界面的定量交易软件都是专门为Windows编写的。仅此一点,它就成了许多定量交易的有力竞争者。

  在过去,Windows以不定时的崩溃(著名的蓝屏)而闻名,而新版的Windows在久经考验的Windows NT内核上构建后,它已经变得非常可靠了。

  此外,通过基于云服务(如Microsoft Azure或 Amazon Web Services),可以非常迅速的把基于图形用户界面的量化交易系统从Windows桌面转移到Windows服务器。

  所有主要的关系数据库都在Windows受到支持,这包括MySQL、PostgreSQL、Oracle和微软自己的SQL-Server。这些供应商都为这些数据库提供了直观的图形界面。

2、它的缺点?

  Windows的主要缺点可以说是成也萧何,败也萧何——图形界面。图形界面是对于所有桌面应用的最理想的环境手段。但是对于量化交易而言,尤其是高频交易模型而言,模型严重依赖于自动任务管理和调度,这种情况最高效的手段恰恰是命令行工具尤其是类似于Unix的cron工具。这样使得Windwos的吸引力大大降低了,因为在所需的策略自动化需要的运行频率和程序的运行权限的优先级别调节面前,Windows自豪的图形界面功能就成了它最大的短板。

  同样在提供对Python友好方面体现出不足。虽然目前Anaconda python发布包在解决这个问题上做出很大程度的努力。但是仍然有必要从零开始编译C/C++代码,这时,这些库文件通常会默认假设存在C++编译器,比如GCC。这时,通常我们会安装一个类似于Cygwin的工具。但是,一旦你的研究工作需要通过与C/C++打交道来利用Python库的时候,我觉得不如安装一个GNU\Linux,而不是试图在Windwos中复制Linux的API接口。

  现在的还有一个小问题是,Windows也非常需要资源,因此如果需要绝对的执行速度,Windows可能会比同等的Linux系统慢一点(特别是在服务器版本方面)。

二、Apple Mac OS X

  Mac OS X是苹果系列Mac电脑上的操作系统。它实际上是一个被称为BSD的Unix发行版的经过大量修改的版本。这意味着它实际上对GUI和CLI都有一种“两全其美”的方法。它提供了一个非常直观的基于手势的GUI,但也非常受软件开发人员的欢迎,因为它内置了类似Linux的功能。

  虽然我在GNU\Linux环境中做了大部分的量化交易的开发工作。但是我个人还是倾向于使用MacBook Air编写Python,并且已经有些年头了。

1、有利于量化交易的优点?

  它的优势主要在于它有一个舒适的GUI和强大的CLI,这一点上它类似于Linux。因此,使用直接虚拟环境方法或与预编译工具包(如Anaconda)一起,很容易设置基于Python的量化研究环境。

  它的环境下的CLI带来了Linux系统中所有脚本编写和自动化的能力,由于操作系统允许与已知的生态系统(如Microsoft Office)轻松兼容。因此对于某些用户来说,这可能是一个“值得交易”的要求。

  另外,Mac系统也以极其可靠和稳定而闻名。提供一个个人轶事,我曾经持续251天没有重启我的MacBook Air。在我写这篇文章的时候,它已经运行了81天了!

2、它的缺点?

  也许Mac OS X的主要缺点是,由于苹果采用面向消费者的商业模式,没有一个与量化交易模式相当的服务器环境可以轻松部署。相反,需要将模型移植到Linux服务器发行版(比如Ubuntu服务器)。

  这是一个非常重要的问题,因为包和部署方法的差异可能导致灾难性的生产环境错误,从而使量化战略/投资组合失败。我个人认为这是极有可能在一个快速发展的生产环境中发生的。

  因此,常见的解决方法是使用虚拟机(或Docker等工具)在几乎相同的本地设置上进行开发。然而,这就引发了这样一个问题:为什么首先要使用Mac,而不是使用Linux的本地机器!

  事实上,对于一个特定的购机金额,一台Mac笔记本电脑/台式机通常不如另一家制造商(如联想)的同类机器强大。因此,你要为苹果的“品牌”付出比获得同样的计算能力更多的金钱代价。

  对于基于深度学习的GPU计算的特定用例,Mac可能很难尝试和配置。从零开始构建一台台式机并为此目的在上面安装Linux通常要简单得多。

三、GNU\Linux

  微软的Windows有一个垂直集成的概念,所有组件,快速易用性,图形界面和抽象的复杂性都是围绕以用户为中心。因此对于几乎所有的日常用例来说,这是一个完美的方法,这也是Windows和微软在历史上取得如此巨大成功的主要原因。

  Linux生态系统的结构相当不同。它的原理是基于许多不同组件的分层交互,使用开放和免费可用的代码、图形界面和命令行界面的混合模式,这样使得用户获得使用脚本执行功能强大、复杂的操作的能力。此外,还有多个Linux发行版,它们都以不同的方式混合和匹配软件组件。这对于新手来说是非常混乱的,因为他们大多习惯于Windows或Mac OS X的“一刀切”包打天下的方式。

  前面提到的Ubuntu最初是在另外一个强大的Linux发行版Debian的基础上构建起来的,而且经过多年的发展,Ubuntu已经变得更容易安装和试用。它已经发展成为为基本的文字处理、电子表格和一般的“办公室”任务提供几乎“开箱即用”的解决方案。这使得从Windows或Mac过渡到正常桌面使用更加容易。

1、有利于量化交易的优点?

  Linux的主要优势在于它的CLI功能。它拥有一个非常强大的CLI和SHELL脚本引擎,允许复杂的流程自动化,包括数据管理、回测引擎开发、代理交互和一般研究能力。如果你想用先进的机器学习和深度学习库在定量金融建模的前沿进行研究,特别是对于深度学习,几乎整个研究生态都是使用TensorFlow和PyTorch在Python中进行的,这两种方法都有非常重要的安装需求。事实上,据说,这些库很难在Windows上使用GPU,因此Linux是唯一现实的选择。使用Linux,可以非常直接地为量化交易模型部署过程提供复杂的软件开发覆盖。在Linux/CLI环境中,版本控制和持续集成的所有功能都很容易获得。

  因此,绝大多数顶级量化对冲基金几乎只使用Linux和定制开发环境进行研发,这就并非偶然。对于那些希望进行大量定量或基于机器学习和深度学习的交易研究的人,我强烈推荐使用Ubuntu Linux作为您的操作系统。

2、它的缺点?

  使用Ubuntu/Linux最大的问题是,大部分功能都是通过大量使用命令行界面和脚本来实现的。这些技能可以相对快速地学会,但真正的掌握可能需要数年的时间。Linux有一种“权宜之计”的理念,这可能非常有趣,也可能非常烦人,这取决于您的目标。除此之外,Linux在出现错误时也不太友好。机器学习和深度学习在定量交易研究中依赖于一些前沿的库,比如与GPU交互的TensorFlow/PyTorch。因此,安装驱动程序、库和其他工具可能会导致问题。对于新手来说,这样的问题很难处理,因为错误消息相对来说是不可理解的。这对于那些习惯了Windows和Mac的人来说是非常令人沮丧的。Linux对用户/管理权限有一个更为明确的方法,这通常会阻碍那些习惯于在Windows/Mac OS X上管理权限的新手。还有另一个混乱的来源是软件安装包依赖关系管理,其中某些包(特别是Python库)可以依赖于安装的必要系统包并且正确配置。安装过程中可能会出现模糊的错误消息,需要有一定程度的经验才能进行调试。

结论:Windows和Mac OS X非常适合大多数基于图形用户界面的定量交易研究。然而,它们在很大程度上不适合在技术前沿进行基于深度学习和机器学习的量化研究。Linux是实现大量定量深度学习和机器学习的研究工作的唯一可行方法,而且一旦获得命令行的专业知识,它就非常强大。但是,它不能处理由于权限或依赖关系问题而导致的错误。此外,混合组件的理念可能会让那些习惯于包打天下的计算机操作系统的人感到困惑。

 

最佳量化交易的计算机操作系统相关推荐

  1. 股票量化交易接口策略与资金管理才是实现投资理念的最佳方式

    今天我们要一起来学习的是量化交易策略以及资金管理这部分的内容.我们常说如果想要在市场上获得成功就要对市场的本质有一定的认识.那么关于市场的本质以及不同金融投资理论流派见的分歧,其实从根本上来讲就是&q ...

  2. 股票量化交易接口是否开放?

    股票量化交易接口是否开放?还有待考究. 先来简单了解一下,股票量化交易接口,其实就是一个预先定义的函数,它的目的是让开发人员和开发人员无需访问源代码,也无需访问源代码,也无需理解其内部工作. 有四种类 ...

  3. 你应该知道的21大Python量化交易工具

    技术可用性的快速增长使个人交易者也能够进行系统和算法交易.下面为大家分享2022年 Python 量化交易使用最广泛的21大交易平台和框架.经纪自营商.数据提供商和其他有用的交易库等,这些交易库适用于 ...

  4. windows2008 服务器时间格式改不过来_我用VNPY 1天时间搭建自主量化交易(程序化交易)平台...

    VNPY底层仿真回测系统目前支持上海期货交易所的CTP回测 : http://www.vnpy.cn 实盘期货(支持CTP):http://www.kaihucn.cn Simnow 上期CTP接口官 ...

  5. 量化交易奇才大卫·哈丁的投资之路

    大卫·哈丁小档案 哈丁1962年出生于英国的牛津郡.1982年,他获得剑桥大学圣凯瑟琳学院理论物理学学士学位. 大学毕业后,他进入著名券商伍德·麦肯兹公司(Wood Mackenzie)工作,不久后对 ...

  6. 量化交易服务器系统选择,量化交易该选取什么云服务器

    量化交易该选取什么云服务器 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 本节 ...

  7. 【AI打板?】【量化交易?】究竟是什么? 一句话看懂量化

    量化交易这四个字大家都不陌生,但是从字面意思上又很难理解它的真正含义.其实量化交易并不复杂,也没有营销号传言的那么可怕,简单理解起来他甚至只是一种交易模式,今天就让我为大家揭开量化交易的神秘面纱. 什 ...

  8. 深入浅出Python量化交易实战--笔记01

    第1章 从零开始 本书源于一个真实的故事,故事的主角是一位名叫小瓦的姑娘. 小瓦出生在一个普通的家庭,父母都是老实淳朴的普通人,靠着并不 丰厚的收入把小瓦养育成人.18岁那年,小瓦考上了一所不好不坏的 ...

  9. 深入浅出Python量化交易实战--第1章 从零开始

    本书源于一个真实的故事,故事的主角是一位名叫小瓦的姑娘. 小瓦出生在一个普通的家庭,父母都是老实淳朴的普通人,靠着并不 丰厚的收入把小瓦养育成人.18岁那年,小瓦考上了一所不好不坏的 大学,所学专业是 ...

  10. Python量化交易学习入门

    量化交易-Python实现 一.量化交易的流程和概念 1.数据分析I2O流程 2.量化交易和高频交易.自动交易的区别 3.量化交易的流程 二.量化交易的分类 三:常用量化框架 四.一个完整的策略 五. ...

最新文章

  1. DataTable中进行Distinct、Group by、Join、Create
  2. html5的交互式微课,浅谈交互式微课的几个特征
  3. strstr函数_【每日编程176期】实现strStr() II
  4. 计算机组装活动口号,广教育、多技能、求发展喜迎计算机系第五届电脑文化节...
  5. 京东大数据研究院:智能马桶四年销量翻10倍
  6. OAuth 授权的工作原理是怎样的?
  7. 查看提交历史(git log)
  8. Wilcoxon秩和检验简介与MATLAB实现
  9. Vivado2018的使用
  10. 【元器件学习笔记—电阻】(8)——电阻分压电路
  11. 读英语计算机书籍读后感,英语读后感
  12. 企业内部流程运转受阻?免费又高效不愧是它
  13. 【AIGC使用教程】Notion AI 从注册到体验:如何免费使用
  14. html 按钮吸底,CSS实现footer“吸底”效果
  15. MFC应用的菜单,工具栏和状态栏(vs2019)
  16. [学点英语]一些常见的英语词汇缩写及读音纠正
  17. 一直不懂scope.$index, scope.row是什么意思,现在知道了
  18. 创建一个 Spring Boot 项目的4种方法,你会几种?- 第396篇
  19. 基础篇章:React Native之 ScrollView 的讲解
  20. 车易加加油优惠卡_丰田Supra GRMN或2023年发布可 能搭载宝马3.0T发动机

热门文章

  1. 中级php工程师笔试,PHP工程师笔试题目及行测题型示例
  2. 第1章 Python基础
  3. (三万字长文)类型即正义:TypeScript 从入门到实践系列,正式完结!
  4. 力扣刷题 DAY_76 贪心
  5. ffmpeg linux 升级_linux系统部署ffmpeg视频转码环境及使用方法 | linux系统运维
  6. EXCEL姓名转换为拼音缩写
  7. 快速简单的方法,彻底解决新浪微博自动关注营销号的问题
  8. jquery按钮加载动画插件loda-button
  9. 微软出品的Python小白神器,真香!
  10. Kotlin细节十五:作用域函数与 this it 关键字