SF29丨魔改自适应均线+多空不对称组合

 致力于分享量化策略,培训视频,Python,算法研究等相关内容。

大家伙,我是LE CHIFFRE

今天给大家整点“阴间的”(好像这个梗过时了~),wharever~~…,作为传道受业解惑(自我提高逼格一下[doge]),自然要给大家呈现一些不一样的观点和视角。从历史长河中,我们可以看到每一个朝代与时代的更迭、包括工商农业以及任何一个创新发展的事物,都没有所谓的什么一定、肯定、必须等循规蹈矩可循,当然了唯独不变的循规蹈矩可能就是昏君导致朝代灭亡。

说回现实,做程序化这个行业,一个大社会中的小小分支行业,往往在下班地铁中,公园遛弯中,排队取快递时每每想到,为什么我们做的策略必须都要这样?为什么不能那样?真的很容易踩到过拟合,很难避开过拟合吗?真的要测试10年以上的数据吗?真的要一个策略或者所有策略都用一个参数吗?策略魔改真的就是过拟合吗?用指数回测真的就是玩具吗?中频CTA商品回测滑点来回1跳,手续费万1.5真的不严谨吗?策略有参数或者2个参数以上就是shit吗?……

很可惜的是,问题很多很多,我没有办法把所有人的疑问打在文章中,有的问题本身就没有答案,我也不觉得我有能力解释给这个行业中不同层次的人让大家得以信服。但是,在我看来投资行业本来就是一个多元变量的行业,不存在什么必须,反正在笔者看来,世间万物本身就没有什么所谓的不变,就连太阳公转的时间都不是恒定的,做投资搞策略难道真有必须、一定和只能?

一、策略必须要对称设计吗?

所谓的策略对称设计就是:多空的进出场是一模一样的逻辑,只不过方向相反。这种思路或者思想我想应该不光现在是而且长期是80%+的人所想的,所期望的,所长期认为的。因为我曾经也是这么想的,跟我一起学习和成长的同事、圈内人大部分也都是这么告诉我的,曾几何时觉得路子就应该这么走,别的都是奇淫巧技,拿不上台面。但直到有一次我想做一次绩效归因,看看回测这历史绩效是多头贡献的多,还是空头贡献的多?于是将多空分拆开放到两个工作区中查看,发现近3-4年中多的利润远远大于空的利润,有的人会说,这不是废话吗,这几年基本都是上涨的,多肯定大于空绩效啊,关键点不在这里OK。CTA量化策略的核心本质:一是风控、二是风控、三还是TMD的风控。近5年也好,3年也罢,你的多是45度或30度往上,空是30度或者45度往下,风控呢?很明显,往大了说是策略逻辑有问题,小了说是参数有问题或者时间周期有问题。有一个甚是底层的灵魂问题需要各位去思考一下,难道组合真的是ABC…Z策略加上资金管理那叫组合?A策略自身多空难道就没有组合?

基于以上的阐述,我想大家也知道我要表达什么了,何不尝试多空拆开的方式去将策略本身组合一次呢?

二、策略多空必须要放在一起吗?

我个人给的建议是:并不一定必须放在一起。在TBQ里面可以分别放置在不同的工作区,在VNPY里面可以并行不同的进程计算,都是可以分开。如下图所示:

扫描二维码关注公众号,回复: 13760802 查看本文章

多与空本不是一家,放在一起可以,分开也可行。当然除非你的策略是属于非多即空的那种。具体逻辑和想法上面已经阐述,这里不再赘述。

接下来我们开始正式介绍本期魔改自适应均线策略,按照往常惯例本期策略依然是V1版本,虽然是V1版本,但依然具有很强的实战意义。后面我会根据实际情况,不定期为VIP学员提供后续迭代版本。

自适应均线这里我就不做过多介绍了,各种魔改版本的都有,大家自行百度。不过这里我依然用的是大家耳熟能详的考夫曼的自适应均线,因为改均线算法我还没有拿捏好。如下图所示:

自适应均线的特点就是:啪~很快啊,一个拐头向上,紧接着一个拐头向下。而这也是我最初选择写好的“轮子”去魔改的原因,一是站在巨人肩膀上魔改算法可能稍作修改就可以用,二自从慕总开发完SF21以后,鄙人就沉迷短线策略不能自拔。

下面是魔改的效果:      

