【点宽专栏】华泰金工-CAPM择时(下)_金融科技

绩效点评

该策略未进行参数优化时,已经表现较好,为了稳健性,我们将其信号再次滞后一阶,虽然业绩出现大幅下滑,但是仍然可以看出是一个向上的趋势。

以每周 5 个交易日,每月 4 个交易周为假设,我们以万得全 A 为市场指数,分别计算中信一级行业指数的 29 个行业两年左右( 96~104 周) 的贝塔。
得到贝塔后,我们对 29 个行业每周的收益率和贝塔计算Spearman 秩相关系数 。我们观察Spearman 秩相关系数的时间序列、分布后,决定采用4周滚动平滑处理Spearman 秩相关系数,降低其切换频率。

%% 收益率与beta的spearman系数
num = length(datelist);
spearman_ts = zeros(num,1);
for i=1:num
spearman_ts(i) = corr(ret_mat(i,2:end)’,beta_mat(i,:)’, ‘type’ , ‘Spearman’);
end
% figure()
% plot(spearman_ts)
% xlim([0 num])
% figure()
% hist(spearman_ts)
% xlim([p0 num])
% 4周平均
[temp,~] = movavg(spearman_ts,4,6);
spearman_ts = [spearman_ts,temp];
% bar(spearman_ts(:,2),‘r’)
% xlim([0 num])

从平滑后结果来看,spearman系数已经具备较好的持续性。此外,还可选用其他方法进行优化和平滑,这里不再展开。

spearman系数时间序列、分布、4周MA序列
【点宽专栏】华泰金工-CAPM择时(下)_金融科技_02

根据spearman系数的分布,秩相关系数选取 0.128 作为阈值,当秩相关系数大于0.128时,记作一次看多,当�̅秩相关系数小于−0.128时,记作一次看空。在连续两次观测到同向信号时,正式看多/看空指数, 发生看多/看空指令;当观测到反向信号时,清空之前观测,以最近一次观测的方向为基准。

简单回测结果

%% 数据回测
signal_ts = zeros(num,1); % 信号序列
count = 0; % 信号计数器
p = 0.128; % 阈值
for i=2:num
if signal_ts(i-1)0 % 上期无仓位
if spearman_ts(i)>=p % 当期发出看多信号
if count1 % 确认看多
signal_ts(i) = 1;
else
count = count+1;
end
elseif spearman_ts(i)<=-p % 当期发出看空信号
if count==-1 % 确认看空
signal_ts(i) = -1;
else
count = count-1;
end
end
elseif signal_ts(i-1)==-1 % 上期空头
if spearman_ts(i)>=p % 当期发出看多信号
signal_ts(i) = 0;
count = 1;
else
signal_ts(i) = -1; % 当期继续空头
end
elseif signal_ts(i-1)==1 % 上期多头
if spearman_ts(i)<=p % 当期发出看空信号
signal_ts(i) = 0;
count = -1;
else
signal_ts(i) = 1; % 当期继续多头
end
end
end

下面为业绩评价函数,为了简洁直观,仅评价了策略的:年化收益率、年化波动率、夏普比率、最大回撤、CAR比率。一般来说,机构更关注回撤和CAR比率,因为风险永远是第一位,收益是其次的,如果CAR比率够高,策略完全可以通过控制仓位来保证收益和控制风险。

业绩评价函数

function record = performance_evaluation(ret_index)
annual_ret = power(ret_index(end-1)/ret_index(1), 52/length(ret_index))-1;
annual_vol = std(tick2ret(ret_index))*sqrt(52);
sr = annual_ret/annual_vol;
maxdd = mdd(ret_index);
car = annual_ret/maxdd;
record = [annual_ret,annual_vol,sr,maxdd,car];
end
function maxdd=mdd(ret_index)
num = length(ret_index);
ret_index = [ret_index,zeros(num,1)];
for i=1:length(ret_index)
ret_index(i,2)=max(ret_index(1:i,1));
end
maxdd = max((ret_index(:,2)-ret_index(:,1))./ret_index(:,2));
end

通过简单收益率和复合收益率,可以发现,CAPM择时效果较为突出,除了部分时间出现了回撤。在计算beta时,我们已经滞后过一阶,但是为了保证稳健性我们再次滞后一阶,也进行了策略检验,其结果如下。假定本策略可以采用多空(可以考虑股指期货的多空)。

策略表现
【点宽专栏】华泰金工-CAPM择时(下)_点宽专栏_03

净值曲线-累乘法-0阶滞后
【点宽专栏】华泰金工-CAPM择时(下)_点宽专栏_04

净值曲线-累乘法-1阶滞后
【点宽专栏】华泰金工-CAPM择时(下)_点宽专栏_05

净值曲线-累加法-0阶滞后
【点宽专栏】华泰金工-CAPM择时(下)_点宽专栏_06

净值曲线-累加法-1阶滞后
【点宽专栏】华泰金工-CAPM择时(下)_金融科技_07

未来优化方向

我认为该策略有如下几种优化方式:

1.调整参数频率(这也是最差的优化方法,要“优化逻辑”,而不是参数)
2.对于Spearman的时间序列预测可以提高,加入其它时间序列方法
3.行业择时可能不如其它风格指数择时,因为行业自身的beta有其他推动力
4.对于beta估计要优化,因为beta的时变性在本文中没有处理,学界研究很多,可以借鉴
5.beta其实和市场溢价并不算线性,可参见文章AQR基金文章Betting Against Beta,所以这方面逻辑需要改善,对于高Beta的负Alpha折价,其实更好反应了市场的投机心理

总结
量化只是一种方法,其背后的金融是核心,因此每次进行研究,都需要仔细思考策略的推动力和信号体系是如何构建的。其次,量化策略相对于主观的最大优势是风险控制能力,往往风险是第一位,而收益只是第二位的。