Python金融实战(异步图书)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-09-19 13:47:50

点击下载

作者:(美) Yuxing Yan 严玉星

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

Python金融实战(异步图书)

Python金融实战(异步图书)试读:

前言

我们正处在一个信息爆炸的大数据时代。在计算机和网络科技的推动下,瞬息万变的金融市场不停地产生出大量的电子化数据,其中大部分是对公众免费的。计算机是有效地利用这些数据的必不可少的工具。我们坚信读者应该能掌握至少一门计算机语言。而Python则是可供学习的计算机语言中一个比较好的选择。为什么选择Python?

选择Python有多种原因。首先,Python是开源的,公众可以免费使用。Python可用于几乎所有的主流操作系统上,如Windows、Linux/Unix、OS/2、Mac和Amiga,等等。学习和使用免费软件有众多的好处。毕业以后,学生可以把他们所学到的Python编程技能用在任何工作岗位,包括在金融领域。与此相反,收费软件如SAS和MATLAB取决于公司或单位是否订购。其次,Python功能强大、灵活、简单易学。它能够解决几乎所有的金融和经济方面的计量问题。第三,Python有处理大数据的能力。Dasgupta(2013)认为R和Python是当前最流行的两个用于数据分析的开源软件。第四,Python有许多有用的模块。模块是为完成一个特殊的任务而开发的。在本书中,我们将学习NumPy、SciPy、Matplotlib、Statsmodels和Pandas等模块。这是一本由金融学教授撰写的编程图书

毫无疑问,大多数的编程图书是由计算机专业的教授和专家撰写的。由一位金融学教授撰写本书来介绍一门编程语言似乎十分奇怪。其实不然,本书的重点和众多由计算机专家所写的书完全不同。计算机专家们会把重点放在Python语言本身,而正如本书的书名所示,本书的重点是介绍Python在金融领域的应用。作者希望为读者提供一本将Python与金融紧密结合的书。侧重短小而实用的Python程序

作者曾经在多所世界著名大学任教,包括加拿大的麦吉尔大学和劳里埃大学、新加坡的南洋理工大学、美国的Loyola大学、UMUC、Hofstra大学、水牛城大学和Canisius学院。他还在美国的沃顿商学院从事过8年的技术咨询工作。丰富的教学和咨询经验告诉他,大多数金融专业的学生需要掌握编写短小的程序以完成某些特定的任务。大多数编程类图书只提供了几个完整但复杂的程序,但对于循序渐进的学习过程而言,程序的数目远远不足,这将导致两种后果。首先,读者往往淹没于复杂程序的细节之中,从而产生畏惧心理,最终失去学习计算机语言的任何兴趣。其次,他们不知道如何灵活运用编程语言来解决金融领域的一系列问题,例如,如何用1990年~2013年的数据和资本资产定价模型(CAPM)来估计IBM的市场风险系数。本书提供了大约300个与许多金融领域相关的Python程序。使用真实数据

编程类的图书往往有一个共同点,就是它们常常使用虚构的数据。本书将大量使用与各种金融课题相关的真实数据。例如,不仅仅只是介绍资本资产定价模型CAPM和市场风险系数(贝塔值或β),读者学习如何利用实际数据来估计IBM、苹果和沃尔玛等公司的贝塔值,而不仅仅只是讲解用来估算投资组合的收益和风险的数学公式。本书会给出Python程序来从互联网上直接下载实时的交易数据,构造不同的股票组合,然后计算其收益和风险,包括在险价值(VaR)。本书的主要内容

第1章简短地介绍Python并讨论如何安装、启动和退出Python,以及一些相关的问题。

第2章讲解一些基本概念和几个常用的Python内置函数,如赋值、数值精度、加法、减法、除法、幂函数和平方根函数。

第3章介绍如何编写一些简单的Python函数来完成常见的金融计算,例如一个未来现金流量的现值、当前现金的未来价值、年金的现值及未来值、永续年金的现值、债券的价格和内部收益率(IRR)等。

第4章介绍读者在对Python和期权不了解的情况下,如何用几行Python代码计算看涨期权价格。

