量化投资_轻松实现MATLAB蒙特卡洛方法建模

1  目录

*  MATLAB随机数的产生

  - Uniform,Normal & Custom distributions

*  蒙特卡洛仿真

*  产生股票价格路径

*  期权定价

  - 经典公式

  - 和蒙特卡洛方法比较

  - 方差减小技巧

  - Exotic Options

*  多变量仿真

  - Basket Option

  - Portfolio Value at Risk

2  重点内容讲解

2.1  蒙特卡洛仿真

  - 依赖随机数生成

  - rand,randn,randi

    注:rand:产生平均分布随机数

      randn:产生正太分布随机数

      randi:产生随机整数随机数 

  -支持的随机分布

  - 随机分布拟合

2.2  在统计工具箱里面有更多的随机数生成函数

2.3 基于MATLAB常用随机数的举例

  举例:生成随机数

%% Uniform distribution
%
% Numbers uniformly distributed along [0 1]
% 产生100个随机分布的随机数在[0 1]这个闭区间内
% rand的参数为n*n的矩阵
rU = rand(1,10);
hist(rU,10);

  图示:

  

  举例:生成正太分布随机数

%% Normal distribution
%
% Numbers normally distribution with mean0,std1
% 基于均值为0,标准差为1的正态分布随机数。
% randn的参数为n*n的矩阵
rN = randn(1,1000);
hist(rN,1000);

  图示:

  举例:设计随机种子的方式生成随机数

%% Setting the behaviour of the random numbers
%
% There are many implementations of pseudo-random number generator in
% MATLAB,we will be working with
%
% mt19937ar - Mersenne Twister,which has an approximate period of
% 2^19937-1
% We can set the behaviour in a number of ways
% Seed the generator
% 以设定种子的方式设置随机数
rng(0)
[randn(1),randn(1),randn(1),randn(1)]
rng(0);
[randn(1),randn(1),randn(1),randn(1)]
% 由于设定的种子都是一样的,因此生成的两组随机数也是一样的
% ans =
%     0.5377    1.8339   -2.2588    0.8622
% ans =
%     0.5377    1.8339   -2.2588    0.8622

  

  举例:其他产生随机数的方法

%% Generating random numbers from different distributions
%
% Lets see a list of the supported distributions
docsearch Continuous Distributions
% 用random产生随机数,按照随机规则产生,具体规则在doc,查看flag内容
%% Now,lets choose a number of draws from one of these,say the exponential
% 产生指数的随机数,[]为矩阵形状,3为参数,exp为flag
rB = random(‘exp‘,3,[1 10000]);
hist(rB,100);

  图示:

2.3  对数据进行拟合fitdist

2.4  产生股票价格路径

2.5  公开函数:随机蒙特卡洛价格路径:

function mat = pricePaths(S,r,T,sigma,nSims,nSteps)
% S ==>> 起始价格
% r ==>> 无风险回报率
% T ==>> 时间宽度
% sigma ==>> 波动率
% nSims ==>> 做多少次蒙特卡洛放在
% nSteps ==>> 在T时间内取多大的步长
% Generate asset price paths using geometric brownian motion

% Determine the timestep
% 根据时间长度和步长,求出每个均匀分布点是多少长
Dt = T/(nSteps);  

% Generate the random numbers
% 初步随机数,多少蒙特卡罗仿真*多少步长的矩阵
mat = randn(nSteps,nSims);

% Generate the returns scaled using the relevant equation
% 布朗运动公式
mat = exp((r-sigma^2/2)*Dt + sigma*sqrt(Dt).*mat);

% Generate price paths
mat = cumprod(mat,1); % 按照列的方向累乘,从某一天累计的回报率

% Scale with the initial asset price
% 初始价格*实际价格=实际价格回报率后的价格
mat = [repmat(S,1,nSims); mat.*S];

end  

  应用实例

%%
S = 10; % 股票起始价格
r = 0.03; % 无风险收益率
T = 1; % 时间跨度
sigma = 0.2;  % 波动率
nSims = 10; % 多少条路径(多少次蒙特卡洛实验)
nSteps = 250*10; % 步长是多少 这里是2500个步长

paths = pricePaths(S,r,T,sigma,nSims,nSteps);
%% Plotting
figure;
plot(paths);

  图示:我们可以看到以10为起始价格,生成10条蒙特卡洛的随机股票价格路径。生成这些随机的股票价格可以进行一些模型的压力检测。不仅在样本内可以进行检测,而且在可能会产生的不可知价格路径下,模型的鲁棒性效果如何(Robust)。

  再比如我们可以把初始价格设置为3000个点也会生成如下路径:

原文地址:https://www.cnblogs.com/noah0532/p/8720716.html

时间: 2024-10-01 20:35:55

量化投资_轻松实现MATLAB蒙特卡洛方法建模的相关文章

量化投资_合成数据

1. 什么是合成数据?计算机认为制造数据,而不是从实际情况中测量.收集数据时,被称为合成数据.但是合成数据也是来源自实际情况中的测量.收集数据.数据是匿名的,并给予用户指定的参数创建,以便尽可能接近来自真实场景的数据的属性.创造和成数据的一种方法是使用现实世界中的数据,生成一个可以从真实数据中学习的模型,也可以创建一个近似于真实数据属性的数据集.衡量合成数据的标准就是合成数据与实际数据之间的差距尽可能缩小. 2.合成数据的优点大多数情况下,创建合成数据比手机真实世界的数据更高效.更经济.可以根据

