算法系列 | 斜率+自适应区间交易策略

松鼠宽客
2022-04-14

图片

公众号致力于量化策略开发,高质量社群,交易思路分享等相关内容



『正文』

ˇ


大家好,我是乌克兰剑圣。这是本年度最后一期算法策略,明年松鼠宽客会有很大的内容调整,很多方面的改进,皆是为了与时俱进,更好的服务粉丝。

有朋友提意,松鼠大部分策略都是基于分钟周期,其实日线策略可以多出一些的。OK,这一期是关于日线级别的 斜率+自适应区间的交易策略。


线性回归-斜率





















if(Length > 1){SumX = Length * ( Length - 1 ) * 1/2;SumXSqr = Length * ( Length - 1 ) * ( 2 * Length - 1 ) * 1/6 ;   Divisor = Sqr( SumX ) - Length * SumXSqr ;      SumY = Summation( Price, Length ) ;fori = 0 to Length - 1 {SumXY = SumXY + i * Price[i] ;}    LRSlope = ( Length * SumXY - SumX * SumY) / Divisor ; //斜率返回值LRAngle = Atan ( LRSlope ) ; //角度返回值LRIntercept = ( SumY - LRSlope * SumX ) / Length ; //Y轴截距返回值LRValue = LRIntercept + (Length - 1 - TgtBar)*LRSlope; //回归返回值ReturnTrue;}Else{ReturnFalse;   }

计算中轨


HL=(H+L)/2;


这里没有用到直接只用BAR线的高低价格计算中轨,然后计算中轨的斜率。



H0Slope=LinearRegSlope(HL,N);H1Slope=LinearRegSlope(HL[1],N);

这里我们保存俩个数据,一个是最新bar的HL斜率值,一个是上一个bar的HL斜率值。这样做到目的,我们来看下图:

图片

放大副图:

图片

斜率比较稳定,我们用新值与前值做一个类似金叉死叉的趋势判断器,这里不考虑斜率的数值,只考虑金叉死叉的状态,例如下图:

图片

这是简单的用法,只考虑斜率的新值和前值的比较,新值大于旧值做多,空头反之。但是这里也有一个问题,纯粹的交叉模型并不会有好的绩效,所以我们引入自适应区间的概念,用自适应区间来过滤一部分震荡。


自适应区间


我们在SF18策略里使用了这个方法,现在我们把这个东西在斜率模型里利用起来。












if(buycond[1]){upband=HH;KG=1;}if(Sellcond[1]){dnband=LL;KG=-1;}


斜率在最后死叉了但是并不立即开空,需要等待区间跌破后才会开空。这样就是斜率与区间结合的好处,当斜率在上升阶段出现翻空的表现,也还需要等待区间确认。


绩效

图片



RB888

图片

EB888

图片

P9888

图片


J888

ZC888

SM888


SP888

SA888


HC888


VNPY:



总结


这期模型算不上优秀,普普通通。只是为了完整内容版图,主要精力放在了明年的内容上面,具体有哪些改变,过几天就会有通告了。感谢大家一直以来的支持,真的非常感谢,提前祝大家双旦快乐,✌。



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



End


分享