第5章介绍模块的基础知识,例如查找所有可用或已安装的模块,以及如何安装一个新的模块。

第6章介绍用于科研和金融计算的两个重要模块:NumPy和SciPy模块。

第7章通过matplotlib模块绘制金融相关的图形,展示如何利用matplotlib模块绘制不同颜色和大小的图表和图形来生动地解释有关的金融概念。

第8章结合实际数据探讨与统计相关的许多概念和问题。具体内容包括如何由雅虎财经网站下载历史数据;计算收益率、全部风险、市场风险、个股之间的相关性、不同市场之间的相关性;构造各种投资组合以及构建最优投资组合。

第9章详细讲解与Black-Scholes-Merton期权定价模型相关的内容,包括看涨期权和看跌期权的收益和利润/损失函数、不同的期权交易策略、绘制收益和利润/损失函数的图形、正态分布、与期权相关的希腊值以及期权的平价关系。

第10章介绍不同类型的循环,并且演示如何估算欧式和美式期权的隐含波动率。

第11章讨论如何利用蒙特卡罗模拟方法为欧式、美式、均价、回望式和障碍式期权定价。

第12章介绍波动率的测度以及ARCH和GARCH模型。读完本书后有什么收获?

我们通过一些具体的例子来说明本书可能带给读者的收获。首先,本书的前两章能够帮助读者使用Python来计算现值、未来值、年金现值、内部收益率,以及许多其他常用的金融公式。也就是说,我们可以使用Python作为一个普通计算器来解决不少与金融相关的问题。其次,第3章能够帮助读者把几十个短小的Python程序结合成一个大的Python模块,从而用Python完成金融专业计算器的功能。这自制的模块与其他Python模块一样使用。第三,读者学习如何编写Python程序来下载和处理各类开源数据,包括雅虎财经网站、谷歌财经网站、美联储的数据库和French教授的在线数据库等。第四,读者将理解与模块相关的基本概念。模块是指由专家、其他用户或自己编写的用于特定用途的程序包。第五,在了解了matplotlib模块的特性后,读者可以制作各种图表。例如,通过绘制图形展示不同股票和期权的交易策略的收益/利润函数。第六,读者将能够下载IBM的每日交易价格、市场指数 (S&P500)、雅虎财经网站的数据和运用CAPM估计市场风险系数(贝塔值)。亦可以用不同的证券(如国债券、企业债券和股票、构建投资组合),并且应用马科维茨的均值-方差模型来优化自己的投资组合。此外,读者会知道如何估计其投资组合的在险价值(VaR)。第七,读者应该能够应用Black-Scholes-Merton期权定价模型和蒙特卡罗模拟为欧式或美式期权定价。最后,读者能够学习量度波动率的几种方法,特别是自回归条件异方差(ARCH)和广义自回归条件异方差(GARCH)模型。本书的目标读者

本书面向金融相关专业的从业人士,尤其是计算金融、金融建模、金融工程和商业分析等专业方向的读者,会发现本书大有裨益。对金融领域感兴趣的读者也可以通过本书学习Python,并把它用于许多金融项目之中。个人投资者也能从本书受益。约定

本书用不同的文本样式区分不同种类的内容。下面给出一些例子,帮助认识这些样式并了解它们的意义。

文本里的代码、数据库名、文件夹名、文件名、文件扩展名、路径名、网址、用户输入和Twitter昵称以这样的方式显示:“根据计算机操作系统,选择合适的套餐,例如,Python Windows x86 MSI Installer (Windows binary -- does not include source)”。

我们用到的Python代码会如下显示:from matplotlib.finance import quotes_historical_yahoo import numpy as npimport pandas as pdimport statsmodels.api as smticker='IBM' begdate=(2008,10,1) enddate=(2013,11,30)p = quotes_historical_yahoo(ticker, begdate, enddate,asobject=True,adjusted=True)

任何命令行输入或输出如下所示:>>>from matplotlib.pyplot import *>>>plot([1,2,3,10])>>>xlabel("x- axis")>>>ylabel("my numbers")>>>title("my figure")>>>show()