量化投资_关于Multicharts砖型图(传统砖型图和非传统砖型图)最详细的解释

1. Multicharts的图表中有砖型图的解释,参考官方论坛解释:https://forum.multicharts.cn/forum/cat/1/thread/2821?k=%E7%A0%96 2. 砖型图在交易中会非常棒的提升交易绩效,因为砖型图起到了降噪和二分的作用,降噪不用多解释,因为事先设定砖型图的波动单位,不符合这个单位的小波动就被过滤掉了:所谓二分就是在砖型图的世界中只有两种状态:涨和跌,因此对于绩效的提升非常棒. 3. 但是在Multicharts砖型图不能直接用于交易,这就

私募为何大都在做量化投资,有哪些优势?

量化投资已经成为私募基金发展最快的策略.逐步从定性投资向量化投资转型,是私募基金等机构投资者的不二选择. 什么是量化投资 量化投资概念具有狭义和广义两个不同的含义. 通常意义的量化投资指狭义量化投资,是指使用数量化方法做出投资决策,实现既定投资策略的投资方式.量化投资区别于定性投资的鲜明特征是使用数学模型做出投资决策,往往但非必然由计算机程序批量发出交易指令. 从广义角度看,量化投资及其分析方法已经有100余年历史,在投资过程中的作用无处不在,日趋广泛深入. 纵观全球投资学发展史,就是各种量化投

《量化投资:以MATLAB为工具》连载(1)基础篇-N分钟学会MATLAB(上)

http://blog.sina.com.cn/s/blog_4cf8aad30102uylf.html <量化投资:以MATLAB为工具>连载(1)基础篇-N分钟学会MATLAB(上) <量化投资:以MATLAB为工具>简介 <量化投资:以MATLAB为工具>是由电子工业出版社(PHEI)下属旗舰级子公司——北京博文视点资讯有限公司出版的<量化投资与对冲基金丛书>之一,丛书主编为丁鹏博士,<量化投资:以MATLAB为工具>由李洋(faruto)

量化投资:数据挖掘技术与实践(MATLAB版)——互动出版网

这篇是计算机类的优质推荐>>>><量化投资:数据挖掘技术与实践(MATLAB版)> 编辑推荐 本书的读者对象为从事投资.数据挖掘.数据分析.数据管理工作的专业人士:金融.经济.管理.统计等专业的教师和学生:希望学习MATLAB的广大科研人员.学者和工程技术人员. 内容简介 全书内容分为三篇.第一篇(基础篇)主要介绍数据挖掘与量化投资的关系,以及数据挖掘的概念.实现过程.主要内容.主要工具等内容.第二篇(技术篇)系统介绍了数据挖掘的相关技术及这些技术在量化投资中的应用,主

量化资料学习《Python与量化投资从基础到实战》+《量化交易之路用Python做股票量化分析》+《组织与管理研究的实证方法第2版》

我们需要利用Python进行数据分析的指南,有大量的关于数据处理分析的应用,重点学习如何高效地利用Python解决投资策略问题,推荐学习<Python与量化投资从基础到实战>等电子资料. 学习<Python与量化投资从基础到实战>电子书,主要讲解如何利用Python进行量化投资,包括对数据的获取.整理.分析挖掘.信号构建.策略构建.回测.策略分析等.<Python与量化投资>利用Python进行数据分析的指南,有大量的关于数据处理分析的应用,并将重点介绍如何高效地利用P

Python金融应用编程(数据分析、定价与量化投资)

近年来,金融领域的量化分析越来越受到理论界与实务界的重视,量化分析的技术也取得了较大的进展,成为备受关注的一个热点领域.所谓金融量化,就是将金融分析理论与计算机编程技术相结合,更为有效的利用现代计算技术实现准确的金融资产定价以及交易机会的发现.量化分析目前已经涉及到金融领域的方方面面,包括基础和衍生金融资产定价.风险管理.量化投资等.随着大数据技术的发展,量化分析还逐步与大数据结合在一起,对海量金融数据实现有效和快速的运算与处理. 在量化金融的时代,选用一种合适的编程语言对于金融模型的实现是至关

如何学习量化投资

昨天有位大三学金融的同学留言询问如何学习.看哪些书,以便日后进入量化投资行业.我写了些建议,结果太长无法直接回复给他.熊大建议,干脆整成一篇推文,于是就有了这个番外篇. 如何学习量化投资,如何进入这个行业,每个人的方法和路径都会有不同,我谨以我的些许经验和理解做一些建议,希望有用. 首先,也是最重要的,量化投资也是投资,只不过是用量化思维分析投资问题,用量化工具寻找答案.所以,要学习量化投资,最主要的有两方面的学习:一是学习投资相关的“领域知识”(domain knowledge):二是学习相关

量化投资-数据挖掘技术与实践

      定义:量化投资就是利用数学.信息学.统计学等领域的技术对投资对象进行量化分析和优化,从而进行精确投资的行为 特点:    基于市场是非有效的或弱有效的基础.    纪律性:绝对相信模型.    系统性:多层次.多角度.多数据.    妥善运用套利的思想.找估值洼地.低估买,高估卖.    靠概率取胜. 核心----量化模型   多因子选股模型:打分法.回归法   SVM择时模型 以上基础知识为博客申请以前所学,每日分享一点. 以下内容为今日所学: 首先,我使用了python作为我的数