最佳量化交易的计算机操作系统

本文在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是实现大量定量深度学习和机器学习的研究工作的唯一可行方法,而且一旦获得命令行的专业知识,它就非常强大。但是,它不能处理由于权限或依赖关系问题而导致的错误。此外,混合组件的理念可能会让那些习惯于包打天下的计算机操作系统的人感到困惑。

 

原文地址:https://www.cnblogs.com/evilqliang/p/12197434.html

时间: 2024-10-28 02:27:18

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

计算机操作系统

基于<计算机操作系统>(第四版)总结:OS引论.进程描述与控制.处理机调度与死锁.存储器管理.虚拟存储器.输入输出系统.文件系统 一.操作系统引论 1.目标:方便性.有效性.可扩充性.开放性 2.作用: 1.作为用户与计算机硬件系统之间的接口 2.作为计算机系统资源的管理者 3.实现对计算机资源的抽象 3.发展过程: 1.人工操作方式:用户独占全机,CPU等待人工操作--带(卡)装卸 2.脱机输入/输出方式:事先将装有用户程序和数据的纸带装入纸带输入机,外围机控制,把纸带内容输入到磁带上(类似

程序员的量化交易之路(1)----规划开篇

其实,一直对量化交易有一定的理解和情节.早在中大读研究生的时候实验室师兄,已经去了中国平安核心投资团队,做高频交易研究的国源师兄的影响,就开始对金融世界产生了浓厚的兴趣.看了丁磊编著的<量化投资--策略与技术>和艾琳.奥尔德里奇的<高频交易>,反复的看,但是都入不了味,现在回过头来想,一个连股都不炒的人怎么可能入味呢.对一些金融的基本概念都不懂. 2013年7月出社会工作后,在10月份确立目标.需要炒股,而且需要一个深入的理解金融的世界.所以确定去考一个证券从业考试,选了证券基础和

量化交易和高频交易有什么区别

很多人对于量化交易和高频交易分不清,经常混淆,下面简单说说他们的区别. 量化交易是指投资者利用计算机技术.金融工程建模等手段将自己的金融操作方式,用很明确的方式去定义和描述,用以协助投资者进行投资决策,并且严格的按照所设定的规则去执行交易策略(买.卖)的交易方式. 简而言之,量化交易是以定量化方法进行投资的各种技术综合.现实应用中,量化交易往往与基本面投资.技术分析有机结合,帮助投资者制定决策.减少执行成本.进行套利.风险对冲和帮助做市商实现报价的功能. 按照数学模型的理念和对计算机技术的利用方

量化交易(Quantitative Trading)

什么是量化交易 量化交易是指借助现代统计学和数学的方法,利用计算机技术来进行交易的证券投资方式.量化交易从庞大的历史数据中海选能带来超额收益的多种“大概率”事件以制定策略,用数量模型验证及固化这些规律和策略,然后严格执行已固化的策略来指导投资,以求获得可以持续的.稳定且高于平均收益的超额回报. 量化交易起源于上世纪七十年代的股票市场,之后迅速发展和普及,尤其是在期货交易市场,程序化逐渐成为主流.有数据显示,国外成熟市场期货程序化交易已占据总交易量的70%-80%,而国内则刚刚起步.手工交易中交易

Python量化交易学习课程

量化投资是起源于美国的高级投资方法论,在国内也有十余年的发展历史,代表当今金融业最前沿的投资技术和水准,卓越稳定的实盘投资业绩使得量化投资具有坚实的高端市场需求. 本量化投资方向系列课程通过对各种量化投资方法与理论的介绍,结合机器学习的实际应用案例进行引导式教学,全面地提高学员对量化投资的认知能力和实践能力. 课程地址:Python量化交易课程 面向人群: 适合有志于从事量化投资工作的计算机行业人员及在校学生: 数据科学工作者,可以从本课程中学会从数据科学的方法玩转量化交易: 所有金融机构从业人

量化交易系统平台开发:量化交易的门类区分

随着区块链技术的不断发展,数字资产应用的广泛.量化交易也被采用在了区块链技术上面,目前相对来说想要做量化交易,就需要有专业的团队来进行科学的操盘.也需要有专业的系统平台来承载,然后对接各大平台的交易数据进行专业的操作.那么什么是量化交易呢? 量化交易,就是将人的投资思想规则化.变量化.模型化,形成一整套完整.可量化的操作思路,并且这个思路可以用历史数据进行分析验证,在交易阶段可以由计算机自动执行的一种投资方式.量化交易也是一种交易,那么对于交易,我们如何来进行评价呢? 量化交易的门类很多,大体上

AI量化交易(一)——量化交易简介

AI量化交易(一)--量化交易简介 一.量化交易简介 1.量化交易简介 量化交易是以数学模型为交易思维,以历史数据为基础,以数学建模.统计学分析.编程设计为工具,利用计算机技术从庞大的历史数据中海选出能带来超额收益的多种大概率获利事件以制定交易策略. 2.量化交易的特点 (1)纪律性.量化投资决策都是依据模型做出的,模型会模拟测试成千上万次来达到高容错率.(2)系统性.量化交易数据分析有一套非常全面的数据评测系统,会从多方面考量市场,比如:宏观周期.数字货币估值.换手率.盈利质量.市场情绪等.(

量化交易

什么是量化交易? 为什么需要量化交易? 量化交易能干什么? 做量化交易需要什么? 什么是量化交易? ? 量化交易是指借助现代统计学和数学的方法,利用计算机技术来进行交易的证券投资方式.便于理解的说,量化交易主要是做这样的事: 1.从一个灵感开始 灵感就是指那些你想验证的可能会盈利的方法,比如银行股可能是良好的投资品种.一旦跨过20日均线后股价会继续涨.流传许久的羊驼交易法等等.灵感获取的方式可以是阅读.听人说.自己悟等等. 这里我们以一个简单的情况为例进行讲解.比如你的灵感是这样的: 如果股价显

量化交易简介

量化交易简介 一.什么是量化交易 量化交易(Quantitative trading) 量化交易是借助现代统计学和数学的方法,利用计算机技术来进行投资交易的证券投资方式. 量化交易是从庞大的历史数据中海选能带来超额收益的多种"大概率"事件以制定策略,用数量模型验证及固化这些规律和策略,然后严格执行策略来指导投资,以求获得可以持续的.稳定且高于平均收益的超额回报. 二.量化交易的分类 1.趋势性交易 适合一些主观交易的高手,用技术指标作为辅助工具,但如果只使用各种技术指标.指标组合作为核