新术语和重要的话以粗体显示。在菜单或对话框出现的文字,以粗体显示:“单击开始按钮,然后启动所有程序”。使用本书的两种方式

通常有两种方式来使用本书:自己阅读或参加课程。初学者可以放慢进度,计划每两周学习一章。第8章是个例外,它可能需要至少3周。掌握另一门编程语言的专业人士可以相对快速地掌握前几章,尽快接触到后面章节的内容。他们可以把更多精力放在期权理论、隐含波动率、波动率的度量和GARCH模型。本书的另一特点是,第3章之后的大多数章节之间没有很强的前后关系。读者在学习了前3章和第5章之后可以跳到其他自己感兴趣的章节。

此外,本书非常适合用作教科书。它能让量化投资、计算金融或金融工程等专业的硕士生学习如何在金融领域应用Python。本书的内容适合一个学期的硕士生课程,如果用在高年级本科生的课程,可以适当降低难度。读者反馈

读者反馈是我们一直期盼的。请让我们知道你对本书的意见,包括喜欢或不喜欢的地方。我们渴望读者从本书得到最大的收获。因此,你的反馈意见至关重要。请把反馈意见以电子邮件发送至feedback@packtpub.com,并在邮件的主题里包括本书的书名。客户支持

作为Packt出版物的拥有者,你应当感到自豪,同时也会获得我们在多方面提供的服务。下载示例代码

你可以通过http://www.packtpub.com网站的帐户下载所有已购买的Packt图书里包含的示例代码。如果是在其他地方购买了本书,你可以在http://www.packtpub.com/support网站注册并通过电子邮件直接获得相关的文件。下载书中的彩色插图

我们还为你准备了一个PDF文件,里面包含本书中用到的截屏/图形的彩色图像。这些彩色图像可以帮助你更好地了解输出结果。读者可以在以下网址下载这些文件:https://www.packtpub.com/sites/default/files/downloads/4375OS_Images.pdf。勘误表

虽然我们已尽力确保内容的准确性,错误难免会发生。如果你发现书里的文本或者代码有错误,请务必来信告知,我们将不胜感激。这样一来,可以让其他读者少受困惑,也帮助我们提高本书再版的质量。如果发现任何错误,请访问http://www.packtpub.com/submit- errata网页,选择你的书,点击勘误表提交表单链接,并输入勘误的详细信息。一旦你的勘误表验证通过,提交的内容会被接受,勘误就会在网站上出现,或添加到该书的现有勘误列表里。你可以从http://www.packtpub.com/support网站选择书名查看任何现有的勘误表。关于盗版行为

互联网上的侵权盗版行为是所有出版商一直面临的问题。Packt出版社非常重视保护版权和许可证。如果你发现任何对我们出版物的非法拷贝,不论其在互联网上是以任何形式出现的,请立刻向我们提供网址或网站名称,以便我们可以及时补救。

请把涉嫌盗版材料的链接发送到copyright@packtpub.com。非常感谢你帮助保护我们的作者,协助我们继续有能力为你带来有价值的内容。读者疑问

如果你对本书有任何方面的疑问,你可以通过questions@packtpub.com与我们联系,我们一定尽力来解决。第1章Python简介及安装

本章首先介绍为什么采用Python作为计算工具和使用Python有哪些优点,然后讨论如何安装、启动和退出Python,是否区分大小写等问题,以及一些简单的例子。

本章主要内容如下。● Python简介● 如何安装Python● 应该使用哪个版本的Python● 启动和退出Python的方式● 错误提示● Python是区分大小写的● 变量的初始化● 查找在线帮助、学习手册和自学教程● 查看自己的Python版本1.1 Python简介

