楼主: 点宽DigQuant
815 0

[其他] 【点宽专栏】华泰金工-CAPM择时(上) [推广有奖]

  • 0关注
  • 4粉丝

本科生

25%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
1.5552
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
990 点
帖子
35
精华
0
在线时间
34 小时
注册时间
2020-12-14
最后登录
2023-3-24

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币


研报点评
该研报以CAPM为其金融逻辑对全市场进行择时,其预测逻辑为:全市场风险溢价具有持续性(动量),短期市场收益率虽然有波动,但是中期来看,一般会集聚地保持正溢价一段时间,然后切换。对此,只要估计出前期市场期望溢价是否为正,即可买入。
本文逻辑较为通顺,但是也较为简单,采用了比较“炫的”beta与收益率是否有正相关(spearman系数)来衡量,直白来看,类似过去N日市场平均收益率是否大于0,大于0即买入。但是本文的角度和平滑方法值得思考,具有启发意义。

资本资产定价模型 (Capital Asset Pricing Model, CAPM) 是基于风险资产期望收益均衡基础上的预测模型,它起源于马科维茨 (Markowitz, 1952) 提出的现代投资组合理论(Modern Portfolio Theory, MPT) 。在这一理论的基础上,夏普(W. Sharpe,1964),林特纳(J. Lintner, 1965)和莫辛(J. Mossin, 1966)等经济学家通过假设投资者均采用马科维茨模型进行投资行为从而达到市场均衡,推导出单个资产或资产组合的预期收益率公式如下:

在资本资产定价模型的收益率公式中,如果贝塔是固定的,那资本的收益率主要取决于市场的收益率,所以市场上涨高贝塔行业涨幅更大,市场下跌同样高贝塔行业会下跌更多。借助于这一点,可以尝试逆向推断市场的涨跌,当行业涨幅与其贝塔状态基本一致的时候说明市场是上涨的,相反的时候说明市场是下跌的。
读取中信一级行业和万德全A周度行情数据clear,clc
%% 读取数据
[~, ~, raw] = xlsread('C:\Users\maszr\Desktop\beta择时\行业行情数据.xlsx','周度','B3:AE654');
ret_mat = reshape([raw{:}],size(raw));
clearvars raw;
[~, ~, industry] = xlsread('C:\Users\maszr\Desktop\beta择时\行业行情数据.xlsx','周度','B1:AE2');
industry(cellfun(@(x) ~isempty(x) && isnumeric(x) && isnan(x),industry)) = {''};
[~, ~, datelist] = xlsread('C:\Users\maszr\Desktop\beta择时\行业行情数据.xlsx','周度','A3:A654');
datelist(cellfun(@(x) ~isempty(x) && isnumeric(x) && isnan(x),datelist)) = {''};
datelist = str2num(datestr(datelist,'yyyymmdd'));
save('data','datelist','industry','ret_mat')

利用导出的市场指数数据,参照原文采用行业周收益率数据进行回测,行业为中信一级行业,基准为万德全A。下面为beta计算和滚动全样本beta计算程序。
滚动计算中信各行业beta%% 滚动计算beta
clear,clc
load data
N = 100;  % 滚动计算Beta周期
beta_mat = zeros(length(datelist),length(ret_mat(1,:))-1);
for i=1:length(ret_mat)-N
   beta_mat(i+N,:) = cal_beta(ret_mat(i:i+N-1,1),ret_mat(i:i+N-1,2:end));  % 在这一步,我对beta滞后了一阶,因此后面不用滞后了
end
beta_mat = beta_mat(N+1:end,:);
datelist = datelist(N+1:end,:);
ret_mat = ret_mat(N+1:end,:);

滚动计算beta程序function beta = cal_beta(y, x)
ret_mat = [y,x];
beta = diag(cov(ret_mat))';
beta = beta(2:end)/beta(1);
end
参照原文,我们把各个行业的beta数据拿出来进行分析,下面为分析程序,生成29个行业的行业beta,横截面beta排名,该行业历史平均beta。
行业Beta、横截面Rank(Beta)、平均betafunction figplot(y1,y2,y3,datelist,name)
% 生成x轴指标
num = length(datelist);
x_tick_label_loc = 1:floor(num/5):num;
x_tick_label = num2cell(datelist(x_tick_label_loc));
for i=1:length(x_tick_label_loc)
   temp = cell2mat(x_tick_label(i));
   temp = num2str(temp);
   x_tick_label{i} = temp;
end
% 绘图1
figure1 = figure;
axes1 = axes('Parent',figure1);
plot(1:num,y1,'--','Parent',axes1);
% 绘图2
axes2 = axes('Parent',figure1,'YAxisLocation','right',...
   'ColorOrder',[0 0.5 0;1 0 0;0 0.75 0.75;0.75 0 0.75;0.75 0.75 0;0.25 0.25 0.25;0 0 1],...
   'Color','none');
hold(axes2,'all');
plot1 = plot(1:num,[ones(num,1)*y2,y3],'Parent',axes2);
set(axes1, 'XTick',x_tick_label_loc);
set(axes1, 'XTickLabel', x_tick_label);
set(axes2, 'XTick',x_tick_label_loc);
set(axes2, 'XTickLabel', x_tick_label);
xlim(axes1,[0 num]);
xlim(axes2,[0 num]);
title(name);
strcat([name,'.jpg'])
saveas(gcf,strcat([name{1},'.jpg']))
end
%% 滚动计算beta
clear,clc
load data
N = 100;  % 滚动计算Beta周期
beta_mat = zeros(length(datelist),length(ret_mat(1,:))-1);
for i=1:length(ret_mat)-N
beta_mat(i+N,:) = cal_beta(ret_mat(i:i+N-1,1),ret_mat(i:i+N-1,2:end));  % 在这一步,我对beta滞后了一阶,因此后面不用滞后了
end
beta_mat = beta_mat(N+1:end,:);
datelist = datelist(N+1:end,:);
ret_mat = ret_mat(N+1:end,:);
%% rank排序
[~,idx] = sort(beta_mat,2);
[~,idx] = sort(idx,2);

各行各业均不同程度地受到国内外宏观经济因素的影响,但所受影响的程度有异。景气程度与宏观经济环境高度相关,并随之呈现周期性循环的行业被称为周期型行业。其特点是产品需求、原材料价格等呈现周期性波动。典型行业如汽车、钢铁、煤炭等。这一类型行业的表现与市场表现联动紧密,通常具有较高的贝塔。与之相反的行业类型被称为防御型行业。这种行业的需求较周期型行业稳定,弹性相对较小,产业的景气程度受宏观经济的影响也相对较小。典型行业如食品、医疗、公用事业等。这一类型行业通常具有较低的贝塔。
尽管每个行业内不同公司的贝塔往往差异巨大, 行业的贝塔也并非一成不变,但长期、综合来看,各个行业的特征属性与其贝塔的关系是基本稳定的。

综合行业时变beta餐饮旅游、传媒、电力及公用事业、电力设备电子元器件、房地产、纺织服装、非银行金融
钢铁、国防军工、机械、基础化工
计算机、家电、建材、建筑交通运输、煤炭、农林牧渔、汽车轻工制造、商贸零售、石油石化、食品饮料通信、医药、银行、有色金属



小结总体来看,基于CAPM择时在金融逻辑上比较完善,但是实际中可能需要大量的调整和摸索,受限于篇幅,下部分研报会对具体实证结果进行复现。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:CAPM cap APM SPEARMAN系数 Markowitz

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-26 15:47