金融危机经典交易平台下载

大家好,关于金融危机经典交易平台下载很多朋友都还不太明白,今天小编就来为大家分享关于什么叫金融 这样理解对吗的知识,希望对各位有所帮助!

本文目录

  1. 什么叫金融 这样理解对吗
  2. 第1章 为什么将Python用于金融

一、什么叫金融 这样理解对吗

是货币流通和信用活动以及与之相联系的经济活动的总称,广义的金融泛指一切与信用货币的发行、保管、兑换、结算,融通有关的经济活动,甚至包括金银的买卖,狭义的金融专指信用货币的融通。

金融的内容可概括为货币的发行与回笼,存款的吸收与付出,贷款的发放与回收,金银、外汇的买卖,有价证券的发行与转让,保险、信托、国内、国际的货币结算等。从事金融活动的机构主要有银行、信托投资公司、保险公司、证券公司、投资基金,还有信用合作社、财务公司、金融资产管理公司、邮政储蓄机构、金融租赁公司以及证券、金银、外汇交易所等。

金融是信用货币出现以后形成的一个经济范畴,它和信用是两个不同的概念:(1)金融不包括实物借贷而专指货币资金的融通(狭义金融),人们除了通过借贷货币融通资金之外,还以发行股票的方式来融通资金。(2)信用指一切货币的借贷,金融(狭义)专指信用货币的融通。人们之所以要在“信用”之外创造一个新的概念来专指信用货币的融通,是为了概括一种新的经济现象;信用与货币流通这两个经济过程已紧密地结合在一起。最能表明金融特征的是可以创造和消减货币的银行信用,银行信用被认为是金融的核心。

是从经济学分化出来的、研究资金融通的学科。传统的金融学研究领域大致有两个方向:宏观层面的金融市场运行理论和微观层面的公司投资理论。

金融界网站(www.jrj.com),是全球最大的中文财经网站之一。2004年10月15日,金融界在美国NASDAQ挂牌上市,股票代码(NASDAQ:JRJC),是目前中国唯一一家在美国上市的中国财经类互联网公司。上市后,金融界相继入选权威第三方评选的“2004中国商业网站100强”、“中国主流媒体市场经济地位及商业价值2004年度排序--资讯类10强网站”、以及“德勤2004年度亚太区高科技高成长500强企业”。

目前,金融界网站为用户提供下载版和WEB版两种证券分析工具。其中下载版软件包括:大参考证券分析系统、大风暴证券分析系统、大浪淘沙证券分析系统、股市X档案;WEB版分析软件包括:自选股雷达、股市快枪手、短线之王。以上产品均是收费服务。

大参考软件――是一款技术分析与资讯整合相结合的一体化分析工具。大参考软件不仅能够为用户提供各种技术指标和参数的分析手段,还能够为中国投资者提供证券信息、上市公司数据、公告、财务报表、股评、实时行情、政策法规、证券分析工具等全方位资讯服务,从而帮助投资者随时了解上市公司的动向,及时把握市场走势。

大风暴软件――是一款上市公司财务报表的分析系统。它能够对上市公司的公告、年报、中报、季报、各种财务报表、数据进行智能化的搜集、分解和重组,通过有深度的分析形成对股票投资的参考意见。大风暴以简单、直接的形式表现中国上市公司的内在投资价值,帮助普通投资者看懂上市公司财务报表,及时捕捉市场中价值被低估或高估的股票,从而达到为每一位投资者配备一位财务分析专家的目的。

大浪淘沙软件――一款评测个股和大盘k线形态的分析系统、一款提示资金主力趋向的判别系统。

股市X档案――数百家券商、基金经理、机构操盘手的案头必备工具。中国第一家美国纳斯达克上市金融财经服务商--“金融界”五年巨作。

自选股雷达――是一款个股轨迹定位系统,它可以给出每只股票的运行轨迹评测,以及金叉、死叉和风险提示点。通过它提供的股票的运行轨迹、金叉死叉和风险提示点,股民可检验自己已经持有或关注的股票,并以此为参考。