人类在多年前已经进入信息化时代。事实上,我们如今是淹没在信息的海洋之中,时时刻刻都有大量的电子邮件需要阅读或太多的网页亟待浏览。互联网提供了大量关于任何事物的信息,从重要的事件到如何学习Python。我们可以借助互联网搜索任何一家上市公司的信息。如果想收集与国际商业机器(IBM)相关的财务信息,可以使用雅虎财经网站、谷歌财经网站、美国证券交易委员会(SEC)网站公布的公司报表和该公司的网页,等等。在这样的背景下,投资者、专业人士和研究人员需要一个强有力的工具来处理如此大量的公开信息。同时,我们的社会趋向于更加开放和透明。在金融领域,开源金融的概念应运而生。Dane和Masters(2009)提出了开源金融的3个组成部分:开源软件、公开的数据和开放的代码。作为开源金融的第一个组成部分,Python是开源软件的最好选择之一。另一同样流行的开源软件是R。下面总结学习和运用Python于金融领域的一些优点。

首先,Python是免费的开源软件。免费带来许多好处。我们可以设想一个简单的实验。假设一个读者没有学习过期权理论,对Python也一无所知。你觉得他/她需要多长时间能够用Python来计算看涨期权的价格(Black-Scholes-Merton模型)。我们的答案是:2小时之内!首先,下载和安装Python,这不会超过10分钟。再花10分钟学习如何启动并退出Python,并试运行几个简单例子,然后在4.1节,找到著名的Black-Scholes- Merton看涨期权模型的代码,总共只有13行代码。读者可以在接下来的40分钟输入代码,调试纠错。2小时之内,他/她应该能够自如地运行Python程序给看涨期权定价了。当然,当公司采用一种新的计算机语言时,应考虑多方面的成本:如软件的年费、维护成本、可调用的软件包和技术支持等。换言之,软件是否开源只是一个因素。

再看另外一个涉及美国证券交易委员会的例子。2010年,美国证券交易委员会提议,所有的金融机构在提交申请发售新的资产支持证券时,需要提供一个能够计算和演示该证券的合同现金流量的软件程序(www.sec.gov/rules/proposed/2010/33-9117.pdf),并建议使用Python作为编写该程序的计算机语言。考虑Python的重要原因之一是其开源性。因为任何投资者都可以免费地学习和使用它。

Roger Ehrenberg(2007)建议对债券或信用风险的分析引进开源金融的概念。是否要求机构投资者一定按照债券评级来决定买卖并不重要,重要的是知晓金融机构是如何裁定可投资债券风险的级别。试想一下,如果很多金融机构把自身的债务评级模型公之于众,并由众人加以改进,这对债券或信用风险的分析有多么大的推进作用啊!为了促进这方面的发展,Python(或R)是用作计算工具的理想选择之一。

其次,Python功能强大、灵活,并且简单易学。它能够帮助解决几乎所有与金融和经济相关的计量问题。Python适用于所有主要的操作系统,包括Windows、Linux/Unix、OS/2、Mac和Amiga,等等。

第三,Python适合大数据的应用。Dasgupta(2013)认为R和Python是两个最受欢迎的用于数据分析的开源编程语言。与R相比较,Python是一个更好的广泛式语言,尤其是考虑它与面向对象编程功能的融合。与SciPy/NumPy、Matplotlib和Statsmodel相组合,它提供了一个强有力的数据分析工具。本书还会讨论一个称为Pandas的处理财务数据的模块。

第四,类似于MATLAB的工具箱和R的软件包,Python拥有许多非常有用的模块。每个模块都完成一些特定的功能。在本书中,我们将学习十几个模块。其中,将特别关注5个对金融最有用的模块:NumPy、SciPy、Matplotlib、Statsmodels和Pandas。前两个模块与统计分析、公式计算、矩阵及其操作、数据结构和数据操作有关。Matplotlib是图形模块。第8章将使用这个模块深入讲解如何用图形呈现各种交易策略的收益函数和利润/损失函数。Statsmodels是与计量经济学相关的模块,该模块包括T-检验、F-检验和GA RCH模型等。Pandas是用于金融数据分析的模块。

当然我们应该指出Python的一些缺点。由于它是免费的,最主要的缺点是缺乏客户支持。一些专家认为,Python社区需要进一步成长,应该包括更多的统计学家和数学家。1.2 如何安装Python

采取以下两个步骤来安装Python。

1.访问Python的官方网站下载。

2.根据计算机的系统,选择适当的软件,比如Python 3.3.2 Windows x86 MSI Installer。

