海龟策略模型
海龟策略
今天要给大家介绍的,是量化投资中的经典模型——海龟策略。
严格来说,它并不能称得上是一个完整的策略。海龟策略并没有提供一个明确落地的选股方案,相关书籍的介绍中也只是通过“高流动性”寥寥几字一笔带过,留给投资者们仁者见仁、智者见智的发挥空间。但即使如此,丝毫不妨碍它成为经典,海龟策略的真正优势在于:对目标股票的择时把握和仓位控制,都有其独到之处。下面我们就来好好说说吧。
海龟我们都见过,那么什么是海龟模型?难道只是个噱头?
其实关于“海龟”名称的由来,说法不一。比较普遍认可的,是策略特性如现实中的“海龟”一样,稳步前行,看似很缓却能聚沙成塔,对于追求低风险收益的投资者来说,不失为一个值得配置的投资模型。
“唐安其”通道
想要了解海龟策略,我们先要科普一个概念“唐安其通道”。大概讲了这个么事儿,话说一个叫Richard Donchian的华尔街交易员,在阅股无数之后,突然灵光乍现,想到了一个择时的策略,他构建了一个所谓的“价格通道”,当股价高于这个通道上沿时,判断为“买入”,而当股价低于这个通道下沿时,判断为“卖出”
当然这个通道的上下沿需要相对稳定,不能和股价每天的涨跌那样振幅过大,因此采用一段时间内的最高/低收盘价作为通道上/下限,我们用大写的N表示。也即:唐安其通道上/下沿的每一点,代表了过去N个交易日收盘价的最高/低价,如下图所示:
图中红点是“向上突破位”,代表了做多买入的信号。同理,绿点是“向下突破位”,代表了做空卖出的信号。当然,我国A股市场由于是单向市场,因此主要的关注点还是在“向上突破位”。
海龟策略的择时把握
介绍完唐安其通道,以下就是海龟策略的择时主要逻辑了(文末会做进一步展开):
1、当前价格高于过去20个交易日收盘价中的最高价,开仓买入
2、当前价格高于过去10个交易日收盘价中的最低价,清仓卖出
有了择时逻辑,我们便能依赖策略为我们决定,何时进行买卖交易,那么新的问题来了,一旦系统捕捉到择时信号,我们到底应该买入或者卖出多少股票才算合适?
这也就是我们马上要谈到的海龟策略的另一个特性 —— “仓位控制”。
海龟策略的仓位控制
我们先来讨论单一股票的例子,这种情况下,我们的目的是求得需要买入多少手股票?海龟策略的原则是,买入的股票,当天振幅波动所引起的总资产变动不超过1%!
结合上面的公式,这里的总资产就是用户账户的本金,那么剩下的问题就是求得“1手股票价值波动”,就能反算可购买多少手股票(为了方便描述,我们称其为1个Unit)。
而 1手股票波动 = 1手股票最小单位变动 * 每股股票波动
我们知道,A股市场股票的最小单位变动是0.01元,那么股票每波动0.01元,1手股票的最小单位价格变动:100 * 0.01 = 1元。因此,只需再求出每股股票波动幅度,仓位参数便能迎刃而解。那么股票波动如何求得呢?
TR 与 ATR
为此,我们这里要引入一个概念——“振幅区间”,记作TR(True Range),它反应的是股票当天的波动幅度。我们分别用“H”表示当日最高价,“L”表示当日最低价,“P”表示上个交易日的收盘价,则振幅区间的计算公式为:TR = Max( H-L,H-P,P-L )
然而仅仅一天的波动幅度并不能代表股票真实的波动水平,一般意义上,我们更倾向于获取一段时期内的平均波动幅度。为此我们采用了“平均振幅区间”,记作ATR(Average True Range),公式为:ATR = (TR1+TR2+……+TRn) / n
这里的TRn表示第n个交易日的振幅区间,ATR即取n个交易日的平均振幅(注意:这里的“n”与前文介绍唐安其时的“N”是两个独立的参数)。
至此,我们便可使用ATR来衡量股票的波动幅度。进而得出待买入、卖出股票的数量。
在大家已经了解了策略择时逻辑与ATR仓位管理的计算方式后,下面我们就给出完整的包含加仓逻辑的海龟策略:
1、当前价>过去20个交易日收盘价中的最高价,买入1个Unit;
2、当前价<过去10个交易日收盘价中的最低价,清仓股票;
3、当股价>上一次买入价 + 0.5个ATR,则加仓1个Unit。
4、当前价<上一次买入价 - 2个ATR,则清仓股票(也就是,在一般情况下,损失不会超过2%)。
接下来,我们选择几只上半年具有代表性的股票来进行实例测试。
实测分析
1、招商银行
17-1-1 至 17-7-11,初始资金5万。
模拟情况:招商银行进两个月涨势明显,走出一波上涨行情,与上证50股指有较高的相似度,模拟的目的是测试上涨行情中的收益情况。
拿1月20日举例,此时当前价位18.62高于唐安其通道上沿18.59(过去20日的最大收盘价),系统捕捉到择时入市信号,进行买入。类似的,在3-13、5-12再次捕捉到了择时退/入市时机,效果达到预期。
2、英力特
17-1-1 至 17-1-15,初始资金5万。
模拟情况:英力特全面要约失败,股价历经4个跌停,遭遇“腰斩”,导致上半年大幅跳水。模拟的目的是测试极端暴跌情况中的收益情况。
可以看到,系统并未捕捉到入市时机直至6月份,躲过了阶段性暴跌的行情,规避那些因主观择时入市而可能带来的损失。而加仓的时机又精准捕捉到了上涨的趋势。
3、游久游戏
17-1-1 至 17-1-15,初始资金5万。
模拟情况:游久游戏上半年高管人事变动,股价震荡下挫,而随着与360等全面合作,经历了短期暴涨,但后期乏力不具持续性,再度下跌。模拟的目的是测试大幅震荡行情下的收益稳定性。
这里,我们看到了止损逻辑的应用。圈中右侧框出的部分,蓝线表示策略的亏损情况,红线箭头表示了股价实际的收益波动。可以看到,系统对于退出时机的把握,使得亏损远小于股价亏损走势,有效地控制了风险。
回顾与后话
海龟策略中,那些“交易天数”、加仓/止损的“单位ATR”参数,可以根据投资者个人的偏好进行自定义设置的。本质上来说,海龟策略属于“趋势跟踪”交易系统,是典型的右侧交易,逻辑上来看它更倾向于“追涨杀跌”的被动型交易。
得益于海龟策略出色的择时与仓位管理,一些投资者往往会与其他策略组合使用。对于多股票的投资组合,在应用海龟策略时,需要添加权重参数,用于设置股票持仓配比。同时,ATR的计算也需要进行相应调整,不过我觉得这些改动对于大家伙而言并不算什么难事,就留给各位权当是回家作业啦~更多内容,欢迎关注微信公众号“数据夕拾”。