短线之王――是一套建立在市场参与者行为理论基础上的计算机人工智能模型。金融界凭借强大的市场研发力量,通过对主力资金每日上榜营业部及相关交易数据的实时分析,以及对上榜营业部全部历史交易数据的深度挖掘、综合评测,最终形成《短线之王》独有的主力行为分析模型。

股市快枪手――作为一款全程追踪领涨板块,深度透视主力幕后运作规律的全智能计算机系统,《股市快枪手》以“模糊化分析为手段”、以“服务器群决策为特征”,在充分整合经典位势论和概率位势论的基础上,通过对每日领涨板块的实时追踪、随机控制、多维评测,建立起高端计算机模糊运算模型,给出领涨板块背后“执行营业部”的操作规律评测。

短信中心――金融界"短信中心"是由金融界网站依托于自身强大的财经证券资源优势,与移动通讯运营商联合为手机用户推出的短信息定制及短信息点播服务业务(以下简称"金融界短信息服务")。"金融界短信息服务"的所有权和运作权归金融界网站。目的是为金融界短信息服务的用户提供贴身证券财经短信息服务。

财道纵横――「财道纵横」是金融界联合数百家银行、保险公司、证券公司、咨询公司、信托公司、期货公司、外汇公司、新闻财经媒体,并依托「金融界」强大的技术平台,为您打造的中国第一代全方位智能理财平台!其功能包括家庭财务管理、最新财经资讯、各类理财产品信息等功能。

股讯通――金融界“股讯通”是一款针对上班族投资需要设计的股讯软件。她在股讯定制、界面设计等各方面,充分考虑了上班族工作繁忙、职业化要求高的特点,并结合「金融界营销网」(www.cyccy.com.cn)、「Alpari(艾福瑞)」(www.alparichina.com)强大的后台证券数据库,为中国广大上班人群提供体贴的证券行情、资讯服务。

[编辑本段]【金融学与经济学的关系】

金融学发端于经济学,但如今已经从中独立出来,有了自己的研究方法,成为独立的学科.现代金融学也象经济学一样,从微观主体的理性行为入手(行为金融学考虑了非理性行为),构建考虑时间和不确定因素的市场均衡体系,考察金融系统在资源跨期配置中的机制和作用.但是金融学有区别于经济学的研究方法,比如说金融资产定价中常用的无套利分析,实际上比经济学中的供求定价分析更具有一般性,在市场中更容易实现.金融学区别与经济学的另一个的特点是前者考虑了市场中的随机因素,因此市场主体的预期在其中起了重要作用.经济概念比金融广得多

金融是经济的一小个分支,只是有自己的侧重点

经济学是一个一级学科,金融学是一个二级学科,在经济学之下,经济学研究的是一个国家地区的经济发展状况、方式、道路等。是比较宏观的了,它对经济的各个方面包括工业、农业等。金融只是对一个国家经济领域中的金融方面进行研究,比如货币、证券、金融市场等。

经济学上的信用,是一种商品交易的形式,对应于现货交易(即时清结的交易)。

信用是金融的基础,金融最能体现信用的原则与特性。在发达的商品经济中,信用已与货币流通融为一体。

a.一方以对方偿还为条件,向对方先行移转商品(包括货币)的所有权,或者部分权能;

b.一方对商品所有权或其权能的先行移转与另一方的相对偿还之间,存在一定的时间差;

c.先行交付的一方需要承担一定的信用风险,信用交易的发生是基于给予对方信任。

2.金融原则上必须以货币为对象。

3.金融交易可以发生在各种经济成分之间。

二、第1章 为什么将Python用于金融

Python是一种高级的多用途编程语言,广泛用于各种非技术和技术领域。

Python是一种具备动态语义、面向对象的解释型高级编程语言。它的高级内建数据结构和动态类型及动态绑定相结合,使其在快速应用开发上极具吸引力,也适合于作为脚本或者“粘合剂”语言,将现有组件连接起来。Python简单、易学的语法强调可读性,因此可以降低程序维护成本。Python支持模块和软件包,鼓励模块化和代码重用。Python解释程序和大量标准库可以源代码或者二进制形式免费取得,用于所有主要平台,并且可以随意分发。

上述纲领很好地描述了 Python成为当今主要编程语言之一的原因。当前,在学校、Web公司、大型企业和金融机构以及任何科学领域,都有初学者和熟练的专业开发人员在使用 Python。