在当前阶段,初学者只需选择Python最新版本即可。他们可以跳过下一节有关版本的讨论而直接学习如何启动Python的章节。

通常用以下3种方法来运行Python。● 从Python的IDLE(GUI)。● 从Python命令行。● 从DOS命令行窗口。

这3种方式将在第1.4.1、1.4.2和1.4.3节介绍。1.3 Python的不同版本

有关Python安装最常见的问题之一是:我们应该下载哪个版本?在这个阶段,任何最新的版本都可以。换言之,对于初学者而言版本并不重要,原因有三。● 本书前4章的内容适用于任何版本。● 卸载旧的版本和安装新的版本易如反掌。● 不同版本可以在同一台电脑上共存。

在以后的有关章节中,将解释模块与Python版本的兼容关系。模块是许多Python程序的集合,由一个或一组专家为完成一些特殊的功能而编写的。例如我们将讨论一个叫作Statsmodels模块,这是与统计和计量经济模型、线性回归等有关的模块。我们常常会用到内置模块、标准模块、第三方提供的模块和自行建造的模块。我们将在多个章节讨论模块这个重要的课题。

在本书中,我们会学习大约20多个模块,其中详细讨论NumPy、SciPy、Matplotlib、Pandas和Statsmodels模块。NumPy、Matplotlib和Statsmodels模块需要Python 2.7以上版本。有些模块也与Python 2.x版本(2.5-2.6以上,依情况而定)兼容。1.4 运行Python的3种方式

以下介绍启动Python的3种方式。1.4.1 用GUI启动Python

用GUI启动Python的步骤如下。

1.单击开始菜单,然后展开“所有程序”菜单项。

2.找到Python 3.3。

3.如图1-1所示,单击IDLE(Python GUI)。图1-1

4.启动Python后,出现如图1-2所示的窗口。图1-2

计算未来现金流的现值的公式如下。(1-1)

在此等式中,PV是现值,FV是未来值,R是折现率,n是周期数。根据前面的公式,可以输入这些数值来计算未来现金流的现值。假设将在一年后获得100美元,如果年折现率是10%,这100美元的现值是多少呢?下面的几行代码用来解答这个问题。>>>100/(1+0.1)90.9090909090909>>> 提示 三重大于号(>>>)是Python提示符。

在电脑桌面创建一个Python图标是一个好主意。除了前述的方法外,接下来的两节会介绍其他的方法来运行Python。1.4.2 从Python命令行启动Python

初学者可以跳过这一部分并转到退出Python部分,学会如何用GUI启动Python已经够用了。首先,我们知道如何使用Python IDLE或点击桌面上的Python图标来启动Python。其次,可以方便地使用Python IDLE来保存并运行Python程序。

从Python命令行启动Python的步骤如下。

1.单击开始菜单,展开“所有程序”选项。

2.找到Python 3.3。

3.如图1-3所示,单击Python(command line)。图1-3

4.单击Python(command line)之后,会看到如图1-4所示的窗口。图1-41.4.3 从DOS窗口启动Python

可以打开一个DOS窗口,找到包含Python程序的子目录,然后从那里运行Python。为此,执行以下步骤。

1.单击开始菜单,然后在如图1-5所示的运行窗口中输入cmd。图1-5

2.输入cd c:\python33移动到相应的目录。

3.输入python命令来运行软件,如图1-6所示。

如果要从其他目录启动Python,必须在搜索路径上包括Python所在的目录。假设Python安装在C:\python33,以上第2步应当用下面的DOS命令。set path=%path%;C:\python33图1-61.5 如何退出Python

以下是退出Python的几种常用方法。● 按Ctrl+D组合键。● 按Ctrl+Q组合键。● 单击File菜单中的Exit选项。● 单击窗口右上角的“关闭”按钮(即直接关闭窗口)。

在本书后面部分,将解释如何利用代码在程序运行结束之后自动退出Python。1.6 错误提示