红色和绿色的线是魔改过的,白色的线是基础线。更改的逻辑其实也很简单,我们践行了SF26枢轴点的些许逻辑,没有采用百分比也没有采用某某计算出来的什么幅度,还是采用ATR自适应波动率。代码如下图所示:      

我们根据自适应均线计算出ATR上下轨后,通过判断自适应均线与Tup值的判断,而Tup值来源up上轨。      

但我们判断trend=1时,ATR轨道下轨即为红色的看多趋势线。同理,反之亦然。

出场方面,我们依然采用SF20策略中,普适性比较强的VWAP成交量加权均线出场的方式,如下图所示:

最后让我们先看一下绩效组合,如下图所示:      

2021年绩效

2020-2021年绩效

工作区手续费+滑点

爆个笑料:不曾想去年有人跟我说:这个玉米跟镍的基数价格差了100倍,你给玉米设一跳滑点,镍你得设置100跳。要不然是不合理的【doge,手动滑稽】

科学客观合理的滑点设置:每一个TICK的买一和卖一的盘口数据差值,平均值看看是多少,铁矿石举例:如果买一是1000,卖一是1000.5,那么滑点就是一跳,如果是1001那就是2跳,每一个TICK盘口数据,你可以得出一个平均值,这个平均值如果是等于1跳,那说明没有滑点,或者说滑点就是设置的一跳。如果小于2跳,说明盘中出现了滑点,那么你可以把一年或者更长时间的数据如此统计出来。看看最终的均值和中位数在哪里,那么你就可以得出这个品种科学合理的滑点设定。

其次,你一天交易几百笔还是几十笔?一年遇不上的几次2跳以上的滑点看给你吓得。

策略压力测试不应该来源于滑点,这只是一个非核心的参考,而是来源于行情。

下面我们分别来看几个品种:      

铁矿石2016-2021

棕榈油2017-2021

PTA 2017-2021

NI 2021-2021

综述总结

1、当多空的进场是一致性逻辑的时候,出场当然并不是必须一致的,甚至多空的运行周期轨迹也不是,这里由于众多韭菜们(包括我)大家观点肯定是不一样的,所以你也不用说谁对谁错,我坚持的理念就是,你自己认为的并不一定是永恒的,当然也有第二种人认为自己的就是对的。

2、鉴于多空的不对称刻画问题,我目前想到的就是,多空的空间和时间因素来基础刻画,例如:XXX品种历次下跌的时间的长度,和上涨的时间长度。历次行情下跌的空间和上涨的空间。当然如果你用的是小时线,你也可以用空间除以时间,看看每一个单位时间下跌和上涨是否是什么情况,统计出来。

其次,也可以通过慕总的去量纲的ATR波动率刻画脚本去直观定性观察,看看近两年和前两年的波动大小,波动周期。

有什么好的方法进行多空结构刻画的,大家也可以在群里分享讨论。总之一句话:10年前的参数放到今天,大概率是亏钱的,不存在圣杯,说有圣杯的绝对是忽悠你的。

最后我放两组图片,为了让大家看得更清楚,我将按月份截取图片。

1月份做多

2月份做多

3月份做多

1月份做空

2月份做空

3月份做空

统计:1-4.7月份开多7笔(截止4月7日完稿)

          3笔对3笔错,1笔未平仓

         1-4.7月份开空4笔

         2笔对2笔错

多空结合1-4.7月份成交记录(14笔)

因为需要通过夏普、胜率、等其他规则筛选优化完毕的参数组合,因此,最后筛选出来的夏普、最大回撤等绩效和风险指标都不如多空分开的组合。如果不筛选,那么交易次数比分开组合要多出去一倍的交易记录,胜率降低到了30%以下。总体而言,从综合性考评,该策略分开比不分开绩效要好很多,而这种好很多人归结于多空不同参数的优化,相当于以前是3个参数然后乘以了2倍6个参数的效果,至于有这种想法的人,我也不好说什么,毕竟大家理念不一样。而我认为这是多空结构的分开所贡献的,从而达到了策略自身的组合升级。

Ok,本期的策略是为了下一期的铺垫而来。说出这句话就是不给自己台阶下,em…..m,争取下个月给大家提供更为“睁眼看世界”的策略思路。

有什么问题,欢迎加入我们松鼠宽客,我们在VIP群里等你哦~     

本策略仅作学习交流使用,实盘交易盈亏投资者个人负责。

猜你喜欢

转载自blog.csdn.net/m0_56236921/article/details/123416310