Python和大部分可用的支持库及工具都是开源的,通常使用相当灵活和开放的许可证。

Cpython参考实现是该语言的一个解释程序,在运行时将Python代码翻译为可执行字节代码。

Python支持不同的编程和实现范型,例如面向对象和命令式、函数式或者过程式编程。

Python可以用于快速、交互式代码开发,也可以用于构建大型应用程序;它可以用于低级系统操作,也可以承担高级分析任务。

Python可用于大部分重要的操作系统,如Windows、Linux和Mac OS;它用于构建桌面应用和Web应用;可以在最大的群集和最强大的服务器上使用,也可以在树莓派这样的小设备上运行。

Python中的类型通常在运行时推知,而不像大部分编译语言那样静态声明。

和大部分其他编程语言不同,Python使用缩进标记代码块,代替圆括号、方括号或者分号。

Python具有自动垃圾收集机制,避免程序员管理内存。

关于Python语法及其意义,Python增强提案20——即所谓的“Python之禅”——提供了重要的指导方针。每个交互shell都可以用命令import this访问它:

Python对于某些人来说可能还是个新事物,但是它已经出现了很长时间。实际上,早在20世纪80年代,荷兰人Guido van Rossum就开始了开发工作。他现在仍然活跃于Python开发中,被Python社区授予“仁慈独裁者”的称号。下面是Python开发的里程碑:

1991年发行的Python 0.9.0(第一个发行版本);

值得注意的是,有两个可用的主要版本仍然在开发之中,更重要的是,它们从2008年起并行使用,这有时候令Python初学者感到困惑。到本书编著之时,这种情况已经持续了一段时间,因为两个版本之间没有100%的代码兼容性,而且不是所有流行程序库都可以用于Python 3.x。大部分可用和生产代码仍然是用Python 2.6/2.7编写的,本书基于2.7.x版本,但是大部分代码示例应该可以在3.x版本上运行。

Python作为一个生态系统,而不仅仅是一种编程语言,其主要特征是有大量可用的库和工具。这些库和工具通常必须在需要(例如,绘图库)时导入或者作为单独的系统进程(例如,Python开发环境)启动。导入意味着使某个库可用于当前命名空间和当前Python解释程序进程。

Python本身自带了一组大型的程序库,在不同方面增强了基本解释程序。例如,基本数学计算可以在不做任何导入的情况下完成,而更复杂的数学函数必须通过数学库导入:

虽然所谓的“星号导入”(也就是通过from library import*指令导入库中的所有内容)有时候很方便,但是通常应该使用替代方法,避免命名空间和函数与库的关系方面的歧义。这采用如下方式实现:

任何安装中math都是可用的标准Python库,但是还有许多库是可选安装的,可以和标准库相同的方式使用。这些库来自不同的(Web)来源。然而,通常建议使用某种Python分发版本,确保所有库的相互一致(这个主题的更多内容参见第2章)。

目前为止介绍的代码示例都使用IPython,这可能是最流行的Python交互式开发环境(IDE),虽然它出现的时候只是一个增强的shell,但是现在已经有了许多典型的IDE特性(例如,支持性能分析和调试)。它缺乏由Sublime Text等高级文本/代码编辑器所提供的功能,因此,将IPython与人们选择的某种文本/代码编辑器组合使用、组成Python开发过程基本工具集的情况也不少见。

IPyhon有时候也被称作Python生态系统的“杀手级应用”。它从许多方面增强了标准交互式Shell。例如,它提供了改进的命令行历史功能,并且能够进行简单的对象检查。例如,在函数名称后添加一个?就可以打印函数的帮助文本(添加??将提供更多信息):

IPython有3个不同版本:Shell版本、基于QT图形用户界面(QT console)的版本和基于浏览器的版本(Notebook)。这里只是一个摘要的说明,现在还无需操心这些版本的细节,第2章将更详细介绍IPython。

Python不仅对专业软件开发人员有吸引力,临时开发人员和领域专家、科研开发人员也使用它。

