N步二叉树模型
二叉树模型介绍
②期权定价: 在三个月末尾:看涨期权价值为$1的概率 为0.6523,价值为零的概率为0.3477。 看涨期权的期望值为: 0.6523×1+0.3477×0=$0.6523 期权现在的价值: f=0.6523e-0.12×0.25 =0.633
三、两步二叉树图
1、两步二叉树图的例子 1)条件: 开始的股票价格为$20,并在两步二叉树 图的每个单步二叉树图中,股票价格可 以上升10%或者下降10%。 我们假设在每个单步二叉树的步长是三 个月,无风险利率是年率12%。 期权的执行价格为$21
该组合的现值 ( S u f u )e S f
rT
该组合的成本
则有: S f (Su f u )e
rT
rT
得到: f e [ pfu (1 p) f d ]
d 其中 : p ud e
rT
3、股票预期收益的无关性
衍生证券定价公式没有用到股票上升和 下降的概率。 人们感觉:假设如果股票价格上升的概 率增加,基于该股票的看涨期权价值也 增加,看跌期权的价值则减少。
如果选取某个Δ值,以使得该组合的终值 对两个股票价格都是相等的,则该组合 就是无风险的。
22Δ—1=18Δ
Δ=0.25
一个无风险的组合是: 多头:0.25股股票 空头:一个期权
4)定价: 如果股票价格上升到$22,该组合的价值 为:22×0.25=4.5 如果股票价格下跌到$18,该组合的价值 为:18×0.25=4.5 无论股票价格是上升还是下降,在期权 有效期的末尾,该组合的价值总是$4.5。
二叉树模型u和d公式
二叉树模型u和d公式
二叉树模型是计算机科学中常用的数据结构之一,它由节点和边组成,每个节点最多有两个子节点,分别称为左子节点和右子节点。
在二叉树模型中,我们可以使用一些公式来描述和操作这些节点,其中包括u和d公式。
第一个公式是u公式,它用来计算二叉树中节点的数量。
对于一个二叉树来说,u公式可以表示为:
u = n + 1
其中,u表示节点的数量,n表示叶子节点的数量。
这个公式的原理是,一个二叉树中的节点数量等于叶子节点数量加一。
这是因为在一个二叉树中,每个节点都有两个子节点,除了叶子节点,它们没有子节点。
所以,节点数量等于叶子节点数量加上根节点。
第二个公式是d公式,它用来计算二叉树中的边的数量。
对于一个二叉树来说,d公式可以表示为:
d = n
其中,d表示边的数量,n表示叶子节点的数量。
这个公式的原理
是,一个二叉树中的边的数量等于叶子节点的数量。
这是因为每个节点都有一条边与其父节点相连,除了根节点没有父节点外,其余节点都有一条边与其父节点相连。
所以,边的数量等于叶子节点的数量。
通过u和d公式,我们可以方便地计算二叉树中节点和边的数量。
这对于分析和设计二叉树算法非常有用。
另外,还可以通过这些公式来验证二叉树的正确性,例如检查节点和边的数量是否满足这些公式。
除了u和d公式外,还有其他一些常用的公式可以用来描述和操作二叉树模型,例如高度公式、深度公式等。
这些公式可以帮助我们更好地理解和使用二叉树这一重要的数据结构。
期权定价的二叉树模型(ppt 39页)
第7章 期权定价的二叉树模型
2022/3/23
22
ftrf S S f1 22S2 S 2f2rf f
c St N d1 X erf Tt N d2
St erf Tt N d1 X N d2 erf Tt
EST Nd1 X N d2 erf Tt EST Nd1 X N d2 erf Tt
2022/3/23
21
风险中性定理表达了资本市场中的这样的 一个结论:即在市场不存在任何套利可能性的 条件下,如果衍生证券的价格依然依赖于可交 易的基础证券,那么这个衍生证券的价格是与 投资者的风险态度无关的。
这个结论在数学量,尤其是期望收益率。
公平的入局费=2000×50%+0×50%= 1000元
第7章 期权定价的二叉树模型
2022/3/23
13
愿意支付的入局费 风险类型 数量 入局费<1000元 风险厌恶者 众多 入局费=1000元 风险中性者 入局费>1000元 风险喜好者 极少
如果有人愿意无条件地参加公平的赌博, 则这样的人被认为是风险中性。风险中性者对 风险采取无所谓的态度。
考虑以下组合:
①买入1份股票看涨期权 ②卖空Δ股股票
显然,适当调整Δ可以使得上述组合为无风 险组合。
第7章 期权定价的二叉树模型
2022/3/23
3
如果这个组合是无风险组合,则其价值与 状态无关,所以,以下数学表达式成立:
22118
解得,
0.25
也就是说,1份看涨期权多头加上0.25股股 票空头构成的组合是无风险组合。
这就是风险中性定价的基本思想。
第7章 期权定价的二叉树模型
2022/3/23
18
我们回到之前的示例中,在那里,我们可 以把股票价格上升的概率定义为p,于是在到 期日T时刻,股票价格的期望值为:
10.3二叉树看跌期权定价与平价原理
第10章二叉树法期权定价及其Python应用本章精粹蒙特卡罗模拟法便于处理报酬函数复杂、标的变量多等问题,但是在处理提前行权问题时却表现出明显的不足。
本章将要介绍的二叉树法可以弥补蒙特卡罗模拟法的这种不足。
二叉树的基本原理是:假设变量运动只有向上和向下两个方向,且假设在整个考察期内,标的变量每次向上或向下的概率和幅度不变。
将考察期分为若干阶段,根据标的变量的历史波动率模拟标的变量在整个考察期内所有可能的发展路径,并由后向前以倒推的形式走过所有结点,同时用贴现法得到在0时刻的价格。
如果存在提前行权的问题,必须在二叉树的每个结点处检查在这一点行权是否比下一个结点上更有利,然后重复上述过程。
10.1 二叉树法的单期欧式看涨期权定价假设:(1) 市场为无摩擦的完美市场,即市场投资没有交易成本。
这意味着不支付税负,没有买卖价差(Bid-Ask Spread)、没有经纪商佣金(Brokerage Commission)、信息对称等。
(2) 投资者是价格的接受者,投资者的交易行为不能显著地影响价格。
(3) 允许以无风险利率借入和贷出资金。
(4) 允许完全使用卖空所得款项。
(5) 未来股票的价格将是两种可能值中的一种。
为了建立好二叉树期权定价模型,我们先假定存在一个时期,在此期间股票价格能够从现行价格上升或下降。
下面用实例来说明二叉树期权定价模型的定价方法。
1. 单一时期内的买权定价假设股票今天(t =0)的价格是100美元,一年后(t =1)将分别以120美元或90美元出售,就是1年后股价上升20%或下降10%。
期权的执行价格为110美元。
年无风险利率为8%,投资者可以这个利率放款(购买这些利率8%的债券)或借款(卖空这些债券)。
如图10-1所示。
今天 1年后t =0 t =1u S 0=120 上升20% 1000=Sd S 0=90 下降10%u 0max(u ,0)max(120110,0)10C S X =-=-=?0=Cd 0max(d ,0)max(90110,0)0C S X =-=-=图10-1 买权价格图10-1表示股票买权的二叉树期权定价模型。
期权定价二叉树模型
9 e
0.10.25
8.78
• 这也应该是期初用于投资组合的资金,由 此得:
1 30 C 8.78, C 10 8.78 1.22 3 • 买入期权的价格应该定为1.22元
三、期权定价的二项式公式
符号: S 0 股票在期初的价格, S X 期权确定的执行价格, u 股票价格在单个时间阶段内的上升因子 d 股票价格在单个时间阶段内的下降因子(-) Ru 期权在股票价格上升状态下的收益 Rd 期权在股票价格下降状态下的收益 r 年无风险收益率 T 期权的期限
7.14 qu max{ S 0 (1 u ) 3 (1 d ) S X ,0} q d max{ S 0 (1 u ) 2 (1 d ) 2 S X ,0}
0.33 qu max{ S 0 (1 u ) 2 (1 d ) 2 S X ,0} q d max{ S 0 (1 u )(1 d ) 3 S X ,0}
n n i i n i i C i qu q d max{ S 0 (1 u ) (1 d ) S X ,0} i 0
n
n n! n (n 1) (n i 1) , n 0,1, i (i 1) 1 i (n i )!i !
0 qu max{ S 0 (1 u ) 3 (1 d ) S X ,0} qd max{ S 0 (1 d ) 4 S X ,0}
对于第2阶段各状态期权价值有
2 13.7 qu 18.03 q d 7.14 qu max{ S 0 (1 u ) 4 S X ,0}
计算相关数据
u (e rT 1) ud 0.1 (e 0.05 1) 0.1 0.05 0.324859
斐波那契数列二叉树
斐波那契数列二叉树斐波那契数列是一种非常有趣的数列,它的每一项都是前两项的和。
例如,斐波那契数列的前几项是1、1、2、3、5、8、13、21、34、55、89、144……这个数列在数学和计算机科学中都有广泛的应用,其中一个应用就是构建斐波那契数列二叉树。
斐波那契数列二叉树是一种特殊的二叉树,它的每个节点都对应着斐波那契数列中的一个数。
具体来说,根节点对应着第n项斐波那契数,左子树对应着第n-1项斐波那契数,右子树对应着第n-2项斐波那契数。
这样,我们就可以通过斐波那契数列来构建一棵二叉树。
斐波那契数列二叉树的构建过程非常简单,我们可以使用递归的方式来实现。
具体来说,我们可以定义一个函数fibonacciTree(n),它的返回值是一棵斐波那契数列二叉树,其中n表示根节点对应的斐波那契数列的下标。
函数的实现如下:```class TreeNode:def __init__(self, val=0, left=None, right=None):self.val = valself.left = leftself.right = rightdef fibonacciTree(n):if n == 0:return TreeNode(0)elif n == 1:return TreeNode(1)else:left = fibonacciTree(n-1)right = fibonacciTree(n-2)return TreeNode(left.val + right.val, left, right)```在这个函数中,我们首先判断n的值,如果n为0或1,则直接返回一个只有根节点的二叉树。
否则,我们递归地构建左子树和右子树,然后将它们的值相加作为根节点的值,最后返回一棵完整的二叉树。
使用上面的代码,我们可以构建出斐波那契数列二叉树的任意一棵子树。
例如,如果我们想构建第5项斐波那契数列对应的子树,可以调用fibonacciTree(5)函数,得到如下的二叉树:```5/ \3 2/ \ / \2 1 1 1```这棵二叉树的根节点对应着第5项斐波那契数,左子树对应着第4项斐波那契数,右子树对应着第3项斐波那契数。
二叉树的5种基本形态。 -回复
二叉树的5种基本形态。
-回复二叉树是计算机科学中常用的数据结构之一,它由一个根节点和两个子节点组成,每个节点最多有两个子节点。
在这篇文章中,我们将探讨二叉树的五种基本形态。
一、满二叉树(full binary tree):满二叉树是一种特殊的二叉树,其中每个节点都有零个或两个子节点。
换句话说,满二叉树的每个内部节点都是一个分支节点。
满二叉树的特征是每一层的节点数量都是满的,最底层的节点与高度呈指数关系。
例如,一个满二叉树的高度为3,那么它有7个节点。
满二叉树的特点使得它在存储和搜索方面具有很高的效率。
然而,满二叉树的缺点是它需要较多的存储空间,并且在删除和插入节点时可能需要进行大量的重新排序。
二、完全二叉树(complete binary tree):完全二叉树是一种二叉树,其中除了最后一层外,每一层的节点都是满的,并且最后一层的节点从左到右连续排列。
换句话说,完全二叉树是一颗填满节点的树,只有最后一层的节点位置可以是不完全的,但是它们仍然从左到右排列。
完全二叉树的特点是它可以使用数组来表示,这样节省了存储空间。
此外,在完全二叉树中,插入和删除节点的操作也非常高效。
但是,相对于满二叉树,完全二叉树的节点数可能较少,并且在搜索方面的效率稍低。
三、平衡二叉树(balanced binary tree):平衡二叉树是一种特殊的二叉树,其中每个节点的左子树和右子树高度之差不超过1。
换句话说,平衡二叉树的高度在对数范围内增长。
平衡二叉树的特点是它保持了二叉搜索树的有序性,并且在插入和删除操作时能够自动调整以保持平衡。
这使得在平衡二叉树中搜索和插入节点时的时间复杂度保持在O(log n)级别。
但是,这种平衡性的维护也增加了操作的复杂性和内存需求。
四、搜索二叉树(binary search tree):搜索二叉树,也称为二叉查找树,是一种有序的二叉树。
在搜索二叉树中,所有左子树的值都小于父节点的值,而所有右子树的值都大于父节点的值。
二叉树的建立方法总结
⼆叉树的建⽴⽅法总结之前已经介绍了⼆叉树的四种遍历(如果不熟悉),下⾯介绍⼀些⼆叉树的建⽴⽅式。
⾸先需要明确的是,由于⼆叉树的定义是递归的,所以⽤递归的思想建⽴⼆叉树是很⾃然的想法。
1. 交互式问答⽅式这种⽅式是最直接的⽅式,就是先询问⽤户根节点是谁,然后每次都询问⽤户某个节点的左孩⼦是谁,右孩⼦是谁。
代码如下(其中字符'#'代表空节点):#include <cstdio>#include <cstdlib>using namespace std;typedef struct BTNode *Position;typedef Position BTree;struct BTNode{char data;Position lChild, rChild;};BTree CreateBTree(BTree bt, bool isRoot){char ch;if (isRoot)printf("Root: ");fflush(stdin); /* 清空缓存区 */scanf("%c", &ch);fflush(stdin);if (ch != '#'){isRoot = false;bt = new BTNode;bt->data = ch;bt->lChild = NULL;bt->rChild = NULL;printf("%c's left child is: ", bt->data);bt->lChild = CreateBTree(bt->lChild, isRoot);printf("%c's right child is: ", bt->data);bt->rChild = CreateBTree(bt->rChild, isRoot);}return bt;}int main(){BTree bt;bt = CreateBTree(bt, true);LevelOrderTraversal(bt); /* 层序遍历 */return0;}2. 根据先序序列例如输⼊序列ABDH##I##E##CF#J##G##(#表⽰空),则会建⽴如下图所⽰的⼆叉树思路和第⼀种⽅式很相似,只是代码实现细节有⼀点区别,这⾥给出创建函数BTree CreateBTree(){BTree bt = NULL;char ch;scanf("%c", &ch);if (ch != '#'){bt = new BTNode;bt->data = ch;bt->lChild = CreateBTree();bt->rChild = CreateBTree();}return bt;}3. 根据中序序列和后序序列和⽅式⼆不同的是,这⾥的序列不会给出空节点的表⽰,所以如果只给出先序序列,中序序列,后序序列中的⼀种,不能唯⼀确定⼀棵⼆叉树。
第三节 二叉树模型
f e
其中:
rT
[ Pfu (1 P) f d ]
e d P ud
rT
一、单期二叉树
风险中性定价的思路
假定风险中性世界中股票的上升概率为P,由 于股票未来期望值按无风险利率贴现的现值必 须等于该股票目前的价格,因此该概率可通过 下式求得:
S e
rT
[SuP Sd(1 P)]
每个步长为 3 个月,u=1.1, d=0.9,r=12%
二、两期二叉树模型与delta动态保值
欧式看涨期权定价
X = 21
22 20 1.2823
A B
E
D
24.2 3.2
19.8 0.0 16.2 0.0
2.0257
18 0.0
C
F
B结点处的价值
= e–0.12*0.25(0.6523*3.2 + 0.3477*0) = 2.0257
4.39元
由于该组合中有一单位看涨期权空头和 0.25 单位 股票多头,而目前股票市场为20元,因此:
20 0.25 f 4.39 f 0.61元
一、单期二叉树
2. 风险中性定价思想
在风险中性世界中,我们假定该股票上升的概率为 P,下跌的概率为1-P,则 e0.10.25 [22P 18(1 P)] 20 得: P=0.6266 这样,根据风险中性定价原理,我们就可以给出该 期权的价值:
第五讲 期权的价值决定
第一节:期权与期权产品简介
第二节:期权的定价原则
第三节: 二叉树模型 第四节:Black-Scholes定价公式
主要内容
第三节:二叉树模型 3.1 二叉树模型简介
n个节点能组成多少种二叉树
n个节点能组成多少种二叉树思想:递归+组合当n=1时,只有1个根节点,则只能组成1种形态的二叉树,令n个节点可组成的二叉树数量表示为h(n),则h(1)=1;当n=2时,1个根节点固定,还有n-1个节点,可以作为左子树,也可以作为右子树,即:h(2)=h(0)*h(1)+h(1)*h(0)=2,则能组成2种形态的二叉树。
这里h(0)表示空,所以只能算一种形态,即h(0)=1;当n=3时,1个根节点固定,还有n-1=2个节点,可以在左子树或右子树,即:h(3)=h(0)*h(2)+h(1)*h(1)+h(2)*h(0)=5,则能组成5种形态的二叉树。
以此类推,当n>=2时,可组成的二叉树数量为h(n)=h(0)*h(n-1)+h(1)*h(n-2)+...+h(n-1)*h(0)种。
即符合Catalan数的定义,可直接利用通项公式得出结果。
递归式:h(n)=h(n-1)*(4*n-2)/(n+1);该递推关系的解为:h(n)=C(2n,n)/(n+1) (n=1,2,3,...)文案编辑词条B 添加义项?文案,原指放书的桌子,后来指在桌子上写字的人。
现在指的是公司或企业中从事文字工作的职位,就是以文字来表现已经制定的创意策略。
文案它不同于设计师用画面或其他手段的表现手法,它是一个与广告创意先后相继的表现的过程、发展的过程、深化的过程,多存在于广告公司,企业宣传,新闻策划等。
基本信息中文名称文案外文名称Copy目录1发展历程2主要工作3分类构成4基本要求5工作范围6文案写法7实际应用折叠编辑本段发展历程汉字"文案"(wén àn)是指古代官衙中掌管档案、负责起草文书的幕友,亦指官署中的公文、书信等;在现代,文案的称呼主要用在商业领域,其意义与中国古代所说的文案是有区别的。
在中国古代,文案亦作" 文按"。
公文案卷。
《北堂书钞》卷六八引《汉杂事》:"先是公府掾多不视事,但以文案为务。
期权定价:期权定价习题与答案
一、单选题1、在固定步长二叉树模型中(u和d固定),没有分红,则第n步的二叉树结点数量为:(例如,初始结点一个,第一步结点为2个)()。
A.2^(n+1)-2B.n+1C.2nD.2^n正确答案:B2、假设一个投资组合满足自融资条件,市场上仅有A和B两种资产,利率为0,第一期时他的持仓为10份A和1份B,持仓直到第一期结束,第二期时,A的价格为1元,B的价格为5元,他调整了自己的持仓,持有X份A和2份B,则X=()。
A.10B.0C.8D.5正确答案:D3、在单期二叉树模型中,假设初始结点上股票S价格为50,第一期可能的股票价格分别为60和40,利率为0,则使用股票和债券复制第一期时到期的执行价格为50元的欧式看涨期权,需要购买多少份股票S。
()A.1B.0.2C.0.5D.0.8正确答案:C4、在单期二叉树模型中,假设初始结点上股票S价格为50,第一期可能的股票价格分别为60和40,利率为0,则使用股票和债券复制第一期时到期的执行价格为50元的欧式看涨期权对期权进行定价,期权的价格为()。
A.10B.5C.15D.0正确答案:B1、假设W是标准布朗运动{W(T),t≥0}, Y(t)=exp{aW(t)+bt},则在b 取何值时,Y是一个鞅:A.−aB. −0.5a2C. −a2D. −0.5a正确答案:B二、多选题3、标准布朗运动{W(T),t≥0}具有下列哪些性质A.W(0) = 0B. W的样本轨道关于时间连续C.W是一个独立增量过程D.W(K2)-W(K1)服从正态分布(K2>K1≥0)正确答案:A、B、C、D4、BS模型包括下列哪些前提假设A.市场上不存在无风险套利机会B.证券可以任意分割且交易没有成本C.标的资产价格服从几何布朗运动D.证券允许卖空正确答案:A、B、C、D三、判断题1、二叉树定价的看涨期权价格与物理测度下资产价格上涨下跌的概率p的大小,没有关系。
正确答案:√2、二叉树定价中,物理测度下资产价格上涨下跌的概率p 越大,则看涨期权价格越高正确答案:×3、二叉树定价中,股票S 现在的价格为50,利率为0,下个月的可能的价格分别为60和40,则执行价格为40的看涨期权价格为10 正确答案:√4、标准布朗运动在[0,t]上的二次变差等于t正确答案:√5、布朗运动几乎处处不可微正确答案:√6、布朗运动是一个马尔可夫过程正确答案:√7、布朗运动是一个鞅:Es (Wt )= Ws , t > s正确答案:√8、假设Y 是一个适应于布朗运动W 的随机过程,且E (∫Y 2(u )du t<∞)则 E [(∫Y (u )dW(u))t 02]=E (∫Y (u )2du t 0)正确答案:√9、BS模型中假设无风险利率是一个常数正确答案:√10、在BS模型中,路径独立的欧式权益的价格不依赖于标的资产的平均回报率μ正确答案:√11、在BS模型中,在其他参数不变的情况下,看跌期权的价格关于波动率,是严格单调递增的正确答案:√。
《金融衍生品》课件_第11章_期权定价数值方法
美式看跌期权协议价格为 50 元,求该期权
的价值。
20
美式看跌期权的二叉树定价 (cont.)
• 为了构造二叉树,我们把期权有效期分为
五段,每段一个月(等于 0.0833 年)。可
u e t 1.1224
以算出
d e
t
0.8909
4、资产价格随机路径模拟(风险中
性概率测度)
(1)常数波动率模型的离散化和模拟
• 在风险中性世界中,为了模拟路径
dS r q Sdt Sdz
(11.4)
我们把期权的有效期分为 N 个长度为 ∆t 的
时间段,则上式的离散的近似方程为:
(11.5)
6
(2)GARCH模型模拟
模型的离散化形式:
2、欧式期权蒙特卡罗模拟定价
假设标的资长价格服从波动率为常数的几
何布朗运动。对于欧式期权,只需要模拟出
标的资产到期的分布。如欧式看涨期权,第i
条路径下的支付:
()
为标准正态分布的一个随机抽样,
(11.3)=.源自3、蒙特卡罗模拟方法的适用性
• (1)普通的蒙特卡罗模拟方法不适用于美式
(10.23)
(10.24)
其中,
定义为:
(10.25)
3、Heston模型的离散化和模拟
模型的离散化和模拟
5、GARCH模型下的蒙特卡洛模拟定价
二、二叉树模型
1、二叉树模型原理
假设股票当前价格是S,下一期价格有两种可能 (= u)
和 =(Sd),风险中性下上升概率是p,下跌概率是1-p。
e r q t d
p
ud
金融工程(第五版)期权损益及二叉树模型
3. 设利率也是取二值的过程
4.设债券面值为D,半年的票息为Ci,i=1,…,2n,若把此债券看成面值 与票息分离的债券,则债券的现金流相当于2n份面值为Ci和一份面值 为D的零息债券。
债券价格树的构造 (一) 风险中性方法
1. 一年期债券的价格树 2. 一年半期债券的价格树
设股票在0时刻的价格为S(0)=S0, 在t=1 时刻价格为S(1)是随机变量,它可能的取值为S11或S12 (S12 > S11 ) 在t=2时刻价格为S(2),它可能取值为S21<S22 <S23 < S24 假设存在无风险投资,即可在银行存款,每期得到无风险回报为R(=1+r), 同时假设在银行里存款和从银行贷款,所支付的利率一样。 为了排除套利 机会,下列条件必须满足:
1 r d
q= ud
p=q
所以通常也称p为风险中性概率
例如:设S=21,1+r=1.15,u=1.4,d=1.1,X=22 ,求C。
注1.由此可知套期保值证券组合所需要的投资
21-1 1.869596=19.13
在期末所得到的无风险收益为22。
S-mC=21-1 1.869565=19.13 uS-mCu=1.4 21-1 7.4=22
它是牛市价差买卖与熊市价差买卖的组合,即购入一份执行价格为 X1 和其一中份,执X2>行X价3 格> 为X1X,2的且看涨X3期权X,1 再2 X卖2出两份执行价格为X3的看涨期权。 4.底部马鞍式组合( bottom straddle 或买马鞍式): 购入一份看涨期权和一份看跌期权,执行价格均为 X
Bd,t+1 +票息- mCd,t+1= B u,t+1 +票息- mCu,t+1
股票和期权的二叉树模型(2)
47
比敲出期权高。
9
敲出期权定价
作为对以上方法的验证,我们运用另一种方法计算敲出期权的当期价值。 该期权的最终价格的确定,取决于股票价格的变动路线,而不是仅由最终的 股票价格决定的。我们拟分别用u和d来描述股票价格的上涨和下跌路线,并 按照从左到右的次序。 在上面的约定下我们定义duu表示股票的路径为下跌→上升→上升。最终 价格在障碍之上的路径有:uuu,uud,udu;最终价格在障碍之下的有:
故回望期权现价为:
V0 e3rt E (V3 ) e0.05/4 5.611 5.5414
20
实证数据下二叉树模型分析
金融(或其他领域)中用的数学模型是为了帮助在分析现 在的基础上预测未来。如果模型是成功的,那么模型就应 该与实际相符。
如何确定p、u和d?
我们希望通过股价行为中的重要因素来估计上面这些参数
经理就会以15000点买入日经225指数的看涨期权,这样的看涨期权只有在美 元兑日元汇率低于79时才算敲出。
同样的,设置了敲出障碍的看涨期权会将显著的贴水。期权的这种结构设 置充分利用了日本证券市场对美元的敏感性,美元坚挺日元贬值有可能会使 日本出口贸易型公司的股票价格上升,从而拉动整个证券市场。
38
N期二叉树模型的定价和对冲风险
39
N期二叉树模型的定价和对冲风险
说明: 可以对冲N期二叉树模型并不意味着可以对冲任意的衍生 产品(比如说连续情形下)。即使二叉树模型通过选取足够大的n
值,以对股价进行合理的拟合,但股价运行中固有的属性,决定
了不可能做出无误差的对冲调整。
40
N期二叉树模型的定价和对冲风险
应的常规期权相同;反之该期权作废。
二叉树模型
Cd = Max(0,100(.80) - 100) = Max(0,80 - 100) = 0 h = (25 - 0)/(125 - 80) = .556 p = (1.07 - 0.80)/(1.25 - 0.80) = .6
二叉树模型
Binomial Trees
注意: d < exp(r*T) < u 以避免套利 构筑一个无风险的组合,价值为:
V = hS - C
到期时价值为:
Vu = hSu - Cu Vd = hSd – Cd 令 Vu = Vd,可以解得 h (对冲比率, hedge ratio)。
对冲比率
看跌期权的对冲比率公式和看涨期权的一样, 负号表示我们需要同时买入股票和看跌期权:
h 0 13.46 0.299 125 80
因而,我们需要买入299股股票和1000个期权。 成本为 $29,900 (299 x $100) + $5,030 (1,000 x $5.03) = $34,930
Cu
pC u 2
(1 p)Cud 1 r
Cd
pCdu
(1 p)Cd2 1 r
则现在的期权价值为
C pCu (1 p)Cd 1 r
或者:
C
p2Cu2
2p(1
p)Cud
(1
p)
C 2 d2
(1 r)2
•不同状态下的对冲比率是不一样的:
h
Байду номын сангаас
Cu Su
Cd Sd
,
hu
Cu2 Su 2
Cud Sud
二叉树的四种遍历算法
⼆叉树的四种遍历算法⼆叉树作为⼀种重要的数据结构,它的很多算法的思想在很多地⽅都⽤到了,⽐如STL算法模板,⾥⾯的优先队列、集合等等都⽤到了⼆叉树⾥⾯的思想,先从⼆叉树的遍历开始:看⼆叉树长什么样⼦:我们可以看到这颗⼆叉树⼀共有七个节点0号节点是根节点1号节点和2号节点是0号节点的⼦节点,1号节点为0号节点的左⼦节点,2号节点为0号节点的右⼦节点同时1号节点和2号节点⼜是3号节点、四号节点和五号节点、6号节点的双亲节点五号节点和6号节点没有⼦节点(⼦树),那么他们被称为‘叶⼦节点’这就是⼀些基本的概念⼆叉树的遍历⼆叉树常⽤的遍历⽅式有:前序遍历、中序遍历、后序遍历、层序遍历四种遍历⽅式,不同的遍历算法,其思想略有不同,我们来看⼀下这四种遍历⽅法主要的算法思想:1、先序遍历⼆叉树顺序:根节点 –> 左⼦树 –> 右⼦树,即先访问根节点,然后是左⼦树,最后是右⼦树。
上图中⼆叉树的前序遍历结果为:0 -> 1 -> 3 -> 4 -> 2 -> 5 -> 62、中序遍历⼆叉树顺序:左⼦树 –> 根节点 –> 右⼦树,即先访问左⼦树,然后是根节点,最后是右⼦树。
上图中⼆叉树的中序遍历结果为:3 -> 1 -> 4 -> 0 -> 5 -> 2 -> 63、后续遍历⼆叉树顺序:左⼦树 –> 右⼦树 –> 根节点,即先访问左⼦树,然后是右⼦树,最后是根节点。
上图中⼆叉树的后序遍历结果为:3 -> 4 -> 1 -> 5 -> 6 -> 2 -> 04、层序遍历⼆叉树顺序:从最顶层的节点开始,从左往右依次遍历,之后转到第⼆层,继续从左往右遍历,持续循环,直到所有节点都遍历完成上图中⼆叉树的层序遍历结果为:0 -> 1 -> 2 -> 3 -> 4 -> 5 -> 6下⾯是四种算法的伪代码:前序遍历:preOrderParse(int n) {if(tree[n] == NULL)return ; // 如果这个节点不存在,那么结束cout << tree[n].w ; // 输出当前节点内容preOrderParse(tree[n].leftChild); // 递归输出左⼦树preOrderParse(tree[n].rightChild); // 递归输出右⼦树}中序遍历inOrderParse(int n) {if(tree[n] == NULL)return ; // 如果这个节点不存在,那么结束inOrderParse(tree[n].leftChild); // 递归输出左⼦树cout << tree[n].w ; // 输出当前节点内容inOrderParse(tree[n].rightChild); // 递归输出右⼦树}pastOrderParse(int n) {if(tree[n] == NULL)return ; // 如果这个节点不存在,那么结束pastOrderParse(tree[n].leftChild); // 递归输出左⼦树pastOrderParse(tree[n].rightChild); // 递归输出右⼦树cout << tree[n].w ; // 输出当前节点内容}可以看到前三种遍历都是直接通过递归来完成,⽤递归遍历⼆叉树简答⽅便⽽且好理解,接下来层序遍历就需要动点脑筋了,我们如何将⼆叉树⼀层⼀层的遍历输出?其实在这⾥我们要借助⼀种数据结构来完成:队列。
二叉树期权定价模型
支付已知红利率资产的期权定价
可通过调整在各个结点上的证券价格,算出期权价格;
如果时刻 it 在除权日之前,则结点处证券价格仍为:
Su j d i j , j 0,1,, i
如果时刻 it 在除权日之后,则结点处证券价格相应调整为:
S (1 )u j d i j
j 0,1, ,i
若在期权有效期内有多个已知红利率,则 it 时刻结点的相应的证券价格为:
2、保持不变,仍为 S ;
3、下降到原先的 d 倍,即 Sd
Su3
Su2
Su2
Su
Su
Su
S
S
S
S
Sd
Sd
Sd
Sd2 Sd2
Sd3
一些相关参数:
u e 3t
d1 u
pm
2 3
pd
t 12 2
r
q
2 2
1 6
t
2 1
pu
12 2
r q
2
6
控制方差技术 基本原理:期权A和期权B的性质相似,我们可以得到期权B的解析定价公
的波动率,mˆ i 为 i 在风险中性世界中的期望增长率, ik为 i 和 k 之间的瞬间相关系数)
常数利率和随机利率的蒙特卡罗模拟 利率为常数时:期权价值为(初始时刻设为0):
.
f erT Eˆ fT
其中, Eˆ 表示风险中性世界中的期望。
利率为变量时:期权价值为(初始时刻设为0): f Eˆ erT fT
j 0,1, ,i
注意:由于
u 1 d
,使得许多结点是重合的,从而大大简化了树图。
得到每个结点的资产价格之后,就可以在二叉树模型中采用倒推定价 法,从树型结构图的末端T时刻开始往回倒推,为期权定价。
生成n层二叉树的方法
生成n层二叉树的方法生成n 层的二叉树可以采用不同的方法,其中一个常见的方法是使用递归。
以下用python举例class TreeNode:def __init__(self, value):self.value = valueself.left = Noneself.right = Nonedef generate_binary_tree(depth):if depth <= 0:return Noneroot = TreeNode("Root")root.left = generate_binary_tree(depth - 1)root.right = generate_binary_tree(depth - 1) return rootdef print_tree(root, level=0, prefix="Root: "): if root is not None:print(" " * (level * 4) + prefix + str(root.value))if root.left is not None or root.right is not None:print_tree(root.left, level + 1, "L--- ")print_tree(root.right, level + 1, "R--- ")# 生成一个3层的二叉树tree_root = generate_binary_tree(3)# 打印生成的二叉树print_tree(tree_root)这个示例中,我们定义了一个TreeNode类来表示二叉树的节点。
generate_binary_tree函数使用递归生成n 层的二叉树,每个节点包含一个值,并有左右子树。
print_tree函数用于漂亮地打印生成的二叉树。