全部版块 我的主页
论坛 金融投资论坛 六区 金融学(理论版) 金融工程(数量金融)与金融衍生品
10464 6
2014-08-11
悬赏 20 个论坛币 已解决
    求能够体现最小二乘法蒙特卡洛模拟法的美式期权定价的matlab程序
    或者哪位大侠给通俗的解释一下最小二乘法的蒙特卡洛模拟的思想
    最好有具体的样例。谢谢了

最佳答案

xuruilong100 查看完整内容

来自于《Option Pricing and Estimation of Financial Models with R》第七章 LSM
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-8-11 15:45:36
来自于《Option Pricing and Estimation of Financial Models with R》第七章
LSM <- function(n, d, S0, K, sigma, r, T) {
  s0 <- S0/K
  dt <- T/d
  z <- rnorm(n)
  s.t <- s0 * exp((r - 1/2 * sigma^2) * T + sigma * z * (T^0.5))
  s.t[(n + 1):(2 * n)] <- s0 * exp((r - 1/2 * sigma^2) * T -
                                     sigma * z * (T^0.5))
  CC <- pmax(1 - s.t, 0)
  payoffeu <- exp(-r * T) * (CC[1:n] + CC[(n + 1):(2 * n)])/2 * K
  euprice <- mean(payoffeu)
  for (k in (d - 1):1) {
    z <- rnorm(n)
    mean <- (log(s0) + k * log(s.t[1:n]))/(k + 1)
    vol <- (k * dt/(k + 1))^0.5 * z
    s.t.1 <- exp(mean + sigma * vol)
    mean <- (log(s0) + k * log(s.t[(n + 1):(2 * n)]))/(k +1)
    s.t.1[(n + 1):(2 * n)] <- exp(mean - sigma * vol)
    CE <- pmax(1 - s.t.1, 0)
    idx <- (1:(2 * n))[CE > 0]
    discountedCC <- CC[idx] * exp(-r * dt)
    basis1 <- exp(-s.t.1[idx]/2)
    basis2 <- basis1 * (1 - s.t.1[idx])
    basis3 <- basis1 * (1 - 2 * s.t.1[idx] + (s.t.1[idx]^2)/2)
    p <- lm(discountedCC ~ basis1 + basis2 + basis3)$coefficients
    estimatedCC <- p[1] + p[2] * basis1 + p[3] * basis2 +
      p[4] * basis3
    EF <- rep(0, 2 * n)
    EF[idx] <- (CE[idx] > estimatedCC)
    CC <- (EF == 0) * CC * exp(-r * dt) + (EF == 1) * CE
    s.t <- s.t.1
  }
  payoff <- exp(-r * dt) * (CC[1:n] + CC[(n + 1):(2 * n)])/2
  usprice <- mean(payoff * K)
  error <- 1.96 * sd(payoff * K)/sqrt(n)
  earlyex <- usprice - euprice
  data.frame(usprice, error, euprice)
}

S0 <- 36
K <- 30
T <- 1
r <- 0.05
sigma <- 0.4
LSM(10000, 3, S0, K, sigma, r, T)

记得要加好评哦,亲
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-8-11 16:00:18
核心思想就是用最小二乘来evaluate期望。因为回归分析的基本假设就建立在期望值上。而最优化的continuation value也是一个期望,因为未来的state是不确定的。有了在回归基础上的continuation value,然后再有exercise value就知道要不要exercise了。这是Least Square Monte Carlo的基本思想。

以前编过matlab code,但是现在一下找不到了。Numerical Methods in Finance: A Matlab-Based Introduction这本书的第二版有对John Hull的那本书上对LSMC的解释的matlab应用。所以你可以先去看看Hull的那本书上对LSMC的介绍,然后再去找那个code。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-8-12 10:02:27
好评!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-8-12 10:12:04
soar1120 发表于 2014-8-11 16:00
核心思想就是用最小二乘来evaluate期望。因为回归分析的基本假设就建立在期望值上。而最优化的continuation ...
非常感谢。找到了hull的第七版,有很详细的介绍
原来第七版吧刚开始的版本多了好多内容,都是最新的东西。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-2-9 09:31:50
xuruilong100 发表于 2014-8-11 15:45
来自于《Option Pricing and Estimation of Financial Models with R》第七章
LSM
请问一下,这个直接放matlab里运行就可以吗?为什么运行不了啊,我是零基础,烦请详细说明啊,我运行后提示??? Undefined function or method 'LSM' for input arguments of type 'char'.,
这是什么意思啊

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群