对于前面的例子,如果100美元在两年后获得,输入100/(1+0.1)^2而不是100/(1+0.1)**2,会看到下面的出错信息。它告诉我们,不支持^运算符号。>>>100/(1+0.1)^2Traceback (most recent call_last):File ", line 1, in 100/(1+0.1)^2TypeError: unsupported operand type(s) for ^: 'float' and 'int'>>>

初学者需要注意以上错误信息的最后一句。最后一行告诉我们,符号^不被支持。应该使用双乘法符号**而不是^作为幂函数。第2章将介绍一个真正的幂函数pow()。 下载示例代码 可以从网站http://www.packtpub.com上的账户下载所有已购买的书籍,包括的示例代码。如果你在其他地方购买了这本书,可以访问http://www.packtpub.com/ support并注册,这样含有的代码文件通过电子邮件直接发送给你。1.7 Python语言是区分大小写的

区分大小写意味着小写的x不同于大写的X,变量John不同于变量john。如果为变量x(小写字母x)赋值,然后调用变量X(大写字母X),会得到以下出错信息。>>>x=2>>>XTraceback (most recent call last): File "", line 1, in X NameError: name 'X' is not defined>>>

在上面的例子中,变量X没有被赋值。因此,当输入X试图显示其值时,会收到一条出错信息。请注意,最后一行提及NameError而不是TypeError。在Python中,我们称变量为name。1.8 变量的初始化

在以上例子中,给变量x赋值之后,就可以使用它。这正如在其他计算机语言,如FORTRAN和C/C++中定义一个变量。类似地,如果一个变量在Python中没有被赋值,就无法使用它。与C/C++或FORTRAN语言不同的是,我们不需要把变量x定义为整数类型,就可以把10赋值给它。

Python语言的另一个优点是,可以改变一个变量的数据类型。对于FORTRAN语言,x被定义为整数类型后,将无法把字符串赋值予它。由于Python语言只有对变量的赋值,没有对变量的定义,可以给一个变量赋任何值。例如,可以将x赋值为10。再把一个字符串,如“Hello World”,赋值予它。这样做与数据类型转换是不同的。将在后面的章节讨论不同数据类型之间的转换,如整数转换为字符串。1.9 寻找在线帮助

启动Python之后,输入help()打开在线帮助(如以下代码所示)。在线帮助的提示符是help>。只需按一次回车键或输入quit就可以退出在线帮助。退出之后,Python提示符>>>将再次出现。>>>help()Welcome to Python 3.3! This is the interactive help utility.If this is your first time using Python, you should definitely check outthe tutorial on the Internet at http://docs.python.org/3.3/tutorial/.Enter the name of any module, keyword, or topic to get help on writing Python programs and using Python modules. To quit this help utility andreturn to the interpreter, just type "quit".To get a list of available modules, keywords, or topics, type "modules", "keywords", or "topics". Each module also comes with a one-line summary of what it does; to list the modules whose summaries contain a given word such as "spam", type "modules spam".help>

输入keywords后,将得到如下信息。>>>help> keywordsHere is a list of the Python keywords. Enter any keyword to get more help.False def if raiseNone del import returnTrue elif in tryand else is whileas except Lambda Withassert finally Nonlocal Yieldbreak for Notclass from Orcontinue global Passhelp>

另外,输入topics后,将会看到许多关键词,如图1-7所示。图1-7

在此阶段,初学者并不需要深入了解这些主题。只需记住,我们通过一个命令就可以找到所有可能用到的主题。1.10 查找学习手册和教程

有很多方法都可以找到Python的手册和其他相关材料。常用的资料已经随软件安装在电脑里或者可以在Python网页上找到。以下进一步说明如何获取这些资料。

执行以下步骤来得到已经安装在电脑里的资料。

1.单击开始菜单,然后展开“所有程序”选项。

2.找到Python 3.3。

3.单击Python Manuals,如图1-8所示。图1-8

4.单击Python Manuals之后,会看到图1-9所示的窗口。图1-9

另外一个主要的资料来源是Python的主页。● Python 3.2 documents (3.2.5, last updated on May 15, 2013)

http://docs.python.org/3.2/download.html● Python 3.3 documents (3.3.2, last updated on August 04,

