资源简介
本文档中包含matlab代码自动从tushare上获取数据,然后绘制有效前沿和资本市场线
代码片段和文件信息
close all
clear
clc
%% 数据准备
% get data from tushare:https://tushare.pro/
addpath(genpath(pwd));
token = ‘ca928fb11765cd7c41b937459c8b611e0a97d0abf2daa1f8393c8ebc‘;
api = pro_api(token);
stockall = api.query(‘stock_basic‘);
% 获取指数数据这里的市场基础取的是hs300
start_time = ‘20170101‘;
end_time = ‘‘;
ktype = ‘D‘;
indexdata = pro_bar(‘000300.SH‘ api start_time end_timektype‘I‘);
indexdata = flipud(indexdata);
% 取10支股票
nstock = 10;
% 记录用到的10支股票
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‘);
%% 画有效前沿和cal
% load tempdata;
% 计算收益率矩阵
retmat = tick2ret(closeprice(:2:end));
p = Portfolio;
% 设置投资组合权重约束在0~1之间
p = p.setBudget(01);
% 设置无风险利率
riskless = 0.03;
p = Portfolio(p‘RiskFreeRate‘riskless‘AssetList‘stocklist.name);
% 输入收益率矩阵
p = p.estimateAssetMoments(retmat);
% 将数据年化
nyear = 250;
assetMean = p.AssetMean * nyear;
assetCovar = p.AssetCovar;
assetRisk = sqrt(diag(assetCovar)*nyear);
p = p.setAssetMoments(assetMeanassetRisk);
% 绘制无卖空情况下的图片
case1 = ‘Efficient frontier without short sale(annualized)‘;
% 设置投资组合所有成分非负且和为
p = setDefaultConstraints(p);
% Plot efficient frontier
[prsk1pret1] = plotFrontier(p);
a = gca;
ef = a.Children;
% clf;
% ax = axes;
hold on
% plot cash
scatter(gca0riskless70‘r‘‘filled‘);
text(0.01riskless‘rf‘);
title(case1)
srwgt = p.estimateMaxSharpeRatio;
[srRsksrRet] = p.estimatePortMoments(srwgt);
scatter(gcasrRsksrRet70‘g‘‘filled‘);
text(srRsk+0.01srRet‘Sharp Ratio‘);
% plot CAL
cal = plot(gca[0srRsk][risklesssrRet]‘r‘‘LineWidth‘2);
legend([efcal]‘Efficient Frotier‘‘CAL‘‘Location‘‘best‘);
saveas(gcf[case1 ‘.jpg‘]);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 300 2018-08-21 15:25 tushare_matlab_sdk\http_createHeader.m
文件 2139 2018-08-21 15:25 tushare_matlab_sdk\http_paramsToString.m
文件 5325 2018-11-01 14:12 tushare_matlab_sdk\pro_api.m
文件 7022 2018-11-01 12:46 tushare_matlab_sdk\pro_bar.m
文件 8433 2018-11-01 14:07 tushare_matlab_sdk\readme.txt
文件 1692 2018-11-01 14:12 tushare_matlab_sdk\tushare_pro_test.m
文件 13656 2018-08-21 15:25 tushare_matlab_sdk\urlread2.m
文件 49068 2019-01-04 21:49 Efficient frontier without short sale(annualized).jpg
文件 2477 2019-01-04 21:53 myplot.m
目录 0 2018-12-23 20:05 tushare_matlab_sdk
----------- --------- ---------- ----- ----
90112 10
- 上一篇:指纹识别matlab实现
- 下一篇:图形面积测量
相关资源
- 图形面积测量
- 指纹识别matlab实现
- matlab关于蒙特卡洛和算定积分的代码
- EMD经验模态分解MATLAB源代码,非常好
- LDPC编码构造的matlab实现
- 三维点云的配准和融合
- 基于MATLAB的GPS网平差
- MATLAB目标跟踪仿真小程序 (1)
- 广义预测控制matlab仿真程序
- 无线通信MIMO VBLAST的matlab仿真
- 卡尔曼推导流程记录和一个matlab例程
- matlab 边缘检测并求出面积,周长,质
- 基于matlab的人脸识别算法(PCA
- matlab车牌识别有gui
- Apriori算法 matlab
- 语音信号时域波形\\短时幅值和短时过
- MATLAB 轨迹模拟程序
- Isight集成ProE ICEM CFX MATLAB示范
- 波达方向DOA估计的Capon算法以及Music算
- 基于cv模型的kalman 滤波matlab程序,有
- Matlab 2018a Win64 Crack.rar
- matlab几种计算互信息的方法
- 文档图像倾斜校正Matlab:霍夫变换原
- 无刷直流电机MATLAB模型.rar
- 一个简单的matlab图形界面程序GUI
- matlab绘制相图
- matlab 信号处理超级学习手册的程序代
- 30个MATLAB—GUI案例源码
- MATLAB四阶龙格库塔法 求解微分方程数
- MATLAB使用欧拉Euler法求解微分方程组
评论
共有 条评论