斜率的计算方法,是数据处理过程中绕不开的解决思路。评论区网友留言如下:

网友留给我的作业题

留言的需求是,建立20日均线的斜率,并且向上大于30%。

今天以此为契机,展开函数SLOP的通用算法。


思路步骤

  1. 输出均线;
  2. 对均线的当前值进行标示;
  3. 输出斜率;
  4. 计算多个斜率的平均值。


算法建立

1. 输出均线:

MA(C,20)

2. 对均线的当前值进行标示

DRAWNUMBER(ISLASTBAR, MA(C,20), MA(C,20))

3. 输出多个斜率

SLOPE(MA(C,20),5)

SLOPE(MA(C,20),10)

4.计算多个斜率的平均值

(SLOPE(MA(C,20),5)+SLOPE(MA(C,20),10))/2


主图标注算法的完整代码

江丰鱼的算法

MA20:MA(C,20),COLORMAGENTA;

DRAWNUMBER(ISLASTBAR,MA20,MA20),COLORMAGENTA;

XL:(SLOPE(MA20,5)+SLOPE(MA20,10)+SLOPE(MA20,15)+SLOPE(MA20,20))*25;{斜率}

DRAWTEXT_FIX(ISLASTBAR,0.9,0.01,0,'斜率'),COLORWHITE;

DRAWNUMBER_FIX(ISLASTBAR,0.93,0.01,0,XL),COLORWHITE;


数据筛选算法的完整代码

方法一:

MA20:=MA(C,20);

(SLOPE(MA20,5)+SLOPE(MA20,10)+SLOPE(MA20,15)+SLOPE(MA20,20))*25 >=30; {斜率}


方法二:

MA20:=MA(C,20);

XL:=(SLOPE(MA20,5)+SLOPE(MA20,10)+SLOPE(MA20,15)+SLOPE(MA20,20)) *25;{斜率}

CONST(BARSLAST(XL >=30))<=20;{距今20个交易日};


方法三:

MA20:=MA(C,20);

XL:=(SLOPE(MA20,5)+SLOPE(MA20,10)+SLOPE(MA20,15)+SLOPE(MA20,20)) *25;{斜率}

CONST(BARSLAST(CROSS(C, MA(C,20))))<=20 AND ONST(BARSLAST(XL >=30))<=20;{ 距今20个交易日};


方法四:

XL:=(SLOPE(MA(C,20),5)+SLOPE(MA(C,20),10)+SLOPE(MA(C,20),15)+SLOPE(MA(C,20),20))*25;{斜率}

CONST(BARSLAST(REF(XL,1)<30 AND XL>=30))<=1;


计算创造价值,分享助你成功。文中代码均可运行。

江丰鱼的文章只在今日头条首发;未经授权禁止引用或者转载。