6. 1 最优资本配置和杠忏
假设计划进行几个策略的交易,每个策略都有其预期收益和标准差。那么,如何在这些策略之间进行最优的资本配置呢?此外,总杠杆(投资组合规模与账户净值的比率)又应该是多少呢?我在前言中提到的Edward Thorp 博士的一篇论文中对这个问题进行了很好的说明( Thorp,1997 ),本章将主要参考他的讨论。( Edward Thorp 博士的讨论关注证券组合,而我的讨论主要着眼于策略组合,不过所用的数学方法基本上是一样的。)
所有的优化问题都先要有一个优化目标。我们的优化目标是长期财富最大化,我相信这也是所有个人投资者的优化目标。长期财富最大化与投资组合的长期复合增长率g 最大化是一回事。注意,这个目标意味着一定要避免赔光(净值为零或负数)。这是因为,如果在未来某时点赔光的概率大于零,则长期财富必然为零,长期增长率也肯定为零。
(在所有讨论中,假设所有的交易盈利均用于再投资,因此,杠杆复合增长率最为重要。)
假设策略i (这里用t 代表第i 个策略)的收益率服从正态分布,其均值矶和标准差S ; 已给定(收益扣除融资成本,也就是超额收益)。这是金融中常用的假设,尽管可能并不十分精确。因为金融市场中较大亏损发生的概率会远远高于正态分布。然而,任何科学发明和工程试验都从最简单的模型、最粗略的假设开始,金融也不例外。本章后面的内容,我将讨论如何对此进行修正。
用列向量F* = (/1 * , !2 *,…, fn * )T 表示分配到n 个策略的最优净值比例,其中T 代表转置。
给定优化目标并假设收益率服从正态分布, Thorp 博士给出了以下最优配置公式:
F* =C-1M
其中, C 表示协方差矩阵,矩阵的元素C;;表示第i 个策略和第j 个策略收益率的协方差,- 1 表示矩阵的逆, M= (叫, m2 ,…, mn) T 表示策略平均收益率的列向量。注意,这些收益率是单期、单利(非复利)、无杠杆收益率。例如,如果策略是买入1 美元的股票A ,卖出1 美元的股票B ,一期后获利o. 10 美元,无论账户中的净值是多少, m 均为0.05 。
如果假设所有策略在统计上独立,协方差矩阵就变为对角矩阵,对角线元素等于每个策略收益率的方差,公式也十分简单:
f1=m/s;2
这就是著名的凯利公式(围绕这个公式有许多有趣的故事,可参见Poundstone, 2005 )在连续金融中的应用,它给出了一个特定交易策略的最优杠杆。
本章结尾提供了凯利公式在一个策略案例中的简单推导,有兴趣的读者可以看看。
例6. 1 -道有趣的智力题{风险为什么不是好东西)
这道智力题可能会难住不少职业交易员。假设某只股票的股价服从〈几何〉随机蒋走模型,也就是说每分钟以相同的概率上升或下降1% 。如果购买了这只股票,是最有可能盈利、亏损还是持平(长期持有并忽略融资成本〉?
绝大多数交易员会脱口而出“持平!”,但实际上是错误的。正确的答案是,以每分钟o. 005% (0. 5 个基点〉的速度亏损!这是因为,对几何随机游走模型来说,平均复合收益率不再是短期〈或单期〉收益率m (此处为零),而是g=m-s2/2o 这与本章附录中给出的复合增长率g (j)公式相同,其中杠杆f 设为1 ,元风险利率设为0 。这也与几何平均佳通常小于算术平均值的事实相一致。〈除非所有数字完全相同,否则这两个均值不会相等。〉若我们假定收益率的算术均值为零,就像我所假定的那样,几何平均值〈平均复合收益率〉就必然是负的。
此处给我们的教训是,风险总是会减少长期增长率一一由此可见风险管理的重要性!
锋这个例子是我的悔客文《最大化复合收益率》的重新修正,原文见epchan. blogspot. com/2006/10/maximizing-compounded-rate-of-return. html。
通常,由于参数估计存在误差,加上收益率不一定完全服从正态分布,交易员出于对安全的考虑,所使用的杠杆只有最优杠杆的一半。这就是“半凯利”投机。
如果你是零售交易账户,最大杠杆I 只能为2 或4 ,究竟为何值取决于你是持有当日头寸还是隔夜头寸。此时,必须通过乘以相同的因子U( I /1 I + I fz I +... I fn I )来减少每个元,其中< I /1 I + I fz I+... |儿|)是投资组合不受限制下的总杠杆。这里忽略了单个策略持有的头寸会相互抵消的情况(如一个多头头寸和一个空头头寸分别与相应的国债空头头寸和国债多头头寸相互抵消),头寸抵消可以使用比公式计算结果更高的杠杆。
采取上述的资本配置和杠杆,将使净值的长期复合增长率最大。那么最大复合增长率是多少呢?应为:
g = γ十S2/2
其中, S 即为技资组合的夏普比率。第2 章提到,如果使用凯利公式给出的最优杠杆,投资组合(或策略)的夏普比率越高,净值(或财富)的最大增长率越高。下面的简单数学计算说明了这个结论。
例6.2 用凯利公式计算最优杠杆
让我们来看一个使用凯利公式的例子。假设投资组合只包含跟踪标准普尔500 指数的ETF 基金SPY 的多头头寸。设SPY 的平均年收益率为11. 23% ,年标准差为16. 91% ,无风险利卒为4% 。因此,投资组合的年平均超额收益率为7. 231% ,已知年标准差16. 91% ,可算出夏普比率为0.4257 。根据凯利公式,最优杠杆f= o. 07231/0. 16912 = 2. 528 。〈注意一个有趣的地方z 凯利公式的f 与时间长短元关,所以并不涉及是否年化收益率和标准差,这踉夏普比率与时间长短有关正好相反。〉最后,考虑了融资成本的年化复合杠杆收益率为13. 14% 。
你可以从雅虎财经下载SPY 每日价格数据来验证这些结呆,并可以在电子表格上计算不同数据。我验证2007 年12 月29 日那一天,电子表格可从epchan. com/book/ example6 _ 2. xis 下载。在H 列,计算了SPY(调整后〉收盘价的日收益卒,从H 列3 760 行开始,计算了SPY 的(年化〉平均收益率和标准差、投资组合的平均超额收益率和夏普比率、凯利杠杆以及复合增长率。
这个策略的凯利杠杆2.528 意味着,如果投资10 000 美元现金,并且相信收益率和标准差的期望价值,就可借钱买入价值252 800 美元的SPY 。此,时,这10 000 美元投资的预期年复合增长率为13. 14% 。
作为比较,我们来算一下没有杠杆时的复合增长率是多少(几本幸附录中的公式): g=r+m-s2/2=0.1123 一o. 169122 /2 = 9. 8% 。这是仅用现金购买SPY 的长期增长卒,不等于11. 23% 的年收益率。
例6. 3 用凯利公式计算最优配置
我们选取三只特定行业的ETF ,来看看在它们之间如何进行资本配置,从而获得投资组合的最大增长率。这三只ETF 是: OIH (原油服务〉、RKH (区域银行〉和RTH C 零售)。每日价格可从雅虎财经下载,在epchan. com/book 上保存的文件名为OIH. xls 、RKH. xls 和RTH. xls 。以下是检索这些文件并计算M 、C 和F *的MATLAB 程序( epchan. com/book/ example6 _ 3. m)。
%清除以前定义的变量
clear;
%文件” OIH. xls”读入MATLAB 中
[numl, txtl] = xlsread ('OIH’);
%第一列〈从第二行开始〉是交易日期,格式为mm/dd/yyyy
tday 1 = txtl ( 2 : end, 1) ;
%将日期格式转化为yyyymmdd.
tdayl=datestr (datenum (tdayl ,’mm/dd/yyyy'),’yyyymmdd’) ;
%将日期字符串先转化为单元格数组,然后转化为数位格式
tdayl = str2double (cellstr ( tdayl>;
%最后一列为调整后的收盘价格
adjclsl =nu ml 们, end);
%将文件” RKH. xis”读取到MATLAB 中
[num2, txt2] = xlsread (' RKH') ;
%第一列〈从第二行开始〉是交易日期,格式为mm/dd/yyyy
tday2=txt2 (2: end, 1);
%将日期格式转化为yyyymmdd.
tday2=.es tr ( datenum ( tday2 ,’ mm/dd/yyyy勺,’ yyyymmdd') ;
%将日期字符串先转化为单元格数组,然后转化为数位格式
tday2 = str2double ( cellstr ( tday2>;
adjcls2=num2 {:, end);
%将文件” RKH. xis”读取到MATLAB 中
[num3, txt3]=xlsread (’RTH’) ;
%第一列(从第二行开始〉是交易日期,格式为mm/dd/yyyy
tday3=txt3 (2: end, 1);
%将日期格式转化为yyyymmdd.
tday3=...
datestr (datenum ( tday3, 'mm/dd/yyyy'),’yyyymmdd') ;
%将日期字符串先转化为单元格数组,然后转化为数值格式
tday3 = str2 double (cells tr ( tday3>;
adjcls3 = num3 (: , end) ;
%合并数据
tday= union ( tday 1, tday2) ;
tday= union ( tday, tday3) ;
adj els= NaN <length ( tday), 3);
[foo idxl idx] =intersect (tdayl, tday);
adjcls (idx, 1) =adjclsl (idxl);
[foo idx2 idx] =intersect (tday2, tday);
adjcls (idx, 2) =adjcls2 (idx2);
[foo idx3 idx] =intersect ( tday3, tday) ;
adjcls (idx, 3) = adjcls3 (idx3);
ret= (adjcls 一lagl (adjcls>. /lagl (adjcls);
%收益率%找到收益率佳缺失的日期
baddata=find (any (~isfinite (ret), 2>;
%去掉收益率佳缺失的日期
ret (baddata,:) = [];
%超额收益率z 假设年元风险利率4%
excessRet=ret-repmat (0. 04/252, size (ret>;
%年平均超额收益率
M=252 铃mean ( excessRet, 1)’
%M=%o. 1396
% o. 0294
%一0.0073
C=252 铃cov (excessRet) %年协方差矩阵
%C=
%
% o. 1109 o. 0200 o. 0183
% 0. 0200 o. 0372 o. 0269
% o. 0183 o. 0269 o. 0420
F=inv (C)铸M %凯利最优杠杆
%F=
%
% 1. 2919
% 1.1723
% -1. 4882
注意, RTH 的平均超额收益率是负的,因此,凯利公式给出卖空建议也就不足为奇了。
你可能想知道使用这个最优配置所产生的夏普比率和最大复合增长率是多少。多策略高斯过程所对应的最大复合增长率为:
g (F") =r+F 骨TCF" /2
夏普比率为:
S= ./F 祷TCF"
下面是计算这两个量的MATLAB 程序:
%最大年化复合增长率
g=O. 04+F ’赞C 赞F/2
%g=
%’o. 1529

注意,投资组合的复合增长率为15. 29% ,超过任一个单股的最大复合增长牢。(经过验证你会发现,羊期收益率最高的OIH ,其复合增长率为12. 78% 。〉
按照凯利公式,随着净值变化,需要对资本配置进行不断调整,以保证其最优。假如例6.2 中,你按照凯利公式买入价值252 800 美元的投资组合。第二天在SPY 上亏损10% ,则投资组合的价值变为227 520 美元,你的净值只有74 720 美元。这时候该怎么办?凯利准则要求立刻将投资组合价值减少到188 892 美元,因为这是最优杠杆2.528 与净值74 720 美元的乘积。
应至少在每个交易日结束时做一次资本配置的调整。除了更新资本配置,还应该周期性地跟踪计算最新的均值和标准差,从而更新F 。那么回溯期应为多久?更新凯利公式中这些输入变量的频率又是怎样的呢?这取决于策略的平均持有期。如果仅持有一天左右,根据经验规则,建议回溯期为六个月。使用较短回溯期的一个好处是,可以逐步减少正在失效策略上的风险暴露。至于更新频率,如果编写了一个程序, F *每天更新一次应该不是什么难事。
最后一点,有些策略每天生成的交易信号是一个变数,从而导致每天的头寸以及总资本也是变数。在这种情况下,该怎样使用凯利公式来决定资本呢?可以用凯利公式来计算最大头寸数量以及允许的最大资本。使用低于凯利公式计算出的杠杆永远是安全的。