楼主: llb_321
762 3

[实际应用] 【独家发布】用R模拟某债券价格的几何布朗运动并分析长期持有价值 [推广有奖]

  • 3关注
  • 49粉丝

教授VIP

学科带头人

10%

还不是VIP/贵宾

-

TA的文库  其他...

LATEX & R 模板和代码

威望
2
论坛币
18020 个
通用积分
1705.0386
学术水平
407 点
热心指数
416 点
信用等级
354 点
经验
1960 点
帖子
1417
精华
1
在线时间
1035 小时
注册时间
2010-6-18
最后登录
2023-8-18

初级热心勋章 初级信用勋章 中级热心勋章 中级信用勋章 初级学术勋章

楼主
llb_321 在职认证  发表于 2022-12-20 09:22:41 |只看作者 |坛友微信交流群|倒序 |AI写论文
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

一、国债价格的几何布朗运动模拟
以16 国债19(SH.019547 )为模拟对象。历史数据处理
  1. orig <- read.csv("s019547.csv", header = T)#019547价格数据
  2. price <- orig$PRICE[(dim(orig)[1] - 249):dim(orig)[1]]#只用近一年数据
  3. muRes <- mean(diff(price) / price[-length(price)])#近一年日收益率期望
  4. #[1] 1.234357e-05
  5. sigRes <- sd(diff(price) / price[-length(price)])#近一年日收益率标准差
  6. #[1] 0.002480562
复制代码


自定义风险资产GBM 函数:
参数s0 为初始价格,mu 为近一年日收益率的期望,sigma 为近一年日收益率的标准差,Tw 为模拟交易日数,Tb 为每年交易日数。

本帖隐藏的内容

  1. geombrown <- function(s0 = 100, mu = 0, sigma = 0.03, Tw = 500, Tb = 250) {
  2. S <- 1:Tw
  3. S[1] <- s0
  4. for (i in 2:Tw) {
  5. S[i] = S[i-1] * exp((mu - sigma^2 / 2) / Tb + sigma * rnorm(1) * sqrt(1/Tb))
  6. }#把前一日结果作为新的初始价格,所以将1/Tb作为公式中的dT
  7. return(S)
  8. }
复制代码




模拟该国债的交易价格变动路径,结果反映了国债的长期稳定波动特点。
  1. pathN <- 100#路径数
  2. dateN <- 1000#模拟交易日数
  3. res <- matrix(NA, dateN, pathN)#预设空矩阵
  4. plot(NULL, xlim = c(0, dateN), ylim = c(98, 102), xlab = "date", ylab = "price")#空图
  5. for (i in 1:pathN) {
  6. res[, i] <- geombrown(s0 = 100, mu = muRes, sigma = sigRes, Tw = dateN)
  7. lines(res[, i], col = i, lwd = 2)
  8. }#绘制所有路径
复制代码



pricepaths.PNG

上述结果仅仅是标的自身交易特征的反映。
实际的价格变动,还受到其他因素影响,比如该债券历史价格曾受股灾拖累低探至75 元,这种市场强力因素非前述模型力所能及。


二、国债的净现值
债券的面值仅为期间计息和到期还本的计算依据。
市价为证券市场或银行间债券市场中交易匹配价格或协议价格,反映了短期交易价格变动。
若长期持有债券,必须考虑其内在价值,主要影响因素是债券久期和通胀。
仍以16 国债19 为例,计算其净现值(NPV)。该国债为2016 年发行,30 年期,面值100 元,票息3.27% ,每半年支付一次利息,到期还本。本次计算时点,该国债尚余48 期票息。

  1. #自定义函数
  2. npvF <- function(r = 4, R = 3.27, capital = 100, term = 48) {
  3. nF <-sum(c(rep(capital* R/200, term-1), capital*(1+R/200)) / (1+r/200)^(1:term))
  4. sprintf("本金: %.2f; 票面利率: %.2f; 久期: %d; 折现率: %.2f; 净现值: %.3f", capital, R, term, r, nF)
  5. }
  6. npvF()
  7. #[1] "本金: 100.00; 票面利率: 3.27; 久期: 48; 折现率: 4.00; 净现值: 88.804"

  8. npvF(r=5)
  9. #[1] "本金: 100.00; 票面利率: 3.27; 久期: 48; 折现率: 5.00; 净现值: 75.976"
复制代码



据计算结果,若以4% 为折现率,其净现值约为89 元,若以5% 为折现率,净现值约为76 元。
这意味着,如果现在以高于89 元的价格买入作为长期资产配置标的,其真正的年收益率不到4% ,与通胀率相比,其作为长期保值配置是无意义的。
但是当短期交易者因恐慌抛售致市价下探至 75 元时,该债券的长期持有价值开始显现,这个过程解释了上文提到的价格剧烈波动情况。

三、题外话:
为什么该债券的市价基本在95~103 元之间高于净现值波动呢?
原因之一,自发行以来,该债券得交易流动性还可以,即持有人随时可以变现。由此,风险厌恶型投资者短期配置以规避市场剧烈波动风险,不用担心砸手里。也有一部分投资者单纯地用票息率与银行存款利率对比,持有以图票息。
原因之二,很多“投资者”没有专业金融背景,不懂折现率、净现值、内部收益率这些对久期非常敏感的概念。虽然如何计算钱的“时间价值”仅仅是理论上的方法,但今天的100 元,十年后肯定不值100 元。

二维码

扫码加我 拉你入群

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

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

关键词:布朗运动 债券价格 长期持有 有价值 历史数据 GBM 几何布朗运动 国债 NPV

已有 1 人评分论坛币 收起 理由
cheetahfly + 50 精彩帖子

总评分: 论坛币 + 50   查看全部评分

本帖被以下文库推荐

沙发
llb_321 在职认证  发表于 2022-12-20 09:27:35 |只看作者 |坛友微信交流群
声明:本贴为代码学习参考,请勿做为真实交易策略使用。对于任何人的任何投资行为,本贴作者均不负任何责任。
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
nieqiang110 + 5 + 5 + 5 + 5 精彩帖子

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

使用道具

藤椅
fengyg 企业认证  发表于 2022-12-20 15:23:17 |只看作者 |坛友微信交流群
kankan

使用道具

板凳
nieqiang110 学生认证  发表于 2022-12-22 08:21:15 |只看作者 |坛友微信交流群
用R模拟某债券价格的几何布朗运动并分析长期持有价值

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 02:13