前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python数据可视化分析速成笔记_2-2_布朗运动/几何布朗运动(伊藤过程)实现的demo[通俗易懂]

python数据可视化分析速成笔记_2-2_布朗运动/几何布朗运动(伊藤过程)实现的demo[通俗易懂]

作者头像
全栈程序员站长
发布2022-09-20 11:10:58
8680
发布2022-09-20 11:10:58
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

第二天/第三天

目标_不分先后:

 实践部分:

实际上如果是熟悉matlab操作的大神们应该改会发现这些包和matlab里面的是相通的

python 大杂烩实锤

  • 重点

实现问题训练:

  • 简单的方程求解曲线参数,模拟图像
  • 最小二乘法拟合,回归模型,

   了解微分方程模拟

  • 解常微分方程,模拟图像
  • 解偏微分方程,模拟图像

时间关系,看看实现例子,然后自己写

  • 布朗运动
  • 维纳过程
  • 几何布朗运动(ito模拟)

  • 运用以上模型直接模拟归奥价格走势

  理论部分:

  • 复习,推导,理解,几何布朗运动模型,伊藤引理(如果时间不够,跳过这一步)
    1. 期权与股票的性质— https://blog.csdn.net/Hellolijunshy/article/details/101028026
    2. 期权的交易策略
    3. 期权二叉树(BSM模型原理的基础和推导就是基于期权二叉树模拟的随机游走过程

知乎专栏——AI和金融模型——第一篇文章开始

    重点:

  1. 维纳过程和伊藤引理
  2. BSM,几何布朗运动与布朗运动

时间:24h

反馈:

  • 总体任务完成情况:
    • 大致完成了基本过程,还剩下一个ito没有实现推导,理论没有完全看完,
  • 难点:
    • 主要是函数用起来不熟练,而且对函数的目的不了解
    • 微积分不熟,对公式的本质,推导过程理解很浅薄。

一开始不知道用函数怎么实现,还以为布朗运动模拟运动的模拟要积分,实际上运用的是正态分布+时间函数求和,

因为时间点是离散的,用定义法求积分,

dx = a*dt + b*dz,∑a*dt = T,dz=e*sqrt(dt),e~(0,1),∑dz=(sqrt(dt))*∑ e

伊藤引理也是这样,只是它的积分式是微分方程,由公式:dS/S=u* dt+e* o* sqrt(dt),求 S ,需要用微分方程来推导

最后会得到几何布朗运动的基本公式

  • 收获与反思:
    • 现在可以实现布朗运动/几何布朗运动模拟股市图像,数据还没有找
    • 更加深刻地理解了公式地推导过程
    • 加深了对正态分布的理解,复习了微分方程
    • 实践带动理解
    • 背函数啥的不如直接看大佬们的代码,一行一行理解,反正用的多的就那几个

代码实现:

python数据可视化分析速成笔记_2-2_布朗运动/几何布朗运动(伊藤过程)实现的demo[通俗易懂]
python数据可视化分析速成笔记_2-2_布朗运动/几何布朗运动(伊藤过程)实现的demo[通俗易懂]
python数据可视化分析速成笔记_2-2_布朗运动/几何布朗运动(伊藤过程)实现的demo[通俗易懂]
python数据可视化分析速成笔记_2-2_布朗运动/几何布朗运动(伊藤过程)实现的demo[通俗易懂]
代码语言:javascript
复制
 1 # -*- coding: utf-8 -*-  2 """  3 Created on Mon May 4 20:43:06 2020  4  5 @author: 10913  6 """  7  8  9 import numpy as np 10 import matplotlib.pyplot as plt 11 12 13 14 ''' 15 16 17 几何布朗运动: 18  St=S0*exp(ut) 19  St=S0*exp(u t+o e sqrt(dt)) 20 21  St=S0*exp(a t+b z) 22 23 24 ''' 25 D=250 #250个交易日 26 T=1.0 #总时间1年 27 dt=T/D #单位时间 28 29 ''' 30 另一种写法 31 S=np.zeros((M+1,I)) 32 33 S[0]=S0 #定义S[0]=S0 34 35 for t in range(1,M+1): 36 37  S[t]=S[t-1]*np.exp(mean*dt+sigma*np.sqrt(dt)*np.random.standard_normal(I)) 38 39 ''' 40 s0=100 #初始价格 41 i=4 42 st=np.zeros((i,D)) 43 st[0]=s0 44 a=0.15 45 b=0.3 46 n=round(T/dt)#dimension 47 plt.subplot(212) 48 for g in range(1, i): 49 t=np.linspace(0,T,n) 50 e=np.random.standard_normal(size=n) 51 z=np.cumsum(e)*np.sqrt(dt) 52 x=a*t+b*z; 53 st[g]=st[0]*np.exp(z) 54 55 plt.plot(t,st[g],label='st'+str(g)) 56 57 58 plt.legend() 59 plt.show()

View Code

执行结果:

python数据可视化分析速成笔记_2-2_布朗运动/几何布朗运动(伊藤过程)实现的demo[通俗易懂]
python数据可视化分析速成笔记_2-2_布朗运动/几何布朗运动(伊藤过程)实现的demo[通俗易懂]

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/168215.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第二天/第三天
    • 目标_不分先后:
      • 时间:24h
        • 反馈:
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档