首页百科外汇书籍百科文章详细

Python 金融编程 快速入门与项目实操

原创2021-04-28 10:59:34 470

内容简介


本书以Python基础知识为教学脉络,配以相应的金融编程案例加以讲解。全书分为3部分,共19章。第1部分:基础知识(第1-12章);第2部分:Python金融编程的常用库(第13-16章);第3部分:实战项目(第17-19章)。


其中,第1部分以Python基础知识为主,从如何安装开始,通过对变量、赋值、注释的讲解,让读者了解的编程要素,再添以条件、循环语句、函数等,赋予程序不同功能。后讲解包、模块、类的概念,让大家知道代码如何存储和取用更方便。


第2部分围绕金融编程常用的几个Python库——NumPy、Pandas和Matplotlib,分别解决金融编程中关于数组、时间序列和数据可视化的问题。在部分的基础上,让大家了解在解决实际相关金融数据分析问题时,需要将大量的数据进行怎样的操作,相关代码如何编写使得其后的输出是我们可以运用于分析的形式。


第3部分是3个金融实战项目,是对于前面章节的综合运用。采取一章节一个项目,包含:期权定价模型、寻找投资组合以及银行板块低估值选股策略。从讲解金融知识背景,到分析问题,理出代码编写思路,导入数据,编写代码,运行和回测。


作者简介


高顿财经研究院创立于2009年,现有200多名研究员和学术老师,目前已出版财经图书近50种。研究院将研发与教学并重,在财经教育领域不断探索研究,为学员提供前瞻性、高水准的知识服务。高顿财经研究院在衍生品研发及对冲策略研究、量化模型、量化策略开发及实施、机器学习、高频交易等领域均设立研究项目和开发相关课程。


内页插图

第1部分 基础知识


第1章 初识编程和Python


1.1 程序与编程语言


1.1.1 什么是程序


1.1.2 编程语言的分类


1.2 Python简介


1.2.1 什么是 Python


1.2.2 Python的特点


1.2.3 为什么金融行业喜欢使用Python


1.3 安装Python及相关软件


1.3.1 版本选择:Python 2 与 Python 3


1.3.2 Anaconda


1.3.3 安装 Anaconda


1.3.4 检査是否安装成功


思考与练习


编程练习


第2章 Python程序实例分析


2.1个Python小程序


2.1.1 编写 Hello World 程序


2.1.2 运行 Hello World 程序


2.1.3 使用集成开发环境运行Python程序


2.1.4 使用第三方工具包


2.1.5 学会使用Python的帮助文档


2.2 案例:汇率换算


2.2.1 程序开发过程


2.2.2 Python程序的基本元素分析


思考与练习


编程练习


第3章 变量与数据类型


3.1 变量的定义与运用


3.1.1 为什么需要使用变量


3.1.2 变量的赋值


3.1.3 变量的命名规则


3.1.4 多变量的赋值


3.2 数据类型:数字


3.2.1 数字的基本类型


3.2.2 数字类型的基本操作


3.2.3 布尔类型


3.3 数据类型:字符串


3.3.1 字符串的基本定义


3.3.2 字符串的基本操作


3.3.3 字符串的内置函数


3.3.4 字符串的内置方法


3.4 数据类型的相互转换


3.4.1 査看数据类型


3.4.2 整数与浮点数之间的转换


3.4.3 整数、浮点数与布尔类型之间的转换


3.4.4 数字与字符串之间的转换


3.5 案例:计算资金的时间价值


思考与练习


编程练习


第4章 赋值输入与格式化输出


4.1 赋值输入


4.1.1 input语句的使用


4.1.2 如何获取数字类型的输入


4.2 格式化输出


4.2.1 format方法的概述


4.2.2 输出内容的序号设置


4.2.3 文本内容的格式化输出


4.2.4 数字内容的格式化输出


4.2.5 格式化修饰符和标记的混合使用


4.3 print函数


4.3.1 print函数与format方法的结合使用


