time = data.date;%抽取年份
close = data.close; %抽取收盘价
pos = time.Year == 2019;%选择2019年打标签
close_2019 = close(pos);%选择2019年收盘价[ret,vol] = RetVolCaculation(data);
simup = MCSimulation(ret,vol,time,close);
resultplot(close_2019,simup);
function [ret,vol] = RetVolCaculation(data)
ret = zeros(14,1);
vol = zeros(14,1);
time_2005 = table2array(data(timerange...('2005-01-04','2005-12-30'),'close'));
time_2006 = table2array(data(timerange...('2006-01-04','2006-12-29'),'close'));
time_2007 = table2array(data(timerange...('2007-01-04','2007-12-28'),'close'));
time_2008 = table2array(data(timerange...('2008-01-04','2008-12-29'),'close'));
time_2009 = table2array(data(timerange...('2009-01-05','2009-12-11'),'close'));
time_2010 = table2array(data(timerange...('2010-01-04','2010-12-30'),'close'));
time_2011 = table2array(data(timerange...('2011-01-04','2011-12-30'),'close'));
time_2012 = table2array(data(timerange...('2012-01-04','2012-12-28'),'close'));
time_2013 = table2array(data(timerange...('2013-01-04','2013-12-30'),'close'));
time_2014 = table2array(data(timerange...('2014-01-02','2014-12-30'),'close'));
time_2015 = table2array(data(timerange...('2015-01-05','2015-12-30'),'close'));
time_2016 = table2array(data(timerange...('2016-01-05','2016-12-29'),'close'));
time_2017 = table2array(data(timerange...('2017-01-03','2017-12-29'),'close'));
time_2018 = table2array(data(timerange...('2018-01-02','2018-12-28'),'close'));ret(1) = log(table2array(data({'2005-01-04'},'close')))...- log(table2array(data({'2005-12-30'},'close')));
ret(2) = log(table2array(data({'2006-01-04'},'close')))...- log(table2array(data({'2006-12-29'},'close')));
ret(3) = log(table2array(data({'2007-01-04'},'close')))...- log(table2array(data({'2007-12-28'},'close')));
ret(4) = log(table2array(data({'2008-01-04'},'close')))...- log(table2array(data({'2008-12-29'},'close')));
ret(5) =log(table2array(data({'2009-01-05'},'close')))...- log(table2array(data({'2009-12-11'},'close')));
ret(6) = log(table2array(data({'2010-01-04'},'close')))...- log(table2array(data({'2010-12-30'},'close')));
ret(7) = log(table2array(data({'2011-01-04'},'close')))...- log(table2array(data({'2011-12-30'},'close')));
ret(8) = log(table2array(data({'2012-01-04'},'close')))...- log(table2array(data({'2012-12-28'},'close')));
ret(9) =  log(table2array(data({'2013-01-04'},'close')))...- log(table2array(data({'2013-12-30'},'close')));
ret(10) =  log(table2array(data({'2014-01-02'},'close')))...- log(table2array(data({'2014-12-30'},'close')));
ret(11) =  log(table2array(data({'2015-01-05'},'close')))...- log(table2array(data({'2015-12-30'},'close')));
ret(12) =  log(table2array(data({'2016-01-05'},'close')))...- log(table2array(data({'2016-12-29'},'close')));
ret(13) =  log(table2array(data({'2017-01-03'},'close')))...- log(table2array(data({'2017-12-29'},'close')));
ret(14) =  log(table2array(data({'2018-01-02'},'close')))...- log(table2array(data({'2018-12-28'},'close')));m = length(time_2005);
vol(1) = 0;
for i = 1:m-1vol(1) = vol(1) + (log(time_2005(i+1)) - log(time_2005(i)))^2;
end
vol(1) = sqrt(vol(1));m = length(time_2006);
vol(2) = 0;
for i = 1:m-1vol(2) = vol(2) + (log(time_2006(i+1)) - log(time_2006(i)))^2;
end
vol(2) = sqrt(vol(2));m = length(time_2007);
vol(3) = 0;
for i = 1:m-1vol(3) = vol(3) + (log(time_2007(i+1)) - log(time_2007(i)))^2;
end
vol(3) = sqrt(vol(3));m = length(time_2008);
vol(4) = 0;
for i = 1:m-1vol(4) = vol(4)+(log(time_2008(i+1)) - log(time_2008(i)))^2;
end
vol(4) = sqrt(vol(4));m = length(time_2009);
vol(5) = 0;
for i = 1:m-1vol(5) = vol(5) + (log(time_2009(i+1)) - log(time_2009(i)))^2;
end
vol(5) = sqrt(vol(5));m = length(time_2010);
vol(6) = 0;
for i = 1:m-1vol(6) = vol(6)+(log(time_2010(i+1)) - log(time_2010(i)))^2;
end
vol(6) = sqrt(vol(6));m = length(time_2011);
vol(7) = 0;
for i = 1:m-1vol(7) =vol(7)+ (log(time_2011(i+1)) - log(time_2011(i)))^2;
end
vol(7) = sqrt(vol(7));m = length(time_2012);
vol(8) = 0;
for i = 1:m-1vol(8) = vol(8) + (log(time_2012(i+1)) - log(time_2012(i)))^2;
end
vol(8) = sqrt(vol(8));m = length(time_2013);
vol(9) = 0;
for i = 1:m-1vol(9) = vol(9) +  (log(time_2013(i+1)) - log(time_2013(i)))^2;
end
vol(9) = sqrt(vol(9));m = length(time_2014);
vol(10) = 0;
for i = 1:m-1vol(10) = vol(10) + (log(time_2014(i+1)) - log(time_2014(i)))^2;
end
vol(10) = sqrt(vol(10));m = length(time_2015);
vol(11) = 0;
for i = 1:m-1vol(11) = vol(11) +(log(time_2015(i+1)) - log(time_2015(i)))^2;
end
vol(11) = sqrt(vol(11));m = length(time_2016);
vol(12) = 0;
for i = 1:m-1vol(12) = vol(12)+(log(time_2016(i+1)) - log(time_2016(i)))^2;
end
vol(12) = sqrt(vol(12));m = length(time_2017);
vol(13) = 0;
for i = 1:m-1vol(13) = vol(13) +(log(time_2017(i+1)) - log(time_2017(i)))^2;
end
vol(13) = sqrt(vol(13));m = length(time_2018);
vol(14) = 0;
for i = 1:m-1vol(14) = vol(14) + (log(time_2018(i+1)) - log(time_2018(i)))^2;
end
vol(14) = sqrt(vol(14));fprintf('2005, Yearly Return: %f, Yearly Volatility: %f \n',ret(1),vol(1));
fprintf('2006, Yearly Return: %f, Yearly Volatility: %f \n',ret(2),vol(2));
fprintf('2007, Yearly Return: %f, Yearly Volatility: %f \n',ret(3),vol(3));
fprintf('2008, Yearly Return: %f, Yearly Volatility: %f \n',ret(4),vol(4));
fprintf('2009, Yearly Return: %f, Yearly Volatility: %f \n',ret(5),vol(5));
fprintf('2010, Yearly Return: %f, Yearly Volatility: %f \n',ret(6),vol(6));
fprintf('2011, Yearly Return: %f, Yearly Volatility: %f \n',ret(7),vol(7));
fprintf('2012, Yearly Return: %f, Yearly Volatility: %f \n',ret(8),vol(8));
fprintf('2013, Yearly Return: %f, Yearly Volatility: %f \n',ret(9),vol(9));
fprintf('2014, Yearly Return: %f, Yearly Volatility: %f \n',ret(10),vol(10));
fprintf('2015, Yearly Return: %f, Yearly Volatility: %f \n',ret(11),vol(11));
fprintf('2016, Yearly Return: %f, Yearly Volatility: %f \n',ret(12),vol(12));
fprintf('2017, Yearly Return: %f, Yearly Volatility: %f \n',ret(13),vol(13));
fprintf('2018, Yearly Return: %f, Yearly Volatility: %f \n',ret(14),vol(14));
function [simup] = MCSimulation(ret,vol,time,close)mu = ret(10);
theta = vol(10);
pos = time.Year == 2019;
n = length(pos(pos == 1));
close_2019 = close(pos);simup = zeros(length(close_2019),5);
simup(1,:) = close_2019(1);for iter = 1:5day = 1;for i = 0:0.5/118:1day = day+1;eps = normrnd(0,1);simup(day,iter) = exp(log(simup((day-1),iter))+(mu - theta^2/2)*(0.5/118)...+ theta * eps * sqrt(0.5/118));end
end
function resultplot(close_2019,simup)m = length(close_2019);
plot(close_2019,'black');
hold on
plot(simup(1:m,:));

