大家好,小弟飞狐,在这个系列中我会带着大家用Julia来敲开量化交易的大门(也许是国内第一套Julia量化交易系列)。首先我对Julia量化交易做一个小小的介绍,请注意,这里边儿包含两个词儿,一个是Julia,一个是量化交易。这俩正逐步走热的苗头已现。先说Julia,Julia是一门面向科学计算的高性能动态高级程序设计语言。语法与其他科学计算语言相似,在许多情况下拥有能与编译型语言相媲美的性能。就在今年8月,Julia正式推出了1.0版本。
数值计算方面的编程语言通常分为两大类:
1,静态语言,比如C、C++ 和 Fortran,其优点是执行速度快,但缺点是开发速度慢。
2,动态语言,比如Python、R 和 Matlab,其优点是开发速度快,但执行速度常常很慢。
编程语言可谓种类繁多;数学家、研究人员和数据科学家面临的一大问题常常是,找到实际上适合手头处理的任何任务的某一种语言。为了避免困难,总部位于孟加拉国和美国的初创公司Julia Computing的几位联合创始人开发出了一种通用编程语言:Julia,不是程序员的人经过培训就能使用这种语言。
Karpinski声称,Julia集两者之所长,解决了“两种语言的问题”。
Julia Computing的联合创始人Stefan Karpinski说:“相比其他语言,Julia运行起来快得多,用起来容易得多,还可以无限扩展。”
2009年,Karpinski与Viral Shah、Alan Edelman和Jeff Bezanson三人共同创办了Julia这个开源项目。由于市场反响极好,几位开发者联同Deepak Vinchhi和Keno Fischer在2015年创办了Julia Computing公司。Julia Computing为客户提供收费的支持、培训和咨询服务,不过Julia本身仍可以免费使用。
上图是Julia Computing公司的几位联合创始人Stefan Karpinski、Viral Shah、Jeff Bezanson、Alan Edelman、Deepak Vinchhi和Keno Fischer(从左至右)。
Shah表示,由于Julia核心语言是免费开源的,所以它对印度来说具有重大意义。“Julia对印度初创公司以及关注成本,又有大批工程师的大企业来说很管用。”
Karpinski补充道:“Julia是人工智能、机器学习、深度学习和并行计算这些应用的较佳选择――所有这些领域在印度的发展势头非常迅猛。”
Julia还用于美国航空航天局和劳伦斯伯克利国家实验室的研究,而麻省理工学院专门设有一个致力于研究和发展这种语言的Julia实验室。Shah说:“麻省理工学院林肯实验室的工程师们在研究联邦航空管理局新的下一代飞机防撞系统,他们使用Julia来计算经过优化的逻辑表中的65亿个决策点,以便找出故障。”
Julia还被用于Celeste项目,这是为天空调查而设计的一种统计分析模型。Shah补充道:“研究团队在短短14.6分钟内,借助NERSC Cori-II超级计算机,用Julia对1.88亿颗恒星和星系进行了分类,这台超级计算机是全球功能最强大的十台计算机之一。”
Karpinski说:“Julia可以帮助数据科学家、物理学家、定量金融交易员和机器人设计师解决问题,不必非得成为计算机程序员,也不必雇用计算机程序员其功能转换成计算机代码。”
注意到上面这句话的加粗的内容定量金融交易了么,是的,Julia 已经引起了华尔街的注意。投资银行业正受到来自金融科技公司越来越大的竞争压力,迫使他们考虑利用 Julia 这些新兴语言实现创新。Julia 的架构使得金融和经济学领域的专家们很容易使用,用户体验友好,已受到金融圈部分人士的欢迎。其中一个例子就是美联储对Julia的应用。
“真正让我们感到激动的是,你可以编写高层级的科学、数字计算,而不需要重新编译。通常来讲,当你用 R 或 Matlab 写了一些东西,想让它运行得更快。你需要把它重新翻译至 C++,或者其他更快的语言。而使用 Julia 就不需要这样——它的速度是拔尖的。”
——投资银行 Berkery Noyes 的 CTO Keith Lubell
说到这,很多盆友会说,为毛不用Python呢?
首先,量化交易是以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种“大概率”事件以制定策略,极大地减少了投资者情绪波动的影响,避免在市场极度狂热或悲观的情况下作出非理性的投资决策。从这个层面可以理解到量化交易也是一种交易,与计算机语言是两种不同的概念。
其次,麻省理工学院认为Julia于2012年发布,而随着2018年8月1.0版本的发布,目标将C的速度与Python的可用性、Ruby的动态性、MATLAB的数学能力和R的统计能力。
麻省理工学院的计算机科学与人工智能实验室(CSAIL)也称赞Julia1.0是一个重要里程碑,因为Julia的一个共同创始人是麻省理工学院CSAIL教授艾伦·埃德尔曼,麻省理工学院Julia实验室的主任。
“Julia1.0的发布表明,Julia现在已经准备好将高水平的生产力与Python和R的易用性结合到C++的闪电般快的速度上来改变技术世界,” ——埃德曼
Julia 问世之初就以『性能媲美 C++』闻名,所以高性能计算(high performance computing)是这个语言的一大亮点,无论是之前的元编程还是宏,都体现了该语言本身效率至上的特点。
量化交易越来越火,的确目前很多量化分析都是用的MATLAB或PYTHON。很多萌新不知道如何下手,本系列文章会从最基本的来讲起,以Julia语言来敲门,让萌新小白渐渐成长为量化分析高手。
国外量化金融领域发展日趋成熟,近年来,量化交易在国内掀起热潮,飞狐以 Julia 作为量化交易的编程语言带您进入量化大门。
何为量化交易呢?
1,利用计算机强大的运算能力
2,以数学模型为思维,历史数据为基础,以数学建模、统计学分析、编程设计为工具
3,制定大概率获利的交易策略
聊到量化投资不得不说到华尔街传奇人物詹姆斯·西蒙斯(James Simons),是世界级的数学家,也是最伟大的对冲基金经理之一。西蒙斯运用数学方法来搭建投资模型,从而能够科学精准地预测货币市场的走势变动。这一大胆的跨学科尝试,最终彻底改变了他的人生走向。通过将数学理论巧妙融合到投资的实战之中,西蒙斯从一个天资卓越的数学家摇身一变,成为了投资界中首屈一指的“模型先生”。由其运作的大奖章基金(Medallion)在1989-2009的二十年间,平均年收益率为35%,若算上44%的收益提成,则该基金实际的年化收益率可高达60%,比同期标普500指数年均回报率高出20多个百分点,即使相较金融大鳄索罗斯和股神巴菲特的操盘表现,也要遥遥领先十几个百分点。即使在2008年金融危机时,该基金的投资回报率仍可稳稳保持在80%左右的惊人水准。西蒙斯通过将数学模型和投资策略相结合,逐步走上神坛,开创了由他扛旗的量化时代。西蒙斯的骤富神话让人们对于量化投资有了最为直观而浅显的认识:这能赚钱,而且能赚很多钱。
通过这段西蒙斯的故事我们可以看到,量化交易的优势在于:
1,历史规律中发现概率优势作为投资基础
2,计算机运算能力保证分析广度
3,克服来自人性中的弱点
而量化交易的核心在于无论多复杂的模型,没有一个能长期不变地一直赚钱。
依然需要以人为主导,模型需要人去不断更新,需要人去寻找市场上的规律。
这一篇我们主要对Julia和量化交易做了个基本的介绍,大家已经知道了Julia一门语言,量化交易是一种投资策略、也是一种交易。
下一篇会聊到Julia的安装、Series数据、DataFrame数据对象的生成和访问。