第二天/第三天
目標_不分先后:
實踐部分:
- 重點熟悉:numpy,scipy,matplotlib,random,https://docs.spyder-ide.org/
實際上如果是熟悉matlab操作的大神們應該改會發現這些包和matlab里面的是相通的
python 大雜燴實錘
- 重點
-
實現問題訓練:
- 簡單的方程求解曲線參數,模擬圖像
- 最小二乘法擬合,回歸模型,
了解微分方程模擬
- 解常微分方程,模擬圖像
- 解偏微分方程,模擬圖像
時間關系,看看實現例子,然后自己寫
- 布朗運動
- 維納過程
- 幾何布朗運動(ito模擬)
- 運用以上模型直接模擬歸奧價格走勢
理論部分:
- 復習,推導,理解,幾何布朗運動模型,伊藤引理(如果時間不夠,跳過這一步)
- 期權與股票的性質—
- 期權的交易策略
- 期權二叉樹(BSM模型原理的基礎和推導就是基於期權二叉樹模擬的隨機游走過程
知乎專欄——AI和金融模型——第一篇文章開始
重點:
- 維納過程和伊藤引理
- 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 ,需要用微分方程來推導
最后會得到幾何布朗運動的基本公式
- 收獲與反思:
- 現在可以實現布朗運動/幾何布朗運動模擬股市圖像,數據還沒有找
- 更加深刻地理解了公式地推導過程
- 加深了對正態分布的理解,復習了微分方程
- 實踐帶動理解
- 背函數啥的不如直接看大佬們的代碼,一行一行理解,反正用的多的就那幾個
代碼實現:
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()
執行結果:

