楼主: 尘小灰
10538 6

[资产定价] 求最小二乘法蒙特卡洛美式期权定价matlab或者R源程序! [推广有奖]

  • 0关注
  • 0粉丝

已卖:592份资源

硕士生

27%

还不是VIP/贵宾

-

威望
0
论坛币
1290 个
通用积分
2.4123
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
1797 点
帖子
80
精华
0
在线时间
163 小时
注册时间
2008-10-17
最后登录
2024-10-29

楼主
尘小灰 在职认证  发表于 2014-8-11 15:45:35 |AI写论文
20论坛币
    求能够体现最小二乘法蒙特卡洛模拟法的美式期权定价的matlab程序
    或者哪位大侠给通俗的解释一下最小二乘法的蒙特卡洛模拟的思想
    最好有具体的样例。谢谢了

最佳答案

xuruilong100 查看完整内容

来自于《Option Pricing and Estimation of Financial Models with R》第七章 LSM
关键词:期权定价matlab MATLAB matla 最小二乘法 atlab 蒙特卡洛 matlab 源程序 最好

回帖推荐

xuruilong100 发表于2楼  查看完整内容

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

soar1120 发表于3楼  查看完整内容

核心思想就是用最小二乘来evaluate期望。因为回归分析的基本假设就建立在期望值上。而最优化的continuation value也是一个期望,因为未来的state是不确定的。有了在回归基础上的continuation value,然后再有exercise value就知道要不要exercise了。这是Least Square Monte Carlo的基本思想。 以前编过matlab code,但是现在一下找不到了。Numerical Methods in Finance: A Matlab-Based Introduction这本书的第二版有对John Hu ...

本帖被以下文库推荐

沙发
xuruilong100 发表于 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)

记得要加好评哦,亲
已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
Kingofquant + 5 + 5 + 5 观点有启发
见路不走 + 5 + 5 + 1 + 1 + 1 好评来了

总评分: 经验 + 5  论坛币 + 5  学术水平 + 6  热心指数 + 6  信用等级 + 6   查看全部评分

藤椅
soar1120 发表于 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。
已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
Kingofquant + 5 + 5 + 5 精彩帖子
见路不走 + 5 + 5 + 1 + 1 + 1 精彩帖子

总评分: 经验 + 5  论坛币 + 5  学术水平 + 6  热心指数 + 6  信用等级 + 6   查看全部评分

板凳
尘小灰 在职认证  发表于 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'.,
这是什么意思啊

7
Molly_feng 发表于 2016-3-5 14:27:06
xuruilong100 发表于 2014-8-11 15:45
来自于《Option Pricing and Estimation of Financial Models with R》第七章
LSM
有没有MATLAB程序

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群
GMT+8, 2025-12-30 22:19