【总0156-量化实验057】蒙特卡罗法计算欧式期权定价(2)

论坛 期权论坛 期权     
量化金融前沿   2018-4-28 23:47   2936   0
(图片来源:Pokemon)
有不少人留言还是要求讲解代码,于是这不又把本专题搞成连载了吗?
这样吧,我们换一种写法来实现我们蒙特卡罗法计算欧式期权公式的思路,今天这个写法各位看起来是不是舒服一些呢?
此外留言请都在推文末留言吧,不要再在对话框里留言了。
这个程序是看起来舒服了,也就是说代码的阅读性增强了,但是采用了太多的for-loop,这在Python、Matlab和R语言这些相对于C/C++更高级的语言非常避讳的事情,原因是运行时间变慢,所以Python这样的语言编写程序必须尽量的采用“矢量化”进行编写,也就是要尽量用Python自带的功能去编写。
今天的代码也放到网上去了,请点击文末的“阅读原文”。(此外为了区分今天和昨天的code,将昨天的code的名字修改了一下,所以如果你访问昨天的链接可能发觉链接失效了,总之还是访问我的Github账号就好了,就能找到本推文公众号的源代码。)
下面第1-第5行先是调用需要的库,注意我们用的库非常简单,连numpy都没用到。
然后第5~第9行是初始化信息。


第11行到第22行开始模拟标的物价格(也就是股价)的走势,其实就是将以下具体公式用计算机语言写出来了而已:



然后逐步逐条路径的判断收益规则,具体见第24行到第29行,其实也就是利用代码实现了以下公式而已:






最后输出结果并看看用时,我的电脑竟然都跑了差不多30秒(Win10系统,Anaconda),而昨天的代码跑完仅用了不到2秒钟。


所以各位回去再对比一下昨天的code和今天的code,体会一下for-loop和“矢量化”(vectorization)编程(即:思考问题最好矢量化、矩阵化)的区别。
最后把今天的code完整展示一下。



以往关于不同计算机语言(Matlab、Python、C/C++以及GPU CUDA C)编写BSM期权公式的推文帖子汇总如下:
【总0154-量化实验055】超算时代-CUDA环境下如何写BSM模型(6)
【总0153-量化实验054】超算时代-CUDA环境下如何写BSM模型(5)
【总0152-量化实验053】超算时代-CUDA环境下如何写BSM模型(4)
【总0151-量化实验052】超算时代-CUDA环境下如何写BSM模型(3)
【总0150-量化实验051】超算时代-CUDA环境下如何写BSM模型(2)
【总0149-量化实验050】超算时代-CUDA环境下如何写BSM模型(1)
【总0148-量化实验049】如何用C/C++写Black-Scholes模型(3)?
【总0147-量化实验048】如何用C/C++写Black-Scholes模型(2)?
【总0146-量化实验047】如何用C/C++写Black-Scholes模型(1)?
【总0128-量化实验034】用Python写BSM公式
【总0121-量化实验028】验证一个经典期权公式
【总0115-量化讲堂065】关于二叉树模型(1)
【总0116-量化实验023】关于二叉树模型(2)
【总0091-量化实验015】蒙特卡罗在期权定价中的应用(2):对偶抽样法(antithetic sampling)
【总0090-量化实验014】蒙特卡罗在期权定价中的应用(1)
【总0083-量化讲堂048】如何自己用Matlab写BSM期权定价公式
****************************************
以下是我们分享的有趣的关于Python的程序或相关问题
【总0155-量化实验056】蒙特卡罗法计算欧式期权定价(1)(PS:该期有以往精彩内容回顾和汇总)
【总0143-量化实验046】如何用Python写最简单的VaR(在险价值)?(2)
【总0142-量化实验045】如何用Python写最简单的VaR(在险价值)?(1)
【总0139-量化八卦010】关于Python“人生苦短”的典故由来
【总0141-量化实验044】介绍一些Python的Pandas包的常用功能(3)
【总0140-量化实验043】介绍一些Python的Pandas包的常用功能(2)
【总0138-量化实验042】介绍一些Python的Pandas包的常用功能(1)
【总0136-量化实验040】如何利用Python获得Yahoo上的股票信息(2)
【总0134-量化实验039】如何利用Python获得Yahoo上的股票信息(1)
【总0137-量化实验041】Python教你如何知道谁在微信上删除了你
【总0131-量化实验036】Python运行简单的OLS
【总0130-量化实验035】利用Python如何网上获得股票金融数据咨询(暂时)缓解量化分析之需?
【总0129-量化讲堂066】利用Python做金融数据分析你必须安装的“包”(插件)
【总0125-量化实验025】如何用Python抓新浪股票实时股价信息(1)?
【总0133-量化实验038】如何用Python抓新浪股票实时信息(2)?
【总0124-量化实验031】演示一个最简单的Python爬虫
【总0123-量化实验030】代号MRPJL-01
【总0119-量化实验026】(正式版)使用Tensorflow是一种什么体验?
【总0099-量化实验016】我上课一直用的量化教材以及Python例子
****************************************
以下是我们分享的人工智能和深度学习的咨询
【总0119-量化实验026】(正式版)使用Tensorflow是一种什么体验?
【总0112-量化实验022】量化金融的技术开发人员该大概有个什么样的工作环境?
【总0101-量化实验021】计算金融开发的黑暗利器--GPU CUDA编程技术
【总0104-量化讲堂060】深度学习与机器学习理论的软件包有哪些?
【总0106-量化讲堂062】统计学习理论都有哪些主流模型?
【总0101-量化讲堂057】Deep Courtship: AI and Finance.
****************************************
以下是我们分享的一些量化金融专业的相关知识和介绍
【总0112-量化实验022】量化金融的技术开发人员该大概有个什么样的工作环境?
【总0109-量化实验019】一个重要的C++金融定价软件包(1)
【总0110-量化实验020】一个重要的C++金融定价软件包(2)
【总0108-量化八卦009】CUEB QuantFinace专硕简单介绍
【总0103-量化讲堂059】说说经济学学科新前沿---量化经济学
【总0102-量化讲堂058】(正式版)金融文科生如何零基础学C++?
【总0127-量化实验033】RStudio一个很亲民体贴的功能
【总0135-量化讲堂067】求你们不要再问我R的问题了
【总0095-量化八卦007】我所喜欢的美国顶级量化专业(3)
【总0094-量化八卦006】我所喜欢的美国顶级量化专业(2)
【总0093-量化八卦005】我所喜欢的美国顶级量化专业(1)
【总0112-量化学术023】巴菲特的秘密

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:25
帖子:11
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP