%% 择时 配置 选股
%{
选择wind A 为基准因为,包含了全部28个行业
拆分出超额收益,
择时是净暴露仓位,择时是判断 Pn
超额收益 Rs- Rb 择时体现在beta之中
alpha + beta 就是超额收益
A 是万德全A收益率 ,Po 是设定的仓位是基准仓位
(情况1 只有多空时)超额利润
= Ps*rs - Po*A
= Ps*rs -Ps*A+ Ps*A- Po*A
= Ps(rs-A)+(Ps-Po)*a
%(Ps-Po)*a 代表择时能力
rs = Ws*Rs - Wi*Ri
Rs代表行业收益
Wi*Ri 申万 每个行业权重,每个行业收益
Wf*rf - Wi*Ri
(Wf*rf -Wf*Ri)+( Wf*Ri- Wi*Ri)
Wf*(rf -Ri)+ (Wf - Wi)*Ri
Wf*(rf -Ri) 选股能力
(Wf - Wi)*Ri 配置能力
2.0 用沪深300 为基准 ,则权重,但是可用申万的编制规则,将300 分到申万的28个桶之中,其中 Ri 可以重新计算
3.0 以对冲为主要
Ps*rs - Ph*ri = alpha - beta
= Ps*rs - Ph*ri (-Po*ri1)
= Ph(rs- ri)+Pn*rs(-Po*ri1)
= Ph(Wf*rf - Wi*Ri)+Pn*rs(-Po*ri1)
Ph(Wf*rf - Wi*Ri) % 包含了择时和选股能力
Pn*rs(-Po*ri1)
Pn*rs - Pn*ri1 + Pn*ri1 - Po*ri1
Pn(rs - ri1) + (Pn- Po)*ri1
(Pn- Po)*ri1 体现了择时能力
Pn(rs - ri1)近似为Pn(rs - ri) 如果没有对冲,就看股票的范围。
中证 800 就是中证300 加中证500
重点 (1)万德全 A (2)中证300 (3)支持指数复权
%}
% 给定日期下从wind拉取指数的成分股及权重
dateStr=’20160826’; %日期,可随时调整
indexStr=’000300.SH’;
dateStr1=strcat(‘date=’,dateStr,’;windcode=’,indexStr); %wind全A
w=windmatlab;
index_constituent=w.wset(‘indexconstituent’,dateStr1,’showblank=0’);%4列分别为日期/代码/名称/权重
index_instrumentCode=index_constituent(:,2); %存储所有股票代码
instStr=”;
for i=1:1:length(index_instrumentCode)
if i~=length(index_instrumentCode)
str=sprintf(‘%s,’,index_instrumentCode{i});
else
str=index_instrumentCode{i};
end
instStr=strcat(instStr,str);
end
% 给定日期下从wind拉取indexStr的申万一级行业指数代码
index_SWcode=w.wsd(instStr,’indexcode_sw’,dateStr,dateStr,’industryType=1’);
index_rate=w.wsd(instStr,’pct_chg’,dateStr,dateStr,’industryType=1’)/100;
index_constituent=[index_constituent,index_SWcode,num2cell(index_rate)];
上面的信息就是拉取,将股票都捆扎成为字符串然后直接的从wind 上进行拉取,不能用FOR 语句,
其中Wi 代表wind 全A 中所包含的全部股票权重,并将权重和股票分配到28个行业之中,然后相互加。
其中Ri 代表每个行业收益这个是要在数据段进行指数拉取的,这个不是行业累计。