标签:均值 cer spro 使用 car 核心 直接 依赖 loading
在金融工程计算中,蒙特卡洛最常见的应用场景是为衍生品定价,特别是路径依赖的奇异期权。
作为金融工程计算的三大方法论之一,相较于树方法,蒙特卡洛对变量动态结构的要求更为宽松;相较于有限差分方法,蒙特卡洛无须在边界条件和网格上做精心的设计。
这套方法论一直体现出一种大道至简、无招胜有招的特点,非常适合这个算力爆发的时代。
衍生品定价中,实施蒙特卡洛通常分为下列几个步骤:
由此可见,蒙特卡洛非常贴近“模板方法模式”的使用场景,将生成路径、计算实现价格、使用对偶变量和使用控制变量分别抽象出来,由基类负责这些方法的协同,而方法的具体实现就交给派生类了。
事实上,QuantLib 中若干用于期权定价的蒙特卡洛引擎就是按照模板方法模式设计的,其中最核心的两个类分别是 McSimulation
和 MonteCarloModel
。
McSimulation
为其所有派生类定义抽象接口,即:
pathPricer
pathGenerator
controlPathPricer
controlPathGenerator
controlPricingEngine
不过,实际的计算任务被委派给了 MonteCarloModel
。
很自然地,模拟随机路径的任务落在了 StochasticProcess
及其派生类上,其中最核心的方法是 evolve
,它接受当前的状态、时间间隔和一个(组)随机数,进而推算出下一时刻的状态,递归地调用就实现了路径的模拟。
蒙特卡洛可以大力出奇迹,但是大力通常意味着多花时间。
事实上,为了达到普适性,StochasticProcess
的 evolve
方法牺牲了太多的效率。以最常用的 GeneralizedBlackScholesProcess
为例,
evolve
方法直接和间接调用的成员方法几乎都是虚方法;对于最简单的常系数 GBM,并不推荐直接用 GeneralizedBlackScholesProcess
模拟随机路径,一个变通的办法是为常系数 GBM 写一个专门的派生类(基类是 GeneralizedBlackScholesProcess
),根据 GBM 的转移密度公式覆盖掉 GeneralizedBlackScholesProcess
的接口,抄近路,直接忽略掉 GeneralizedBlackScholesProcess
低效率的默认实现。
对于复杂一些的局部波动率 GBM,也许也可以用这个办法。(Analytical approximation of the transition density in a local volatility model)
QuantLib 金融计算——原理之蒙特卡洛(Monte Carlo)
标签:均值 cer spro 使用 car 核心 直接 依赖 loading
原文地址:https://www.cnblogs.com/xuruilong100/p/14696290.html