4.3.2 print函数的换行属性


4.3.3 利用print函数同时打印多个表达式


4.4 案例:现值计算器升级版


思考与练习


编程练习


第5章 使用注释及其他编程规范


5.1 注释的介绍与运用


5.1.1 为什么需要使用注释


5.1.2 单行注释


5.1.3 多行注释


5.1.4 代码块


5.2 编程规范


5.2.1 标识符


5.2.2 基本代码格式


思考与练习


第6章 条件语句


6.1 程序的结构


6.1.1 流程图的介绍


6.1.2 程序的基本结构


6.1.3 程序的控制语句


6.1.4 关系运算


6.2 条件语句


6.2.1 if语句:单分支结构


6.2.2 if-else语句:双分支结构


6.2.3 if-elif-else语句:多分支结构


6.3 条件语句实例操作:投资组合的判断


6.3.1 遍历判断


6.3.2 树形判断


6.3.3 贪婪算法


6.3.4 内置函数 max()


思考与练习


编程练习


第7章 循环结构


7.1 循环结构


7.2 遍历循环结构:for 语句


7.2.1 基本for语句


7.2.2 for-else 语句


7.3 条件循环结构:while 语句


7.3.1 基本 while 语句


7.3.2 while-else 语句


7.4 循环嵌套


7.4.1 for 循环嵌套


7.4.2 while 循环嵌套


7.5 转向语句


7.5.1 break 语句


7.5.2 continue 语句


7.6 空语句:pass 语句


思考与练习


编程练习


第8章函数


8.1 函数的概述


8.1.1 函数的基本概念


8.1.2 函数的功能


8.1.3 函数的来源


8.2 函数的定义及调用


8.2.1 函数的定义


8.2.2 函数的调用


8.2.3 函数的简单应用


8.3 函数的扩展


8.3.1 函数的参数


8.3.2 函数变量的作用域


8.4 匿名函数 lambda


8.4.1 匿名函数


8.4.2 匿名函数的优缺点


8.5 内置函数


8.6 实例操作


思考与练习


编程练习


第9章 列表


9.1 列表的概述


9.1.1 列表的形式


9.1.2 列表的特征


9.2 列表的基本操作


9.2.1 列表的创建


9.2.2 列表的拼接


9.2.3 列表的重复


9.2.4 列表的访问


9.2.5 列表的修改


9.2.6 列表的遍历


9.2.7 列表的成员检査


9.3 列表的函数与方法


9.3.1 列表的基本运算


9.3.2 列表的处理


9.4 元组


9.4.1 元组与列表


9.4.2 元组的创建


9.4.3 元组的基本操作


9.4.4 元组的函数


9.5 实例操作


思考与练习


编程练习


第10章 字典


10.1 字典的概述


10.1.1 字典的形式


10.1.2 字典的特征


10.2 字典的基本操作


10.2.1 字典的创建


10.2.2 字典的访问


10.2.3 字典的添加与修改


10.2.4 字典的遍历


10.2.5 字典的成员检査


10.3 字典的函数与方法


10.3.1 对字典的处理


10.3.2 元素处理


10.4 实例操作


思考与练习


编程练习


第11章 包与模块的导入


11.1 Python程序的组织结构


11.2 创建自己的模块


11.3 导入模块


11.3.1 导入同级目录下的模块


11.3.2 导入不同级目录下的模块


第12 章 面向对象


12.1 面向对象的程序设计


12.1.1 对象与类的基本概念


12.1.2 类的举例


12.2 类的运用


12.2.1 创建类


12.2.2 类的实例化


12.2.3 设置类的默认参数


12.2.4 类的类型


12.3 类的继承


12.3.1 继承类的简介


12.3.2 继承类的语法


12.3.3 继承类的运用


思考与练习


第2部分 Python金融编程的常用库


第13章 NumPy数据结构及运用


13.1 NumPy库简介及导入


13.1.1 NumPy库简介


13.1.2 NumPy库的导入


