• 大小: 375KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: Matlab
  • 标签: VaR  

资源简介

本资源包含,用matlab实现历史模拟法、蒙特卡罗法、参数模型法等三种方法求解VaR

资源截图

代码片段和文件信息

close all
clear
clc
%%  数据准备
% 尝试用从tushare读取数据,如果因为版本问题读取数据失败
% 则用之前保存下来的数据进行计算
try
    % 加载tushare包
    addpath(genpath(pwd));
    token = ‘ca928fb11765cd7c41b937459c8b611e0a97d0abf2daa1f8393c8ebc‘;
    api = pro_api(token);
    stockall = api.query(‘stock_basic‘);
    % 读取数据参数设定
    start_time = ‘20180101‘;
    end_time = ‘‘;
    ktype = ‘D‘;
    % 取沪深300做为市场指数
    indexdata = pro_bar(‘000300.SH‘ api start_time end_timektype‘I‘);
    indexdata = flipud(indexdata);
    % 取3支股票
    nstock = 3;
    % 记录用到的3支股票
    stocklist = [];
    stockdata = cell(nstock1);
    nday = size(indexdata1);
    % closeprice 第一列为指数价格,其他列为股票数据
    closeprice = indexdata.close;
    temp = indexdata.trade_date;
    temp = char(temp);
    temp = str2num(temp);
    tradedate = datetime(temp‘ConvertFrom‘‘yyyymmdd‘‘format‘‘yyyy-MM-dd‘);
    
    % 获取股票数据
    m = 0;
    for i = 1:size(stockall1)
        temp = pro_bar(stockall.ts_code{i} api start_time end_timektype‘E‘‘qfq‘);
        % 有的股票有停牌,我们得选取没有停牌的股票
        if size(temp1) == nday
            m = m+1;
            stockdata{m} = flipud(temp);
            closeprice(:m+1) = stockdata{m}.close;
            stocklist = [stocklist;stockall(i:)];
        end
        if size(stocklist1) == nstock
            break;
        end
    end
    save(‘tempdata.mat‘);
catch
    load tempdata
end
% 对所选用的股票进行绘图
plot(tradedatecloseprice(:2))
hold on
plot(tradedatecloseprice(:3))
plot(tradedatecloseprice(:4))
xlabel(‘时间‘);
ylabel(‘股价‘);
legend(stocklist.name);
title(‘投资组合成分股股价变动图‘);
saveas(gcf‘投资组合成分股股价变动图.jpg‘);
%% 历史模拟法
%  假定每只股票买N股
N = 1000;
% 假定投资组合等权重求投资组合市值
value = (closeprice(:2) + closeprice(:3) + closeprice(:4)) * N;
% 投资组合收益率
ret = price2ret(value);
figure;
subplot(211);
plot(tradedatevalue);
xlabel(‘时间‘);
ylabel(‘组合市值‘);
title(‘投资组合市值‘)
subplot(212);
plot(tradedate(2:end)ret‘*‘);
xlabel(‘时间‘);
ylabel(‘收益率‘);
title(‘投资组合日收益率‘)
saveas(gcf‘投资组合市值及收益率.jpg‘);
%绘制投资组合收益率直方图
figure;
histogram(ret20);
ylabel(‘天数‘);
xlabel(‘投资组合日收益率‘);
title(‘历史模拟法投资组合日收益率直方图‘);
saveas(gcf‘历史模拟法投资组合日收益率直方图.jpg‘)
%在5%置信度时,市值亏损的最大比率
Var = -prctile(ret5) * value(end);
disp([‘历史模拟法投资组合VaR为‘num2str(Var)]);
%% 蒙特卡罗模拟
%计算日收益率均值和方差
mu = mean(ret);
vol = std(ret);
% 年化波动率
vol = vol * sqrt(250);
%资产初始值
s0 = value(1);
% 模拟时长
T = 1;
% 模拟间隔点
nStep = 250;
% 模拟路径数
nPath = 1000;
%用蒙特卡洛模拟1000次
sPath = simulatePath(s0muvolTnStepnPath);
% 绘制蒙特卡罗法模拟路径
figure;
plot(sPath);
xlabel(‘模拟时间点‘);
ylabel(‘组合市值‘);
title(‘蒙特卡罗法模拟路径‘);
saveas(gcf‘蒙特卡罗法模拟路径.jpg‘)
% 计算每条模拟路径的var
ret_mc = price2ret(sPath);
Var = -mean(prctile(ret_mc5)) * value(end);
disp([‘蒙特卡罗法投资组合VaR为‘num2str(Var)]);
%% 参数模型法
vol = std(ret);
ValueAtRisk = portvrisk(muvol);
Var = ValueAtRisk * value(end);
disp([‘参数模型法投资组合VaR为‘num2str(Var)]);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-04-17 09:18  var计算\
     文件        3254  2019-04-17 09:18  var计算\main_script.asv
     文件        3322  2019-04-17 09:18  var计算\main_script.m
     文件         408  2019-04-17 09:18  var计算\simulatePath.m
     文件      168246  2019-04-17 09:18  var计算\tempdata.mat
     目录           0  2019-04-17 09:18  var计算\tushare_matlab_sdk\
     文件       36618  2019-04-17 09:18  var计算\历史模拟法投资组合日收益率直方图.jpg
     文件       69389  2019-04-17 09:18  var计算\投资组合市值及收益率.jpg
     文件       43758  2019-04-17 09:18  var计算\投资组合成分股股价变动图.jpg
     文件      105721  2019-04-17 09:18  var计算\蒙特卡罗法模拟路径.jpg
     文件         300  2019-04-17 09:18  var计算\tushare_matlab_sdk\http_createHeader.m
     文件        2139  2019-04-17 09:18  var计算\tushare_matlab_sdk\http_paramsToString.m
     文件        5325  2019-04-17 09:18  var计算\tushare_matlab_sdk\pro_api.m
     文件        7022  2019-04-17 09:18  var计算\tushare_matlab_sdk\pro_bar.m
     文件        8433  2019-04-17 09:18  var计算\tushare_matlab_sdk\readme.txt
     文件        1692  2019-04-17 09:18  var计算\tushare_matlab_sdk\tushare_pro_test.m
     文件       13656  2019-04-17 09:18  var计算\tushare_matlab_sdk\urlread2.m

评论

共有 条评论