2013) http://docs.python.org/3.3/download.html● Python 2.7 document(2.7.5, last updated on September 20,

2013) http://docs.python.org/2.7/download.html

此外,Python初学者可以在下面网站找到Python的很多其他学习资料。● Online_tutorials:● http://docs.python.org/3/tutorial/● http://docs.python.org/2/tutorial/● PDF version (424pages):● http://www.tutorialspoint.com/python/python_pdf_version.htm● http://anh.cs.luc.edu/python/hands-on/3.1/Hands-onPythonTutorial.pdf1.11 如何找出Python的版本

当Python启动时,第1行会显示当前的版本。另一种查看Python版本的方法是,在运行Python后,使用以下Python代码:>>>import sys>>>sys.version'3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit(Intel)]'>>>

第1行命令导入一个名为sys的模块。该模块包含了许多有用的Python程序。了解模块是学习Python的关键,将在以下几章更深入地讨论模块:第5章模块简介;第6章介绍NumPy和SciPy模块;第7章介绍通过matplotlib模块绘制与金融相关的图形;第8章介绍时间序列的统计分析。1.12 小结

本章重点讨论了如何安装、启动和退出Python,大小写是否一样,以及其他问题,并给出了一些简单的例子。因为操作简单明了,任何初学者都能轻松下载并在几分钟内安装好Python,然后开始运行Python代码。此外,我们还了解为何采用Python作为计算工具和使用Python的优缺点。

下一章将介绍一些基本概念和常用的Python内置函数,并且演示如何使用Python完成普通计算器的功能,并解答许多与财务相关的问题。比如,计算一个未来现金流量的现值、一笔现金的未来价值、永续年金的现值或成长型永续年金的现值,等等。还将讨论dir()、type()、floor()、round()和help()等函数。练习题

1.用几句话来介绍Python软件。

2.使用Python作为计算工具有什么优势和劣势?

3.从何处可以下载Python?如何安装?

4.Python是否区分大小写?

5.是否可以不定义就使用一个变量?

6.是否可以不给一个变量赋值就使用它呢?

7.对于初学者,Python的版本重要吗?在学习了这本书之后呢?

8.有哪几种方式可以运行Python?

9.在哪里可以找到有关如何安装Python的视频?

10.Python主页的网址是什么?

11.使用Python计算直径为10的圆的面积。

12.如何赋值给一个新的变量?

13.如何能找到与Python有关的一些示例?

14.如何取得Python的在线帮助?

15.你的电脑上安装的Python位于哪个目录?如何找到其路径?

16.定义一个变量和赋值给一个变量有什么区别?第2章用Python完成普通计算器的功能

本章将介绍一些基本概念和几个常用的Python内置函数,如赋值、数值精度、加、减、乘、除、幂函数和平方根函数。将学习如何使用Python作为一个普通的计算器来解决许多与金融相关的问题。本章主要内容如下:● 变量的赋值● 显示一个变量的值● 错误提示● 不能调用一个没有被赋值的变量● 选择有意义的变量名● 使用dir()来查找变量和函数● 删除或取消变量● 基本的数学运算:加、减、乘、除● 幂函数、取整和余数函数● 选择合适的精度● 找出指定的内置函数的详细信息● 如何导入数学模块● pi、e、对数和指数函数● 区分import math和from math import*● 几个常用函数:print()、type()、upper()、下划线_,以及如何结

合两个字符串● 元组数据类型简介2.1 变量的赋值及显示

赋值给一个Python变量非常简单。我们不需要定义一个变量就可以给它赋值。这一点与其他语言,如C++或FORTRAN不同。>>>pv=22>>>pv+2 24

可以同时给几个变量赋予同样的值。在下面的例子中,一次给3个变量x、y和z赋值100。>>>x=y=z=100

为显示一个变量的值,只需输入其名称。例如:>>>pv=100>>>pv 100>>>R=0.1>>>R 0.12.2 错误提示

如果使用sqrt()函数来估计,将得到以下出错信息。>>>sqrt(3)Traceback (most recent call last): File "", line 1, in sqrt(3)NameError: name 'sqrt' is not defined

以上提示的最后一行告诉我们,Python软件没找到sqrt()函数。在学习完本章之后,大家就会知道sqrt()函数是包含在math模块里的。必须先导入该模块,才可以调用其包含的函数。模块是围绕某个特定主题将一些相关的函数捆绑在一起的软件包。2.3 不能调用没有赋值的变量

如果从未赋值给变量abcde,输入abcde后,将得到以下出错信息。>>>abcdeTraceback (most recent call last): File "", line 1, in abcdeNameError: name 'abcde' is not defined>>>

最后一行告诉我们,这个变量没有定义。在某种意义上,赋值给一个变量相当于做了两件事:定义一个变量,并在同一时间赋值给它。2.4 选择有意义的变量名

永久年金是指未来每隔一段时间有等额的现金支付,直到永远。比如,在未来每年的年底收到5美元,或者像英国政府发行的一种称为consol的债券支付定额的利息。假定第1笔支付发生在第1个周期的结束,可用下面的公式估计永久年金的现值。

PV(永久年金)=(2-1)

这里,PV是现值,C是每个周期的定额支付,R是每周期折现率。C和R应该有一致的周期,也就是说,如果C是年度(月度)的现金流,那么R必须是年度(月度)的折现率。假设定额的年度支付为10美元,在第1年结束时收到第1笔支付,年度折现率为10%。比较以下两种命名变量的方式。>>>x=10 # bad way for variable names>>>y=0.1>>>z=x/y>>>Z 100>>>C=10 # good way for assignments>>>R=0.1>>>pv=C/R>>>pv 100

使用C作为定额支付变量名比用x好,使用R表示折现率比用y更好,因为C和R与公式(2-1)中使用的变量名相同,而x和y没有任何特定的含意。

增长型永久年金是指未来的现金流以恒定的速度g增长。以下公式给出其现值。

PV(永久年金)=(2-2)

在这个公式中,C是第1个周期末发生的现金流,R是每周期的折现率,g是每周期的增长率。显然,增长率g应小于折现率R。考虑购买每年支付为C和每年折现率为R的永久年金。计算它今天的价值时,需要考虑未来的通货膨胀率;如果未来年度通胀率是CPI(消费者物价指数),那么增长速度将等于负的CPI。2.5 使用dir()来查找变量和函数

为几个变量赋值后,可以使用dir()函数来检查它们是否存在。下面的例子显示n、pv和r等变量。现在不用理会最前面的4个变量,它们的名字开头和结尾各有两个下划线。>>>pv=100>>>r=0.1>>>n=5>>>dir()['__builtins__', '__doc__', '__name__', '__package__', 'n', 'pv', 'r']>>>2.6 删除或取消变量

编写程序时,有时需要删除那些不再需要的变量。在这种情况下,可以使用del命令删除一个指定的变量。在下面的例子中,给变量rate赋值,显示其值,将其删除,然后输入变量名试图再次显示其值。>>>rate=0.075>>>rate0.075

以上代码显示rate的值为0.075。以下代码先删除该变量,然后试图再次显示其值。>>>del rate>>>rateTraceback (most recent call last):File "", line 1, in RateNameError: name 'rate' is not defined [End of codes]

以上出错信息最后一句告诉我们,变量rate没有被定义。如果需要一次删除几个变量,可以用逗号把它们分隔,例如:>>>pv=100>>>r=0.85>>>dir()['__builtins__', '__doc__', '__name__', '__package__', 'pv', 'r']>>>del pv, r>>>dir()['__builtins__', '__doc__', '__name__', '__package__']2.7 基本数学运算:加、减、乘、除

Python中基本的数学运算采用传统的数学运算符:+(加)、−(减)、*(乘)、/(除)运算。下面一行代码包括所有这些运算符。>>>3.09+2.1*5.2-3/0.568.652857142857144

如果意外地输入除号两次(//),会得到一个奇怪的结果。双斜杠//代表整数除法,运算结果是给出一个比商数小的最大整数。7除以3的结果为2.33,2是比2.33小的最大整数。例如:

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载