专业软件开发人员寻求高效构建大型应用程序所需的一切工具。Python支持几乎所有编程范式;有强大的开发工具;从理论上说,Python可以对付任何工作。这些类型的用户通常构建自己的框架和类,也依靠基础的Python和科学栈进行工作,并且尽最大的努力利用生态系统。

科研开发人员和领域专家通常频繁使用某些库和框架,构建他们长年改进和优化的应用程序,并且根据特定的需求调整生态系统。这组用户通常参与较长的交互式会话,快速建立新代码原型,并探索和可视化其研究及领域数据集。

临时开发人员喜欢在已知Python具有优势的特定问题上使用Python。例如,访问Matplotlib的展示页面,复制那里提供的某一段可视化代码,根据特殊需求调整这些代码,可能是对这些人有益的一个用例。

Python用户还有另一个重要的群体:编程入门者,也就是刚刚开始编程的人。现在,Python在大学、专业院校甚至中小学校中已经成为向学生介绍编程的流行语言[1]。这种现象的主要原因之一是其基本语法即使对于非开发人员也很容易学习和理解。此外,Python支持几乎所有编程风格[2]。

某些库的集合被统称为科学栈(Scientific Stack),其中包括如下库。

NumPy提供多维数组对象,以存储同构或者异构数据;它还提供操作这一数组对象的优化函数/方法。

SciPy是一组子库和函数,实现科学或者金融中常常需要的重要标准功能;例如,你可以找到三次样条插值和数值积分的函数。

这是最流行的Python绘图和可视化库,提供2D和3D可视化功能。

PyTables是流行的HDF5数据存储库封装器;这个库实现基于层次数据库/文件格式的优化磁盘I/O操作。

pandas在NumPy基础上构建,提供更丰富的时间序列和表格数据管理及分析类;它与Matplotlib在绘图上、与PyTables在数据存储和读取上紧密集成。

根据特定的领域或者问题,科学栈可以通过更多的库进行扩展,这些库多半在一个或者多个上述的基本库基础上构建。但是,最小公分母(或称基本组成部分)通常是NumPy ndarray类(参见第4章)。

仅从编程语言来讲,有许多其他语言在语法和简洁性上可与Python比肩。例如,Ruby也是相当流行的语言,可与Python相提并论。在该语言的网站上,你可以找到如下的描述:

一种动态的开放源码编程语言,重视简洁性和效率。它具备简洁的语法,阅读自然、易于编写。

大部分Python使用者可能也赞成用相同的陈述描述Python本身。但是,对于许多Python用户而言,它与Ruby等同样具有吸引力的语言之间的区别在于科学栈。这使Python不仅是优秀、简洁的语言,还可以代替Matlab或者R等领域专用语言和工具集。此外,它默认提供各种人员(例如熟练的Web开发人员或者系统管理员)所需要的任何功能。

现在,我们对Python已经有了大致的认识,回头简短地介绍一下科技在金融中的作用就很有意义了。这将使我们更好地评判Python在金融行业中已经承担的任务,更重要的是,还可以评判未来承担的任务。

在某种意义上,科技对于金融机构(例如与工业企业相比)或者财务部门(与其他企业职能部门相比,如后勤)没有什么特别的作用。然而,近年来,在创新和监管的刺激下,银行和其他金融机构(如对冲基金)越来越多地发展成为技术公司而不仅仅是金融中介机构。科技成为了全球几乎所有金融机构的重要资产,具备导致竞争优势和劣势的潜力。某些背景信息可以解释这种发展的原因。

银行和金融机构共同组成了每年在科技上投入最多的行业。因此,下面的陈述不仅说明科技对金融行业的重要性,也说明了金融行业对科技的重要性:

据IDC分析师称,银行在2014年的科技投入比2013年多4.2%。这位分析师说,全球金融服务的总体IT花费在2014年将超过4300亿美元,2020年将会超过5000亿美元。

当今的大型跨国银行通常雇佣数千名开发人员,以维护现有系统、构建新系统。具有大量科技需求的大型投资银行每年的科技预算往往达到数十亿美元。

科技发展对金融行业的创新和效率增进也有贡献:

科技创新已经为更高效的衍生品市场做出了显著的贡献。通过交易技术的创新,尽管交易量和商品报价数量猛增,欧洲期货交易所(Eurex)的交易速度仍然远快于10年前…这些显著改进只有在衍生品交易所和票据交换所不断地在IT上投入巨额资金的情况下才可能实现。