几何布朗运动模拟 MATLAB实现相关推荐

  1. 利用几何布朗运动对招商银行2021年进行股价预测

    1.布朗运动 2.广义维纳过程 3.几何布朗运动 4.用几何布朗运动模拟招商银行股价 (1)导入相关包并设置中文字体 import numpy as np import pandas as pd im ...

  2. Matlab:利用Matlab实现布朗运动模拟

    Matlab:利用Matlab实现布朗运动模拟 目录 输出结果 实现代码 输出结果 实现代码 n=40 s=0.04 x=rand(n,1)-0.5; y=rand(n,1)-0.5; h=plot( ...

  3. 模拟模型学习 几何布朗运动_Java的几何布朗运动

    模拟模型学习 几何布朗运动 维纳过程是一个连续时间的随机过程,以纪念诺伯特·维纳. 通常用于用随机成分表示噪音或财务状况. 可以计算几何布朗运动以可视化某些界限(以分位数表示)以暗示绝对范围. 为了进 ...

  4. R语言几何布朗运动 GBM模拟股票价格优化建立期权定价概率加权收益曲线可视化

    最近我们被客户要求撰写关于几何布朗运动的研究报告,包括一些图形和统计输出. 对于模拟股票价格,几何布朗运动 (GBM) 是 事实上的首选 模型. 它有一些很好的属性,通常与股票价格一致,例如对数正态分 ...

  5. gramer法则matlab,东南大学几何与代数matlab实验报告(大一专用).doc

    东南大学几何与代数matlab实验报告(大一专用).doc 数学实验报告学号:,姓名:吴雪松,得分:实验1求解线性方程组实验内容:用MATLAB求解如下线性方程组Ax=b,其中A=,b=[090093 ...

  6. Java的几何布朗运动

    Wiener过程是连续时间随机过程,以纪念Norbert Wiener命名. 通常用于用随机成分表示噪音或财务状况. 可以计算几何布朗运动以可视化某些界限(以分位数表示)以暗示绝对范围. 为了进行计算 ...

  7. 【数字图像处理】模拟Matlab的imresize()写一个你自己的imresize()函数,至少应实现‘nearest’和‘bilinear’两种方法

    作业要求:模拟Matlab的imresize()写一个你自己的imresize()函数,至少应实现'nearest'和'bilinear'两种方法. 首先理论方面主要参考了一下两个网址 https:/ ...

  8. matlab模型设计同步电机转速调节实现风力机特性模拟matlab模型

    matlab模型设计同步电机转速调节实现风力机特性模拟matlab模型. matlab2021a版 ID:7970662902139076嘿你好蓝

  9. V2G汽车的蒙特卡洛模拟matlab代码,可以从电网充电也可以向电网放电

    V2G汽车的蒙特卡洛模拟matlab代码,可以从电网充电也可以向电网放电. 充电开始时刻.放电时刻.日行驶里程等参数可以自己设置,易于修改. _:3120644246447334浪迹天涯

  10. V2G汽车的蒙特卡洛模拟matlab代码,可以从电网充电也可以向电网放电。 充电开始时刻、放电时刻、日行驶里程等参数可以自己设置,易于修改。

    V2G汽车的蒙特卡洛模拟matlab代码,可以从电网充电也可以向电网放电. 充电开始时刻.放电时刻.日行驶里程等参数可以自己设置,易于修改. :4720644246447334浪迹天涯

最新文章

  1. 《自己动手做交互系统》——导读
  2. 【热点报道】2013eoe移动开发者大会圆满落幕
  3. WCF,简单而又复杂的东西
  4. “美登杯”上海市高校大学生程序设计赛B. 小花梨的三角形(模拟,实现)
  5. seekbar垂直放置_将刻度线对准Android SeekBar
  6. 让input标签的range属性显示数值
  7. 高等微積分(高木貞治) 1.4節 例2
  8. 福建省队集训被虐记——DAY3
  9. 1.java数组教程及示例知乎
  10. custompage.width 不能小数吗_为什么有军人戴眼镜?他们的裸眼视力合格吗?
  11. 单点登录原理以及简单实现
  12. 恶意程序行为特征总汇
  13. 【读心术】之微表情——《Lie to me 》摘自百度百科
  14. AtCoder Beginner Contest 175 A Rainy Season 字符串+5种情况
  15. matlab 类型强制转换,关于数据类型强制转换的分析和应用
  16. 大学概率论终极复习攻略
  17. 数据链路层协议 ——— 以太网协议
  18. 32位二进制里有多少个1
  19. Xmanager或者Xshell用户连接信息迁移
  20. MySQL - 调优(一)

热门文章

  1. 【计算机架构】什么是云原生?云原生如何解释?What is cloud native?通俗解释云原生
  2. Blue Coat 拓展安全行业最大的加密流量管理协作组织
  3. 人工智能文本生成器将如何影响写作行业
  4. Linux - send 出现 Resource temporarily unavailable
  5. Base64编码详解与URL安全的Base64编码
  6. 台式win10系统你要来自Trustedinstaller的权限才能对此文件进行更改?
  7. python语言编程中的感叹号_python 感叹号
  8. 5G学习笔记之RRC_IDLE/RRC_INACTIVE态UE功能概述
  9. Duck Duck Go Architecture
  10. 最详细、最全面的【Java日志框架】介绍,建议收藏,包含JUL、log4j、logback、log4j2等所有主流框架