⾦融数据python分析实例_Python⾦融⼤数据分析-蒙特卡洛仿
真
1.简单的例⼦俄罗斯足球队
了解⼀点⾦融⼯程的对这个公式都不会太陌⽣,是⽤现在股价预测T时间股价的公式,其背后是股价符合⼏何布朗运动,也就是⼤名⿍⿍的BSM期权定价模型的基础。
我们假设现在⼀个股票的价值是100,那么两年后是多少呢?
[python]view plaincopy
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
S0 = 100
江浙沪旅游景点推荐r = 0.05
sigma = 0.25
T = 2.0
I = 10000
ST1 = p((r - 0.5*sigma**2)*T+sigma*np.sqrt(T)*np.random.standard_normal(I))
plt.hist(ST1,bins = 50)
plt.xlabel('price')
plt.ylabel('ferquency')
运⾏的结果如下所⽰:
很明显,是⼀个lognormal分布,因为这样的假设下,价格符合lognormal分布,收益率符合正态分布。
2.简单的蒙特卡洛路径
上⾯是⼀步到位的,那么如果我们中间分很多个⼩时间段来仿真呢?可以知道,物理问题是⼀样的,结果也不会有差异。
[python]view plaincopy
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import scipy.stats as scs
S0 = 100
r = 0.05
sigma = 0.25
T = 2.0
I = 10000
#ST1 = p((r - 0.5*sigma**2)*T+sigma*np.sqrt(T)*np.random.standard_normal(I))
#plt.hist(ST1,bins = 50)
#plt.xlabel('price')
#plt.ylabel('ferquency')
星级文明户M = 50
dt = T/M
腹中有书气自华S = np.zeros((M + 1,I))
签名设计免费S[0] = S0
print S[0]
for t in range(1,M+1):
S[t] = S[t-1]*np.exp((r-0.5*sigma**2)*dt+sigma*np.sqrt(dt)*np.random.standard_normal(I))
波纹造句
失败乃成功之母的意思
plt.hist(S[-1],bins = 50)
plt.xlabel('price')
plt.ylabel('frequency')
plt.show()
plt.plot(S[:,:],lw = 1.5)
plt.xlabel('time')
plt.ylabel('price')
秋天的画plt.show()
我们不仅可以得到最终的分布,也可以知道价格路径,⽽这⼀价格路径,才是真正代表了蒙特卡洛的精髓。
如果我们绘制得路径更加多⼀点,就是这样的⼀个效果:
从侧⾯看,其实就是⼀个lognormal分布。