效率提高的副作用之一就是,金融机构往往必须在更为复杂的产品或者交易中寻求竞争优势。这当然会使风险增大,并使风险管理和监控、监管越来越困难。2007年和2008年的金融危机说明了这些发展带来的潜在危险。同样,“算法和计算机失控”也给金融市场带来潜在的风险;2010年5月的所谓“闪电崩盘”事件戏剧性地展现了上述风险,自动化卖出导致某些股票和股票指数在当日大幅度下跌。

一方面,在其他条件不变的情况下,随着时间的推移,科技的进步会降低成本。另一方面,金融机构持续在科技上投入巨资,以增大市场份额、保持自身地位。在今天的金融市场上取得一席之地往往需要在科技和熟练人员上大规模投资。考虑衍生品分析领域的一个例子(也可参见本书第3部分的案例研究):

在整个软件生命期中,采用内部OTC[衍生品]定价策略的公司仅在一个完整的衍生品库的构建、维护和改进上就需要投入2500~3600万美元。

构建一个完善的衍生品分析库不仅成本高昂和费时,而且需要有足够的专业人士来进行这项工作。这些专业人士必须有正确的工具和技术,才能完成他们的任务。

我们以下引用的另一段有关美国长期资本管理公司(LTCM)的陈述进一步支持关于科技和人才的观点,LTCM曾是最受尊敬的计量对冲基金,但是在20世纪90年代末破产:

Meriwether在最新型计算机系统上花费了2000万美元,并雇用一个由一流金融工程师组成的团队在LTCM操纵该系统,他们在康涅狄格州的格林威治开始工作。这是行业级别的风险管理。

Meriwether花费数百万美元才能得到的计算能力在今天可能只需要几千美元就能实现。另一方面,大型金融机构的交易、定价和风险管理已经变得非常复杂,以致于现在必须部署具有数万个计算核心的IT基础架构。

1.2.4不断提高的速度、频率、数据量

金融行业有一个方面最受科技进步的影响:金融交易决策和执行的速度及频率。Lewis最近的著作(2014)生动而详细地描述了所谓的“闪电交易”——也就是以可能的最高速度进行的交易。

一方面,可用数据的尺度越来越小使实时反应成为必需的能力。另一方面,交易的速度和频率的提高使数据量进一步增大。这两方面相互补充,推动了金融交易平均时间标度的系统性下降:

复兴资本公司的“大奖章”基金在2008年获得了80%的惊人增长率,它以闪电般速度的计算机抓住了市场极端活跃的机会。Jim Simons是当年世界盈利最高的对冲基金管理人,收入达到25亿美元。

单只股票30年的每日股价数据大致包含7500个报价。这类数据是大部分现代金融理论的基础。例如,现代投资组合理论(MPT)、资本定价模型(CAPM)和风险价值(VaR)等理论都以每日股价数据为基础。

相比之下,苹果公司(AAPL)典型交易日报价次数大约为15000——两倍于30年间日终报价的数量。这带来了许多挑战。

考虑和处理股票日终报价或者其他金融计量是不够的;在每周的7天、每天的24个小时内,某些计量措施上发生的事情“太多了”。

决策往往必须在几毫秒甚至更短的时间内作出,有必要构建个别分析能力,实时分析大量数据。

虽然传统金融理论和概念远称不上完美,但是它们经受了时间的考验(有些时候受到排斥);对于毫秒级计量能力很重要的今天,仍然缺乏在很长时间内证明是稳定的一致性概念和理论。

原则上,上述挑战都只能由现代科技应对。令人有些惊讶的是,缺乏一致性理论的问题也常常通过技术方法处理,在这种情况下,高速算法利用的是市场微观结构要素(例如,订单流、买卖价差),而不依赖于某种金融推理方法。

金融行业中有一个学科的重要性正在强劲增长:金融和数据分析。这种现象与行业中速度、频率和数据率飞速增长有紧密的关系。实际上,实时分析可以视为该行业对这种趋势的反应。

粗略地讲,“金融和数据分析”指的是应用软件和科技,与(可能是先进的)算法和数据收集、处理及分析方法相结合,以获得深刻理解、作出决策或者满足监管需求的学科。这类分析的例子包括银行零售部门中某个金融产品定价结构的变化对销售情况影响的估算。另一个例子是投资银行衍生品复杂投资组合信用价值调整(CVA)的大规模隔夜计算。

金融机构在这种环境下面对两种主要挑战。

甚至在“大数据”这一术语出现之前,银行和其他金融机构就必须处理海量数据;然而,单一分析任务所处理的数据量随着时间的推移而有了很大的增长,要求计算能力的提高和更大的内存与存储能力。

过去,决策者只能依赖结构化的定期计划、决策和(风险)管理过程,而今天面对的是实时完成这些任务的需求;过去在后台通过隔夜批量运行可以完成的任务,现在已经转向前台实时执行。

同样,人们可以观察到科技和金融/商业方法发展之间的相互作用。一方面,有通过现代科技的应用不断改进分析方法速度和能力的需求。另一方面,科技方面的进步使几年甚至几个月之前认为不可能(或者由于预算约束而不可行)的新分析方法成为可能。

分析领域的一个重要趋势是利用CPU(中央处理单元)的并行结构和GPGPU(通用图形处理单元)的大规模并行结构。现在的GPGPU往往有超过1000个计算核心,有时候有必要彻底反思并行性对不同算法的意义。用户通常必须学习新的范型和技术才能利用这种硬件的能力[3],仍是这方面的障碍之一。

前一小节介绍了科技在金融中发挥作用的一些领域:

作为新业务和创新业务引擎的科技;

不断提升的速度、频率和数据量;

本节,我们分析Python如何帮助你应对这些方面的多种挑战。不过首先让我从更为基础的方面——语言和语法——介绍用于金融的Python。

在金融环境中迈出使用Python第一步的大部分人都可能要攻克某个算法问题。这和想要解出微分方程、求取积分或者可视化某些数据的科学工作者类似。一般来说,在这一阶段,对正规开发过程、测试、文档或者部署没有太多的思考。然而,这一阶段似乎是人们特别容易爱上Python的时候,主要原因是Python的语法总体上和用于描述科学问题或者金融算法的数学语法相当接近。

我们可以通过一个简单的金融算法来说明这一现象——通过蒙特卡洛模拟方法估计欧式看涨期权的价值。我们将考虑Black-Scholes-Merton(BSM)模型(参见第3章),在这种模型中期权潜在风险遵循几何布朗运动。

假定我们使用如下数值化参数进行估值:

在BSM模型中,到期指数水平是一个随机变量,由公式1-1给出,其中z是一个标准正态分布随机变量。

公式1-1Black-Scholes-Merton(1973)到期指数水平

下面是蒙特卡洛估值过程的算法描述。

1.从标准正态分布中取得 I个(伪)随机数 z(i),i∈{1,2,…,I}。

2.为给定的 z(i)和公式1-1计算所有到期指数水平ST(i)。

3.计算到期时期权的所有内在价值hT(i)=max(ST(i)−K,0)。

4.通过公式1-2中给出的蒙特卡罗估算函数估计期权现值。

公式1-2欧式期权的蒙特卡洛估算函数

现在,我们将这个问题和算法翻译为Python代码。读者可以使用IPython跟踪单独的步骤——但是在这一阶段实际上并不是必需的。

首先,我们从参数值开始。这真的很简单。

接下来是估值算法。这里,我们第一次使用NumPy,它使我们的第二项任务变得相当轻松。

Python语法与数学语法相当接近,例如,在参数赋值的方面。

每条数学或者算法语句一般都可以翻译为单行Python代码。

NumPy的强项之一是紧凑的向量化语法,例如,允许在单一代码行中进行10万次计算。

这段代码可以用于IPython等交互式环境。但是,需要频繁重用的代码一般组织为所谓的模块(或者脚本),也就是带有.py后缀的Python(文本)文件。本例的这种模块如例1-1所示,可以保存为名为bsm_msc_euro.py的文件。

例1-1欧式看涨期权的蒙特卡洛估值

这一小节中的简单算法示例说明Python的基本语法很适合为经典的科学语言二重奏——英语和数学——提供补充。在科学语言组合中添加Python似乎使其更加全面。我们现在拥有:

用于写作和谈论科学和金融等问题的英语;

用于简洁、精确地描述抽象特征、算法、复数等并为其建模的数学;

从技术上建立抽象特征、算法、复数等的模型并加以实现的Python。

几乎没有任何编程语言像Python这样接近数学语法。因此,数值算法很容易从数学表示翻译为Python实现。使用Python,可以在这些领域中高效地进行原型化、开发和代码维护。

在某些领域中,使用伪代码是常见的做法,从而引入了第4个语言家族成员。举个例子,伪代码的任务是以更技术性的方式表示金融算法,不但仍然接近于数学表示,而且和技术实现已经相当接近。除了算法本身,伪代码还考虑了计算机的工作原理。

采用这种方法一般是因为使用大部分编程语言时,技术实现和正式的数学表现形式距离相当“遥远”。大部分编程语言都必须包含许多只在技术上必要的元素,在数学和代码之间很难看到等价的元素。

时下,Python常常以伪代码方式使用,因为它的语法和数学很类似,而且技术“开销”可以控制到最低。这一点是通过该语言所体现的一些高层概念实现的,这些概念不仅有其优势,也带来了风险和其他代价。不过可以肯定,可以在需求出现的时候使用Python,从一开始就遵循其他语言可能需要的严格实现和编码方法。从这个意义上说,Python可以在两个世界中提供最佳的平衡:高层次的抽象和严格的实现。

从较高的层次看,使用Python的好处可以从3个维度衡量。

Python如何更快地获得结果、节约成本、节约时间?

Python如何在相同的资源(人员、资产等)下完成更多的工作?

Python能够让我们做哪些替代技术所不能做到的事情?

对这些特性的讨论当然不可能很全面。然而,可以将某些参数作为出发点。

Python效率较为明显的领域之一是交互式的数据分析。这些领域从IPython等有力工具和pandas之类的程序库获益良多。

考虑一位正在撰写硕士论文的金融专业学生,她对Google的股价感兴趣,想要分析5年的历史股价信息,以了解股价变动在这段时间内的波动性。她希望找到证据证明这种变动性与某些典型的模型假设相反,是随时间变动而决非固定。而且,结果应该进行可视化,主要的工作如下:

从网络上下载Google的股价数据;

计算收益率的滚动标准差(波动率);

这些任务很复杂,在不久之前还被认为是专业金融分析师才能完成的。而在今天,即使是金融专业的学生也可以轻松地对付这类问题。我们来看看具体的做法——此时还不用操心语法的细节(后续的章节中将对所有细节进行解释)。

其次,读取数据(例如从Google网站)。

第三步,实现对波动率的必要分析。

最后一步,绘制结果图表。为了生成内联图表,我们使用IPython的“魔法”命令%matplotlib,加上inline选项。

图1-1展示了在IPython进行的这一简短交互会话所得到的图形化结果。用4行代码就足以完成金融分析中遇到的典型复杂任务:数据收集、复杂和重复的数学计算以及结果的可视化,几乎令人觉得不可思议。这个例子中可以看到,pandas使整个时间系列的处理变得就像浮点数上的数学运算那样容易。

图1-1Google收盘价格和年度波动率

将这个例子转换到专业的金融环境中,可以看出金融分析师们在应用提供高层次抽象的合适Python工具和库的时候,能够将焦点放在自身的领域上,而不用关心复杂的技术细节。分析师们可以快速反应,几乎实时提供宝贵的深刻见解,确保自己比竞争对手先行一步。这种效率的提高很容易转换为可度量的财务效果。

一般来说,Python的语法相当简洁,编码效率相对高是为人们所接受的说法。但是,由于Python本质上是解释型语言,因此存在一种偏见,认为Python对于金融学中的计算密集任务来说过于缓慢。确实,在某些特定的实现方法下,Python可能确实很慢,但是,它并不一定都那么缓慢——它可以在几乎任何应用领域中表现出高性能。理论上,人们至少可以找到3种提高性能的策略。

好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!

声明:本文内容来自互联网不代表本站观点,转载请注明出处:https://www.41639.com/15_498303.html

相关推荐