13.2 数组的创建及其基本属性


13.2.1 一个简单的运用场景


13.2.2 直接创建数组并査看其基本属性


13.2.3 创建等差数组


13.2.4 创建随机数组


13.2.5 创建特殊的数组


13.2.6 根据已有数组来创建新数组


13.2.7 数组的类型的设定与转换


13.3 数组的索引与切片


13.3.1 简单索引


13.3.2 切片的索引与赋值


13.3.3 间隔索引


13.3.4 二维数组的索引与切片


13.3.5 布尔索引


13.3.6 智能索引


13.4 数组的形态操作


13.4.1 数组的重排


13.4.2 数组的转置


13.5 数组的运算


13.5.1 数组和标量之间的运算


13.5.2 数组和数组之间的运算


13.5.3 通用函数


13.6 数组的遍历


13.6.1 索引遍历


13.6.2 元素遍历


思考与练习


编程练习


第14章 Pandas基础:如何分析金融时间序列数据


14.1 Pandas的简介与导入


14.2 金融时间序列数据的导入


14.2.1 数据的基本描述


14.2.2 时间序列数据的导入


14.3 Series与DataFrame


14.3.1 为什么需要 Series 与 DataFrame


14.3.2 DataFrame的基本介绍与索引


14.3.3 利用DataFrame全方位了解数据


14.3.4 DataFrame 的运算


14.4 利用DataFrame 处理金融时间序列数据


14.4.1 时间序列的差分与滞后处理


14.4.2 时间序列缺失值的处理


14.4.3 时间序列的排序


14.4.4 累计成交量、


市值与移动平均线


思考与练习


编程练习


第15章 数据可视化输出


15.1 Matplotlib 模块简介


15.2各类图形的绘制


15.2.1折线图


15.2.2散点图


15.2.3柱状图


15.2.4同时绘制多种图像


15.3实例运用


15.3.1 实例一:欧式期权价值与标的资产价格


15.3.2 实例二:欧式看涨期权与执行价格


思考与练习


编程练习


第16章 异常处理


16.1 例外与异常信息


16.1.1 程序的例外情况


16.1.2 异常信息


16.2 常见的异常处理


16.2.1 单异常处理


16.2.2 多异常处理


16.3 实例操作


思考与练习


第3部分实战项目


第17章 期权定价模型


17.1 理论背景知识


17.1.1 股票期权的定义


17.1.2 期权的分类


17.1.3 影响期权合约定价的因素


17.1.4 BSM期权定价模型


17.1.5 期权的指标


17.2 上证50ETF与上证50ETF期权


17.3 项目的实现


17.3.1 工具包的导入


17.3.2 看涨期权的定义


17.3.3 期权的初始化


17.3.4 实例化运用


17.3.5分析


17.4 总结


编程练习


第18章 寻找投资组合


18.1 理论模型


18.1.1 背景知识


18.1.2 马科维茨均值方差模型


18.2 模型的实现


18.2.1 导入模块


18.2.2 导入数据


18.2.3 投资组合产品的权重模拟


18.2.4 确定投资组合的有效前沿


18.2.5 加入无资产后的市场组合


18.2.6 组合配置


18.3 总结


编程练习


第19章 银行板块低估值选股策略


19.1 选股策略的基本思路


19.2 初步整理数据文件


19.2.1 stock_basic:银行股的基本信息


19.2.2 stock_daily:银行股的每日交易状况


19.2.3 daily-basic:银行股每月后一个交易日的交易状况


19.2.4 index-daily:银行股指数每个交易日的交易状况


19.3 编写自定义库:utils


19.3.1 grouping_ld 函数


19.3.2 grouping 函数


19.3.3 get_w 函数


19.4 策略的实现


19.5 模型的回测


19.6 结果展示


19.7 策略超额收益的稳健性分析


19.8 策略评价


19.9 总结


思考与练习


标签:

随机快审展示
加入快审,优先展示

加入VIP