量化策略
1.确定买入和卖出的资产,确定买入卖出的时间,选股和择时同样重要,选取收益资产为正的资产,并通过策略方法判断买入和卖出的时机
2.风险管理,不确定性用来衡量风险的指标波动率
a.策略风险,投资模型和策略存在的潜在风险,策略可能在执行一段时间后失效,需要关注市场的风格切换
b.技术风险,量化回测的基础平台可能存在潜在的技术风险
3.仓位控制
一个好的策略需要具备以下几点:
- 较为可观的收益。在风险程度可接受的情况下,收益率要尽可能的高。
- 可接受的风险程度。除了收益以外,量化投资策略的潜在风险也是需要评估的指标,一个策略如果风险程度较高通常是不会被接受的。
- 符合策略要求的交易次数。具体的衡量方法要根据策略的特点而定,但是一般对于一个较长的优化检验区间而言,交易次数不能过少,如果过少,将难以判定交易的成功是否是涉及运气等原因。
- 交易情况的分布平均。交易情况的分布平均主要有两个方面:一方面是交易行为要能够分布在检验区间的各个阶段,最好不是仅在某个较短的时期内进行交易,而其他时期基本不进行交易;另一方面是交易的获利也要尽可能分布在区间的各个阶段。例如,如果一个策略大部分盈利的交易都发生在市场行情非常好的时候,而在盘整时期的交易几乎全部难以获得收益,那么也就无法说明该策略是好策略。
- 正向的绩效趋势。绩效的趋势情况也是衡量量化投资策略优劣的一个标准。一个好的策略不应该只在前期有着较好的绩效,其趋势应该是显著向上的。
如何解决过拟合问题:确保模型所捕捉的趋势是数据的非随机趋势。尽可能捕获趋势数据,过滤掉随机的噪声数据。
夏普比率:每增加一单位的风险,会增加多少超额收益,夏普比率越高代表策略的绩效越好
特雷诺比率:单位系统性风险下的超额收益,特雷诺比率越高代表策略的绩效越好
索提诺比率:选取一个最小可接受的收益率
最大回撤:策略可能达到的最坏的情况
最长回撤期:策略净值恢复到亏损前水平所需要的最长时间
贝塔值:策略的系统性风险情况
多因子策略
1.风险的度量
风险的度量就是以某种方式估计实际收益率与期望收益率之间可能的偏离程度。
2.多因子模型的构建流程
a.数据准备工作
b.单因子测试
c.收益模型的构建
d.风险模型的构建
e.投资组合的优化
f.业绩归因
3.因子选择
估值因子:
- 市盈率
- 市净率
- 市销率
- 自由现金流价格比
- EV/EBITDA
- EV/S
- P/RE
4.多因子模型的选股方法 - 回归法
- 打分法
价值投资策略
三一投资策略
投资逻辑:市盈率,股价账面市值比,股利收益率。选择市盈率较低,市净率较低,派息水平较高的股票
策略逻辑:
(1)待选股票为A股市场的所有股票。
(2) 将股票按照市盈率由低到高进行排序,选取前40%的股票。
(3) 将股票按照市净率由低到高进行排序,选取前40%的股票。
(4) 将股票按照股息率由高到低进行排序,选取前40%的股票。
交易回测条件:
(1)交易手续费设定:买入时佣金为万分之三,卖出时佣金为万分之三加千分之一印花税,每笔交易佣金最低扣5元。
(2)止损条件。本书在三一投资管理公司的研究中,进行了一定的完善,加入了止损的条件,主要有两个方面:第一个是针对市场行情的止损,当代表大盘情况的上证指数跌破60日均线时,清空所有头寸;第二个是针对个股的止损,当个股价格跌幅超过15%时,清空该股票头寸止损。
(3)初始资金为100万元,并且平均配置给每只股票。
(4)回测区间:2015年1月5日—2017年12月31日。
(5)调仓周期:每个季度进行一次调仓。
(6) 持仓股票数:持仓股票最多不超过30只。
综上所述,本策略在长期收益较高,并且所考虑的选股指标也较少,容易理解、对市场有着较好的适应性,是一个简单有效的策略,同时也存在进一步完善和开发的空间。投资者可以以本策略为基础,进行完善和适当的复杂化,通过不断地完善与修正,最终形成一个可以应用于市场的策略。
马尔基尔投资漫步原则
- 毫不费力的手段:投资于指数基金
- 自己动手的手段:潜在有用的选股规则
(1)所选股票应为那些至少连续5年盈利增长高于平均水平的公司。
(2)永远不要购买那些高于其合理真实价值的股票。
(3)选取那些具有吸引力题材的股票。
(4)尽可能的少交易。 - 替补队员的手段:雇佣专业的基金经理人
1.策略逻辑
根据马尔基尔的选股原则,本文构建的量化投资策略将选取那些有着持续性盈利增长能力,并且股票价格并不过多高于其内在价值的股票进行投资,是一种长期投资策略,调仓频率较低。因此本策略主要按照以下条件选取股票。
(1)连续5年盈利增长率都处于市场平均水平之上。
(2)市盈率低于市场的平均水平。
- 交易规则及回测条件设定
(1)交易手续费设定:买入时佣金为万分之三,卖出时佣金为万分之三加千分之一印花税,每笔交易佣金最低扣5元。
(2)止损条件主要有两个方面:第一个是针对市场行情的止损,当代表大盘情况的上证指数跌破60日均线时,清空所有头寸;第二个是针对个股的止损,当个股价格跌幅超过15%时,清空该股票头寸止损。
(3)初始资金为100万元,并且平均配置给每只股票。
(4)回测区间:2010年1月5日一2017年12月31日。
(5)调仓周期:由于马尔基尔建议交易不能太频繁,本书决定设置每个季度进行一次调仓。
(6)持仓股票数:持仓股票最多不超过30只。
综上所述,在长期情况下,应用马尔基尔的选股原则构建量化投资策略存在获得较好收益的可能性,而由于马尔基所提出的部分原则较难进行量化,因此也造成了策略在一定程度上的失真。但是通过本策略的构建,可以提供一个投资的思路,具有较好的借鉴意义。
择时策略
经典择时策略
指数平滑移动平均线(MACD)
(1)当DIF与DEA均为正值亦即在中轴线上时,大势属于多头市场,DIF向上突破DEA,应作为买入信号。若DIF向下跌破DEA应只可作回档,暂时获利了结。反之,当DIF与DEA均为负值时,即在0轴以下时,大势属于空头市场,DIF向下跌破DEA,可作卖出信号。若DIF向上突破DEA只可作买入信号。
(2)背离走势适用在MACD的图形上,当MACD图形与K线图趋势线发生背离时即为反转信号
(3) MACD无法预知高价和低价。盘局时,失误率较高,但如配合RSI(相对强弱指标)及KD(随机指标)线则可以解决此缺点。
(4)运用柱形图的变化可提早做买或者做卖的决定,免得失去一段行情,但注意有时也会因贪小而失大。
低延迟趋势线择时(LLT)
阻力支撑强度择时(RSRS)
(1)获取前N目的股票最高价序列和最低价序列。
(2)将两个序列按照式(6.30)构建线性回归方程,求得斜率B。
(3)获取前M日的斜率B的时间序列。
(4)将获取的斜率B的时间序列进行标准化。
(5) 将标准化后的斜率B的值作为RSRS指标的值。
构建了RSRS指标之后,还需要设定一个阈值,当RSRS值超过阈值时则看多;当RSRS值低于阈值时则看空。在这里,阈值根据标准差的方法选取,即斜率B的均值加减一个标准差所得到的两个值即为两个阈值。因此,通过选取合适的N,M以及阈值后,则可以进行择时的判断。
通过上面的分析,可以发现RSRS择时策略的效果在各方面都优于MACD和LLT择时策略。RSRS择时策略对于大盘高点和低点的预测能力较强,胜率较高,可以经过完善应用到实践中去。
CTA策略
趋势跟踪策略
趋势跟踪策略的主要盈利手段在于跟踪市场的趋势,由于期货市场是双边市场,因此无论涨跌,只要有趋势都可以通过趋势跟踪获利。然而,当市场趋势突然发生转变或者没有明显趋势的时候,该策略将较难盈利。因而,趋势跟踪的这个特性也导致了该类型的策略有着低胜率、高盈亏比的特点。
套利策略
趋势跟踪追踪的是价格的趋势,而套利策略普遍追踪的是价格的回归,因此这里的套利策略实际上是价值回归策略。不同资产在基本面等因素相同的情况下,应该有着一种稳定的价格关系,当这种价格关系出现偏离后,价格会在一段时间回归到稳定的水平,因此可以根据这种均值回归的现象套利。
日内CTA策略
R-Breaker策略
策略结合了趋势和反转两种交易方式,主要根据前一个交易日的最高价、最低价和收盘价三种类型的数据计算出六个重要的价位,由大到小分别为:突破买入价(bbreak)、观察卖出价(ssetup)、反转卖出价 (senter)、反转买入价 (benter)、观察买入价(bsetup)、突破卖出价(sbreak)。根据这六个重要的价位,形成当前交易日的日内交易条件的触发,并且可以通过对六个重要价位的计算方式进行调整,拉长或者缩短六个重要价位之间的距离,从而实现触发条件的改变。
计算方法:
设H,L和C分别代表前一个交易日的最高价、前一个交易日的最低价和前一个交易日的收盘价,则R-Breaker策略的六个重要价位的计算方法为:
(1) 突破买入价:Bbreak=Ssetup+0.25(Ssetup-Bsetup);
(2)观察卖出价:Ssetup=H+0.35(C-L);
(3)反转卖出价: Senter =1.07/2 (H+L) - 0.07L;
(4)反转买入价:Benter=1.07/2(H+L)-0.07H;
(5)观察买入价:Bsetup=H+0.35(C-L);
(6)突破卖出价: Sbreak=Bsetup - 0.25 (Ssetup-Bsetup) .
策略触发条件:
(1)在空仓的情况下,当盘中的价格超过了突破买入价,则顺势开仓做多,即采取的是趋势策略。
(2)在空仓的情况下,当盘中的价格跌破了突破卖出价,则顺势开仓做空,即采取的是趋势策略。
(3)当交易日内的价格的最高价超过了观察卖出价后,但没有超过突破买入价,即在盘中价格出现了回落,并且进一步跌破了反转卖出价后,则在该点位反转做空,即采取的是反转策略。
(4)当交易日内的价格的最低价跌破了观察买入价后,但没有跌破突破卖出价,即在盘中价格出现了反弹,并且进一步超过了反转买入价后,则在该点位反转做多,即采取的是反转策略。
注意事项:
(1)止损条件的设定。该类型的策略均需要设定止损条件,当策略的亏损达到一定的数值后,应平仓止损。
(2)止盈条件的设定。该类型的策略还可以根据具体情况设定止盈条件。当策略的盈利达到一定程度后,平仓获利。但这里需要说明的是,许多该类型的策略加入止盈条件后就会导致策略的失效。
(3)过滤条件的设定。设定过滤条件以规避不必要的损失。对于该策略而言,当前一个交易日波动幅度过小的时候,则该交易日不进行交易。
(4)收盘平仓。在每个交易日收盘之前,需要对所持的合约进行平仓。
(5)一般采用的是以高频数据进行判断,如1分钟、5分钟或者10分钟的数据。
Dual Thrust策略
该策略是一种典型的趋势跟踪策略,该策略的一个显著的优点就是策略逻辑简单,参数较少,在参数的调整以及有效的仓位管理和止盈止损的基础上,可以在长期获得较高并且较为稳定的收益水平。
计算方法:
Dual Thrust策略的核心就在于震荡区间(range)的确定。在震荡区间的设置上,DualThrust策略引入了前N日的四个价位,分别为N日的最高价中的最高价(HH)、N日收盘价中的最低价(LC)、N日收盘价中的最高价(HC)和N日最低价中的最低价(LL)。设上轨为BuyLine,下轨为SellLine,当日的开盘价为Open,则具体的参数的计算方法为:
(1) 震荡区间: Range = Max (HH-LC, HC-LL);
(2) 上轨的确定: BuyLine =Open+K1×Range;
(3) 下轨的确定:SellLine=Open+K2xRange。
从形式上来看,Dual Thrust策略与R-Breaker策略类似,但差异主要体现在以下两个方面:第一,从浮动区间的设置上来看,Dual Thrust策略采用了前N日的四个价位,从而使得在一定时期内,浮动区间相对稳定,因此能够用于日内的趋势跟踪。第二,在对做多和做空的触发条件方面,Dual Thrust策略考虑了非对称的幅度,做多和做空所参考的区间可以选择不同的周期数,也可以通过参数K1和K2来决定。
触发条件:
(1)当价格向上穿过上轨时,如果当时无仓位,则直接进行做多;如果当时持有空头,则先进行平仓操作,然后做多。
(2)当价格向下跌破下轨时,如果当时无仓位,则直接进行做空;如果当时持有多头,则先进行平仓操作,然后做空。
参数选择问题:
Dual Thrust策略应用的一个重要的问题就在于对K和K2的选择上,当这两个参数增大的时候,上轨和下轨与开盘价的距离就会进一步地拉大,交易信号会大幅度地减少,因而设置过大将会导致难以进行交易;而当这两个参数减小的时候,上轨和下轨与开盘价的距离就会进一步地缩小,交易信号会大幅度地增加,但是设置过小也容易导致交易过于频繁,从而提高交易的成本,这样也不利于策略收益。此外,当K1>K2时,做空的交易更容易被触发;当K1<K2时,做多的交易更容易被触发。投资者可以通过历史数据来寻找最优的参数,但是这种方式要注意过拟合等问题,此外,投资者还可以根据经验判断来确定参数,并不断对参数进行调整。
ATR策略
又称平均真实波动幅度。ATR是一个能够衡量市场波动程度的指标,主要通过价格波动的幅度来表现价格的波动性,但却并不能指出价格波动的方向以及趋势的稳定性。尽管如此,通过该指标也依旧日可以发现价格的趋势性,该指标的值越大,说明趋势改变的可能性就越大;该指标的值越小,说明趋势改变的可能性就越小。根据ATR指标所构建的策略是一种非常有效的日内趋势跟踪策略。
计算方法:
在计算ATR之前,首先要计算出真实波动幅度(true range, TR),需进行如下计算。
(1)当前交易日的最高价减去当前交易日的最低价,即为当前交易日的波动幅度。
(2)当前交易日的最高价减去前一个交易日的收盘价的绝对值,即为当前交易日的最高价与昨日收盘价的差价。
(3)当前交易日的最低价减去前一个交易日的收盘价的绝对值,即为当前交易日的最低价与昨日收盘价的差价。
威尔德给出了真实波动幅度的定义,真实波动幅度等于上述三者的最大值。在得到了真实波动幅度以后,便可以通过计算N日的TR的平均值得到ATR指标的值,实际上ATR即为TR的N日的移动平均。
策略设计:
ATR指标可以作为出色的入场工具使用,虽然ATR指标并不能告诉投资者价格波动的方向,但是通过该指标投资者可以获得市场的波动水平,这样就可以根据该指标确定市场的横盘整理区间。
当价格开始突破横盘整理区间后,就说明市场开始出现一定的趋势,则可以入场进行趋势交易。因此,通过ATR指标的使用,可以构建通道突破策略。一个ATR的日内通道突破策略可以被设计为:
(1) 设定通道的上轨:BuyLine=Open+ATR (N) ×K;
(2) 设定通道的下轨:SellLine=Open -ATR (N) xK;
(3)当日内的价格突破了上轨,则做多;
(4)当日内的价格突破了下轨,则做空;
(5)由于是日内的交易策略,因此在收盘时平仓。
其中,ATR(N为过去N个周期的ATR;K为通道带宽的参数。从上述五个条件中可以明显地看出该通道突破策略的思路:根据ATR指标设定通道的上轨和下轨,并根据价格是否突破上轨和跌破下轨进行做多与做空的交易,该策略较为简单,理解起来也较为容易。
第三部分介绍的是基于日内交易所构建的ATR策略,除了该种类型的策略外,应用ATR还可以构建日间的交易策略,只需要对通道的上轨和下轨稍作调整,并且根据实际情况进行进一步的完善
此外,由于ATR能够衡量真实的波动幅度,因此也被广泛应用在策略的止盈、止损和过滤优化等过程中。例如,前文提到的Dual Thrust策略和R-Breaker策略都可以通过ATR指标来过滤掉波动较小的交易日,从而提升策略的收益水平。
菲阿里四价策略
菲阿里四价策略是一种经典的并且较为简单的趋势型日内交易策略。菲阿里四价主要指的四个价格分别为:前一个交易日的最高价、前一个交易日的最低价、前一个交易日的收盘价以及当前交易日的开盘价。该策略是由日本的期货冠军菲阿里所提出的,在CTA基金中有着非常广泛的应用。从本质上来讲,菲阿里四价是一种通道突破的策略,但是与前面介绍的几种确定通道上下轨的方式相比,菲阿里四价策略上下轨的设定更为简单。
1.菲阿里四价策略的设计
菲阿里四价策略是根据上段提到的四个价格设定了上下轨和交易策略,上下轨计算和策略交易
判断的方式为:
(1) 上轨:BuyLine=上一个交易日的最高价。
(2)下轨:SellLine=上一个交易日的最低价。
(3)当日内的价格突破上轨时,如果无持仓,则做多,如果持有空头头寸,则平仓做多。
(4)当日内的价格跌破下轨时,如果无持仓,则做空,如果持有多头头寸,则平仓做空。
(5)由于是日内的交易策略,因此在收盘时平仓。
通过以上五点就可以设计出一个简单的菲阿里四价策略,该策略核心思路仍|日是通过确定上下轨,当价格上穿或者跌破边界的时候进行做多或做空的交易。
- 菲阿里四价策略的其他注意问题
菲阿里四价策略虽然思路较为清晰,但是该策略对于上下轨的确定过于简单,仅通过前一个交易日的最高价和最低价就能确定潜在的市场趋势是很难让人信服的,因此该策略目前的有效性受到了一定程度的质疑。一般在应用该策略的时候,需要结合其他的指标和策略共同进行判断,感兴趣的读者可以动手尝试构建菲阿里四价策略,并用多种类型的期货合约进行回测,观察该策略是否有效。
空中花园策略
空中花园策略也是一种经典的趋势跟踪策略,在过去的很长一段时间,在CTA中也得到了广泛的使用。与前面介绍的策略类似,空中花园策略也是一种典型的日内突破的策略,但是与前几种策略相比,空中花园策略更加关注于开盘的突破。该策略的主要逻辑认为:当开盘出现了高开或者低开,则可以说明市场存在着重大的利好或者利空,从而导致开盘价格偏离了前一个交易日的收盘价。该策略由于看中开盘的突破,因此较为容易出现判断失误。根据该缺陷,策略设定了条件要求开盘要出现大幅度的高开或者低开,然后再根据确定的上下轨进行交易的判断。但这样就形成了一个空窗,正因如此,该策略才被称为“空中花园”。
- 空中花园策略的设计
空中花园主要仍旧通过设定上轨与下轨来确定交易的执行,具体而言,该策略的设计可以总结为以下几个方面。
(1)上轨的确定:BuyLine=第一根K线的最高价。
(2)下轨的确定:SellLine=第一根K线的最低价。
(3)当前交易日的开盘价相对于上一个交易日的收盘价的涨跌幅在1%以内则当天不进行交易。
(4)当日内的价格向上突破上轨时做多。
(5)当日内的价格向下跌破下轨时做空。
(6)由于是日内的交易策略,因此在收盘时平仓。
(3)中所表述的条件实际上就是空中花园策略与其他策略的最主要的区别。通过加入该条件,可以将策略的胜率提高,但是也因为加入了该条件,策略的交易次数与其他同类型策略相比要更低。
3. 空中花园策略的其他事项
空中花园策略实际上已经在执行过程中加入了过滤的条件,也就是空中花园策略的设计中的(3),从而使该策略仅关注于当天开盘是否出现了高开或者低开。然而,该种方式过多地关注了收盘后和开盘前的信息对市场的冲击。但是在许多时候,信息对市场的冲击并不确定,仅根据开盘的第一根K线来确定上下轨从而进行突破的策略仍旧日存在很大的问题。在这种情况下,当价格突破了上下轨也未必就代表市场形成一定的趋势,在趋势不一定形成的情况下,就容易导致亏损的出现。
虽然该策略存在上述的问题,但是并不影响其作为经典的日内交易策略的地位,许多著名的投资大师也曾使用该策略获得较好的收益。因此,投资者了解到该策略的设计方法后,应该进行不断的优化和完善,通过全面的检验和改进,最终获得一个可以真正用来投资的策略。
综上,本部分介绍了五种日内高频的CTA趋势跟踪策略。对于日内策略而言,频繁的仓位变换必然会带来大量的交易成本,因此,交易成本是策略使用者需要考虑的一个重要的问题。日内策略主要是通道突破策略,各策略的区别主要在于上下轨的确定方式不同。投资者可以参考以上交易策略,进行完善,并添加适当的过滤条件,最终设计出自己的投资策略。
海龟交易法