致力于量化策略开发,高质量社群,交易思路分享等相关内容
大家好,我是乌克兰剑圣。
有朋友提意,松鼠大部分策略都是基于分钟周期,其实日线策略可以多出一些的。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 ) ;
for i = 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; //回归返回值
Return True;
}Else
{
Return False;
}
计算中轨
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:
这期模型算不上优秀,普普通通。只是为了完整内容版图,主要精力放在了明年的内容上面,具体有哪些改变,过几天就会有通告了。感谢大家一直以来的支持,真的非常感谢。
本策略仅作学习交流使用,实盘交易盈亏投资者个人负责。