常用的树模型包括二叉树和三叉树,两者的差别在于对标的价格变动的 假设略有不同,二叉树的价格走势方向包括向上和向下,三叉树模型包括向 上、向下和不变三种情况。树模型的构建是基于风险中性的原理。
三叉树模型
考虑一个有限概率空间( finite probability space)— (Ω,P(ω),P),将资产价格的三种趋势:上涨、中性、下跌作为Ω 的所有可能的移动情况: Ω := {ωd,ωm,ωu}。这些资产价格移动路径的发生概率如下:
接下来,每一步的乘数0<d<m<u,分别对应于非负的下一步、中一步和上一步,当乘以我们的基本价格St时,将给出St+1值:
期权定价
python实践
def plot_s_tree(self):
""" 绘制标的资产三叉树的路径 """
n=np.shape(self.s_tree)[1]
plt.title('Underlying_TrinomialTree')
plt.xlabel('time_steps')
plt.ylabel('price')
for i in range(n-1):
for j in range(2*i+1):
# 上涨价格路径
plt.plot([i,i+1],[self.s_tree[j][i],self.s_tree[j][i+1]],marker='.')
# 不变价格路径
plt.plot([i,i+1],[self.s_tree[j][i],self.s_tree[j+1][i+1]],marker='.')
# 下跌价格路径
plt.plot([i,i+1],[self.s_tree[j][i],self.s_tree[j+2][i+1]],marker='.')
plt.show()