量化炼金术:中低频量化交易策略研发

回测

真实的回测非常重要

推进分析

看着很像机器学习的交叉验证,但是实际上不是。

这个是相当于把分析拆分成多段,类似于用1~ 60跟K线决定第61根k线上操作的一些系数,根据2~ 61根K线决定第62根K线上操作的系数。

file

例如按照市值持仓,那每一个周期,就要更新持仓股票占比。

择时策略

  1. 双均线趋势策略,短线均线>长线均线,看多,否则看空
  2. 双均线反转策略,短线>长线看空,否则看多
  3. 自回归:通过线性回归
  4. 推进分析双线趋势策略
  5. 推进分析双线反转策略
  6. 推进分析混合策略

择股策略

  1. 市值
  2. 上个月收益反转因子
  3. 推进分析市值

风险

风险度量

在研发量化策略时,由于要使用各种数量化手段来进行模型构建和策略描述,因此选定一个精确的风险度量方式是必须进行的工作。

对于收益不确定性描述最为清晰的应该是收益率的概率分布,分布情况这种风险度量方式有其优点,但是一般不作为优化函数,而仅仅出现在策略时候的风险分析中。

方差是一种更简洁但有效的风险度量,可以同时满足风险表征和事后风险描述。

另外一个指标就是最大回撤。

最大回撤的计算可以使用自回归计算,把时间如此分批:
file

求每个时间段的回撤,然后计算平均值,为该策略的年化最大回撤率

最大回撤和年华最大回撤主要是用在事后分析,方差和标准差是可以直接用在策略中的

还有

  1. 最大亏损率和年化最大亏损率:从起始点为1开始算的小于1的历史最低点
  2. 半方差和半侧标准差:只计算亏损部分的方差,就是半方差
  3. 目标半方差:将半方差中均值收益率改为目标收益率
  4. 风险价值:给定时间长度范围,设定概率P%,风险价值R使得策略收益小于-R的概率为P%。
  5. 预期损失,预期损失率:跟风险价值差不多。

风险与收益

夏普比率= \frac{R - r_f} {\sigma}

R是交易策略或投资资产的收益率,rf是无风险收益率;σ是交易策略或者投资资产的收益率标准差。这是一个常用的风险调整后收益指标。

信息比率=\frac{R-r_b}{\sigma (R-r_b)}

R是交易策略或投资资产的收益率,rb是基准收益率;σ(R-rb)是交易策略或者投资资产的收益率标减去基准收益率后,所得到的新收益序列的标准差。

索提诺比率=\frac{R-r_f}{\overline \sigma}
\overline \sigma 是半侧标准差

除法本身是一个很好的,分子端是收益正面效果,分母端是风险负面效果,符合研判直觉,另外除法保持两者的量纲是一致的,使指标具有较强的逻辑内涵和数学特性。

止损

止损是交易行为,在量化交易策略的组成部分中与买卖行为的性质等同。但是脉脉是为了盈利,止损却是为了控制风险。

止损分为两种,一种是针对单次交易,如果损失大于多少,就强制清仓。

第二种是针对策略,如果策略损失到了一定程度,则终止该策略的运行。

作者并不推荐止损的方式,而是认为止损是一个次于仓位决策的风险控制行为。

仓位决策

现在的我也意识到,仓位控制是大于择时控制的决策。

凯利公式

凯利公式是最著名的仓位决策方法。

推导太复杂,就当做看懂了吧,整体表达的就是在某个概率读博,已知胜率以及奖励和惩罚的时候,每次应该付出当时多少的本金比例能最小化风险的算法,公式如下:

f = \frac{pb-q}{b}
其中胜率是p,押错的概率是b,押中退还押金的b倍,压错就输掉押金
f是每次赌客的押注比例

凯利公式有两大核心内涵:

  1. 凯利公式试图规避风险,只要赌局对于赌客而言在概率上有利,赌客就具备将资金增值的潜在能力。凯利公式通过固定比例的押注方式,实现了不会一次性出局的目标,固定比例是该公式的一个核心设置
  2. 凯利公式追寻的目标是,经过多次赌局后,实现赌客资金量的最大化。在推导过程中,最大化往往针对的是收益的期望,这是一个更数学化也更容易处理的做法。

其他

还有一种倍赌的押注方法,简单形式就是输了加倍本金,类似于夸张的网格。

对于凯利公式一定要学会分析,并且把概率用统计算出来对应的参数,然后求导计算。

实用的仓位决策方法

仓位决策依赖买卖决策,也依赖于策略对风险的控制。

无论是实用什么仓位决策,都是在买卖决策已经建立的前提下。

凯利公式是可能损失100%本金的,我们通过使用风险度量指标,调整仓位设置,使其风险不超过某一个具体水平。

凯利公式导出的仓位决策更看重收益,风险度量指导出的仓位决策更看重风险。两者侧重不同,是一组比较互补的仓位决策方式。

一个简单的办法就是仓位f

f = \min\{f_{凯利}, f_{风险}\}

结合推进分析,可以让每个交易日进行一次买入卖出的决策,同时变更仓位。

结合前文的双均线趋势策略,整个决策流程是这样:

file

投资组合决策

上面的部分只考虑择时和仓位控制,没考虑选股。

马科维茨的最优投资组合理论是业内比较认同的量化交易策略的开端,这一经典模型又被成为均值方差理论,均值方差优化模型、现代投资组合理论等。

方差和协方差的引入是最优投资组合理论最大的突破所在,通过协方差矩阵来刻画资产间同涨同跌的程度。

马克维茨的最优投资组合理论

假设目前有N个风险资产,研究者的目标是基于这N个风险资产,决定投资于各个资产上的具体金额比例,从而最终得到最优的投资组合。

设N个风险资产的资金占比分别为w1,s2,…wN,各个资金占比均不小于0.研究的目标就是决策出最优的n维向量W,其中

W=(w_1, w_2,..., w_N)

由于是投资整体,所以满足:

\sum_{i=1}^Nw_i=1

假设构建的投资组合在某一段时间内持有,我们需要知道这段时间内N个风险资产的预期收益率,分别设为r1, r2, …, rN,同时我们也需要知道这段时间内N个风险资产之间的预期协方差矩阵,设为:

\Sigma = \left( \begin{matrix}
   \sigma_{11} & \sigma_{12} & ... & \sigma_{1N}  \\
   \sigma_{21} & \sigma_{22} & ... & \sigma_{2N}  \\
   ⋮ & ⋮ &  & ⋮  \\
   \sigma_{N1} & \sigma_{N2} & ... & \sigma_{NN}  \\
\end{matrix} \right)

其中σij是资产i和资产j之间的预期协方差,σii就是资产i的预期方差。

基于这些信息,可以计算得到这段时间内整个投资组合的预期收益与预期风险,由于可加性,投资组合的预期收益Rp实际上就是N个风险资产预期收益的线性组合,Vp是投资组合整体的方差,通过选取一个合适的“收益/风险”组合,就可以通过最优化得到最终的资产配比结果,就把配置问题变成了一个优化问题。

预期收益:
R_p=\sum_{i=1}^Nw_ir_i
预期风险:
V_p=W'\Sigma W
最优化问题,固定收益的情况下的: \min_W W'\Sigma W
约束条件:
\sum_{i=1}^Nw_ir_i=R_M, \sum_{i=1}^Nw_i=1, w_i \ge 0(i=1, 2, ..., N)
其中R_M是需要提前确定的投资组合收益水平

这是一个带有多个约束条件的二次最优化问题,提出问题就好,解答就看其他书就行。

组合投资领域还有另外一种最优化问题,在固定投资组合整体风险的基础上,最大化投资组合的整体收益,数学描述如下:

优化问题:\max_W\sum_{i=1}^Nw_ir_i
其中约束条件: W'\Sigma W=V_M, \sum_{i=1}^Nw_i=1, w_i \ge0(i=1, 2, ..., N)
V_M是需要提前确定的投资组合方差水平。

还有一种最优化问题是将风险和收益相结合的方式,把他们组合成一个最优化问题,用数学描述如下:

优化问题:\max_WW'R-\lambda W'\Sigma W
约束条件: \sum_{i=1}^Nw_i=1, w_i \le0(i=1, 2, ..., N)
其中R=(r_1, r_2, ..., r_n)',\lambda 是一个用以描述投资者风险偏好的参数,应该为正。

就把组合投资的问题变成了一个统计和一个假设,统计是能够计算出如何根据做出做优的组合,假设是资产的收益和风险水平不变,这个组合可以推向未来。

使用的组合优化方法

如果只依赖数学,可能会产生不切实际的偏差,例如:

  • 某些资产配置为0,另外一些比例会过高
  • 最优配置可能是非常大规模的空头仓位
  • 甚至可能退化成简单的单一性投资

要解决马科维茨最优投资组合理论的这些缺陷与问题,研究人员提出了很多方法

带约束的最优投资组合理论

增加约束条件,例如希望每项都持有一定份额,

Black-Litterman模型

这个模型可以人为地增加一些干预来调整数学模型,

它有一个重要条件是,假设市场上所有大资产所占的份额都是均衡的。

其过程就是假设所有资产份额均衡的,从而通过逆向马科维茨优化得到均衡情况下不同资产的收益率,这时可以认为调整各个资产的收益率,再正向计算投资占比,整体如下图:

file

评价

收益和风险两个维度

历史收益率,实操收益率,最大回撤等。

还包括交易次数这些。

书的参考文献

  1. 股票作手回忆录
  2. 统计套利
  3. 海龟交易法则
  4. 打开量化投资的黑箱
  5. 主动投资组合管理
  6. 交易策略评估与最佳化
  7. 如何建立自己的算法交易事业

思考

  1. 这本书写的挺烂的,几乎所有的例子的时间点都是停留在2015年中,同时所有策略的收益在2015年之前又都是基本未盈利的,都是在2015年开始暴涨到2015年年中结束,然后得出结论#$%#$%^#$%。可是2015年谁不知道啊,15年之前买哪只股票不会暴涨呢?年中之后不是一地鸡毛?平时不挣钱,2015年到年中能挣一大波,就能得出结论?所以这本书对于实操部分真的很烂。但是吧,这本书本身给出的两个择时策略就是矛盾的,所以它本身可能也不是想给出具体的策略方法,而是想建立框架,这个角度来说这本书又还不错。给了我挺大的启发,可能是读的第一本量化交易相关的书,关于回测的一些坑位介绍的不错,关于仓位控制也是我之前从未想过的,极大地优化了我自己的交易框架系统,并且给出的双均线策略虽然在市场上无用,但我发现无用是用钱证明的,因此对我来说,这是我第一个执行的策略。
  2. 这是第九章之前对这本书的看法,第九章之后觉得这本书真的还是非常棒的,对于风险和配置的讲解真的让我觉得很厉害,风险把资产仓位问题变成求导的数学过程,还最佳配置变成了一个最优化问题。受益良多。
  3. 别说,最后一章还真不错,把整本书的脉络讲得很清楚,一层一层的如何推进的,如何一点一点把更多的因子加入系统:
    file
  4. 双均线是一个很好地衡量当前价格趋势的指标,可以抓住大涨大跌,但是本身方向性的震荡过于强烈,如果作为主指标来计算,需要更多这个相关的指标来避免方向性反复震荡。但是避免了方向性的震荡必然就会延后上车的概率,感觉对于忽然的爬升和下砸双均线是一个非常好的指标。