签到
苹果/安卓/wp
苹果/安卓/wp
客户端
0.0
0.00
推广加币
数据VIP
升级SVIP
注册
|
登录
项目交易
CDA数据分析师
CDA网校
CDA社区
CDA认证考试
CDA俱乐部
CDA Live
在线教育
JG学术培训
经管云课堂
CDA网校
CDA数据分析研究院
统计软件培训
金融科技
就学培训网
经管题库
培训证书查询
成为签约讲师
经管文库
专家入驻
学术博客
就学平台
美国在职研究生
论坛BBS
服务一览
VIP服务
数据VIP
数据库
兑换商城
广告服务
案例库
软件销售
校园代理
文献下载
会员课服务
我的
帖子
收藏
好友
我的空间
关注的人
关注的贴
找人
文库
任务
道具
勋章
网站地图
搜索
搜索
用户
人大经济论坛
›
标签
›
蒙特卡洛
标签: 蒙特卡洛
经管大学堂:名校名师名课
相关帖子
版块
作者
回复/查看
最后发表
用eviews做蒙特卡洛模拟免费下载!
EViews专版
ffyyll13
2007-4-15
139
33881
caiyin
2021-10-7 10:51:28
基于matlab的蒙特卡洛模拟程序
经管代码库
fangbochao
2012-8-24
30
14808
金小豆
2020-5-31 10:24:28
VAR模型及蒙特卡洛模拟(张晓峒)
计量经济学与统计软件
walzn
2006-1-14
41
15754
tianwk
2019-7-21 15:16:28
【独家发布】免费 经济问题建模分析方法大全(精心整理20多种方法 总有一个适合你
休闲灌水
zdshitiaogou
2013-4-27
1446
61337
LAN在江湖
2019-3-12 14:42:11
《数学建模算法与应用》 教材与数据
计量经济学与统计软件
zepengzhao
2013-1-30
4
3938
黄小邪233
2018-8-14 22:15:44
美式期权定价的蒙特卡洛最小二乘法
金融类
skysea_qt
2013-2-21
6
4510
ayuzyxiu
2017-4-23 11:02:03
【R语言】初中级_4月@北京
R语言论坛
2010beryl
2013-7-15
103
11321
larryptboat
2015-2-28 14:53:49
matlab 蒙特卡洛模拟 求代码
MATLAB等数学软件专版
vienna5203
2013-6-21
2
2328
matlab-007
2015-2-6 20:31:53
分享几个关于贝叶斯的书(蒙特卡洛)
计量经济学与统计软件
chdm0826
2013-1-18
11
5261
bailihongchen
2014-12-13 09:33:22
IBM SPSS 22与AMOS 22已发布
SPSS论坛
TeAmBlAcKPearL
2013-8-16
21
13273
708922617
2013-9-25 10:56:28
【论坛R语言公开课】本周六下午@中国人民大学
R语言论坛
esther1115
2013-7-19
79
8809
jd5188001
2013-8-21 16:01:33
条件蒙特卡洛模拟
金融类
arieny
2013-6-3
1
2437
edison230
2013-6-3 22:08:39
求助关于蒙特卡洛模拟的一类错误问题
- [!reward_solved!]
SAS专版
Tigflanker
2013-2-23
5
4363
Tigflanker
2013-2-23 20:35:20
为什么重装系统后运行蒙特卡洛模拟很慢
统计软件培训班VIP答疑区
zwenjun1122
2013-2-13
3
2750
arlionn
2013-2-18 22:03:05
求救 求救 蒙特卡洛模拟
金融学(理论版)
shui0304
2009-1-6
3
5382
刘凉凉
2009-1-12 14:28:00
更多...
相关日志
分享
金融工程——蒙特卡洛模拟
accumulation
2015-5-17 09:18
第一,产生随机数e的相关参数选取问题,一般而言,股票价格S序列是不按照St=S(t-1)+e这样的方式(布朗运动)随机生成的,而是按照伊藤过程,即dS=μSdt+ΣSedt这样的规律生成的,即股价运动遵循几何布朗运动;其中,S为股价,μ为期望收益(漂移率),Σ为股价的标准差,e为服从期望为0、方差为1的正态分布的随机数,t为时间间隔;蒙特卡洛模拟时只要将微分转换为差分形式就可以了,不过,在微分向差分转换的过程中将产生误差;因此,一般而言,随机数e的相关参数——描述波动率的方差或标准差,是根据历史数据估计出来的,或者是研究问题时给定的; 第二,模拟得到数据的平均数不会收敛到100天的股票价格;因为,在布朗运动St=S(t-1)+e以及几何布朗运动dS=μSdt+ΣSedt中,由于其过程是随机游走,因此模拟出的股价运动路径只是可能的一种,而不会产生收敛的效果;在金融经济学中,根据有效市场假说中的弱式形式,股票价格的随机游走特性,历史信息已经完全反映在股价中了,未来股价只与当期股价有关,使得股票价格具有不可预测性;因此,不会产生股价的收敛效果;但是,蒙特卡洛模拟在金融资产定价当中依然发挥了巨大的作用,如:为期权定价的问题中,通过蒙特卡洛模拟,可以得出与BS公式相近的结果,并且能为BS公式不能起到作用的美式期权定价; 关于蒙特卡洛模拟更多的内容,建议参考下列三本书: 1.John Hull的著作《期权期货及其他衍生产品》: https://bbs.pinggu.org/thread-3690738-1-1.html ; 2.金融工程中的蒙特卡洛方法: https://bbs.pinggu.org/thread-3704446-1-1.html ; 3.Financial Numerical Recipes in C++: https://bbs.pinggu.org/thread-452230-1-1.html ; https://bbs.pinggu.org/thread-2669793-1-1.html ;
个人分类:
金融工程
|
0
个评论
分享
金融工程中的蒙特卡洛方法
accumulation
2015-5-10 12:24
内容简介《金融工程中的蒙特卡罗方法》(影印版)中介绍了蒙特卡罗方法在金融中的用途,并且将模拟用作呈现金融工程中模型和思想的工具。《金融工程中的蒙特卡罗方法》大致分为三个部分。第一部分介绍了蒙特卡罗方法的基本原理,衍生定价基础以及金融工程中一些最重要模型的实现。第二部分描述了如何改进模拟精确度和效率。最后的第三部分讲述了几个特别的论题:价格敏感度估计,美式期权定价以及金融投资组合中的市场风险和信贷风险评估。
个人分类:
金融工程
|
0
个评论
分享
蒙特卡洛模拟—期权定价模型
accumulation
2015-4-30 23:51
#include math.h #include vector #include iostream #include stdlib.h #include time.h using namespace std; double sampleNormal() { double u=((double) rand()/(RAND_MAX))*2-1; double v=((double) rand()/(RAND_MAX))*2-1; double r=u*u+v*v; if (r==0 || r1) return sampleNormal(); double c=sqrt(-2*log(r)/r); return u*c; } double simulate_random_variable(const double S, const double r, const double sigma, const double time) { double R=(r-0.5*pow(sigma,2))*time; double SD=sigma*sqrt(time); return S*exp(R+SD*sampleNormal()); } double max(double a,double b) { if (ab) return a; else return b; } void option_price_european_simulated(const double S, const double X, const double r, const double sigma, const double time, const int no_sims, double call_option, double put_option) { double R=(r-0.5*pow(sigma,2))*time; double SD=sigma*sqrt(time); double sum_payoffs1=0.0; double sum_payoffs2=0.0; for(int n=1; n=no_sims; n++) { double S_T=S*exp(R+SD*sampleNormal()); sum_payoffs1+=max(0.0,S_T-X); sum_payoffs2+=max(X-S_T,0.0); } call_option=exp(-r*time)*(sum_payoffs1/double(no_sims)); put_option=exp(-r*time)*(sum_payoffs2/double(no_sims)); } int main() { double seed=(double)time(NULL); double S=50; double X=50; double r=0.1; double sigma=0.4; double time=0.4167; cout"Next price: "simulate_random_variable(S,r,sigma,time)endl; int no_sims=5000000; double call_option; double put_option; option_price_european_simulated(S,X,r,sigma,time,no_sims,call_option,put_option); cout"Monte Carlo Call: "call_optionendl; cout"Monte Carlo Put: "put_optionendl; system("pause"); }
个人分类:
金融工程
|
0
个评论
分享
蒙特卡洛方法计算最值
accumulation
2015-4-30 18:33
#include iostream #include cmath #include ctime #include cstdlib using namespace std; const double b = 0.9; double u = 0; ///.....计算函数的值......//// double Ifunc(double x, double y, double z) { double hsz = 0.0; hsz = 50 - pow(5 * x - 2 * y , 2) - pow(x - 7 * y * y + 2 * z * z , 4); return hsz; } /////..........概率计算.........////// double glfunc(double w1, double w2, double T) { double p; double u = 0; double w3 = - 1.00 * abs(w1 - w2); u = exp(w3 / (b * T)); if (u 1) p = u; else p = 1; return p; } void main() { double x = 0 , y = 0 , z = 0 , x_next = 0 , y_next = 0 , z_next = 0 , hsz = 0 , hsz_next = 0 , hsz_max = 0; double x_max , y_max , z_max; cout "请输入 x y z 值 : " ; cin x y z; cout endl; double T = 20000; hsz_max = Ifunc(x,y,z); do { hsz = Ifunc(x,y,z); cout "hsz = " hsz endl;//计算初始值 srand(static_castunsigned(time(static_casttime_t *(NULL)))); //进行 y = x + z 变换 x_next = x + -x * (rand() % 10000) / 10100.00 ; y_next = y + -y * (rand() % 10000) / 10100.00 ; z_next = z + -z * (rand() % 10000) / 10100.00 ; cout "x_next = " x_next endl; cout "y_next = " y_next endl; cout "z_next = " z_next endl; hsz_next = Ifunc(x_next,y_next,z_next),u = 0.9 * u; cout "hsz_next = " hsz_next endl; //随机选取数r_rand double r_rand = 0.01 * (rand() + 500) / 33000.00; cout "r_rand = " r_rand endl; double p = glfunc(hsz,hsz_next,T); ///概率接受检验 if (r_rand = 1) { x = x_next; y = y_next; z = z_next; hsz = hsz_next; } else { x_next = x; y_next = y; z_next = z; hsz_next = hsz; } if(hsz_next hsz_max) { x_max = x_next; y_max = y_next; z_max = z_next; hsz_max = hsz_next; T = T * b; } cout endl endl; cout "最大值为 :" hsz_max endl; cout "当取得最大值时" endl; cout "x_max = " x_max endl; cout "y_max = " y_max endl; cout "z_max = " z_max endl; cout "***************************" endl; getchar(); }while(T = 0); }
个人分类:
金融工程
|
0
个评论
分享
求助:有哪位大神会用蒙特卡洛模拟法?
wqxzl5
2013-1-31 15:16
问题同题目,不胜感激啊!
5 次阅读
|
0
个评论
更多...
京ICP备16021002-2号
京B2-20170662号
京公网安备 11010802022788号
论坛法律顾问:王进律师
知识产权保护声明
免责及隐私声明
GMT+8, 2024-4-25 19:35
积分 0, 距离下一级还需 积分