算法汇编(四)

选取评论区的需求,将算法分享如下:


第一道题,请看留言:

网友的想法1

留言的意思是说,需要当20日均线上启动的2天内,MACD出现金叉的数据筛选算法。

思路步骤

求出两个条件各自发生时的时间,计算两个时间的差小于等于2即可:

  1. 引用系统已有MACD指标的算法,并对DIF与DEA进行赋值,删除MACD输出;

第二,20日均线上启动发生2天内;

第三,MACD出现金叉发生在4天内。

算法建立

1.引入系统MACD指标算法;

引用MACD

DIF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);

DEA:=EMA(DIF,MID);

2. 20日均线上启动发生2天内

BARSLAST(ABS((L/MA(C,20)-1)<=0.03))<=1

3. MACD出现金叉发生在4天内

BARSLAST(CROSS(DIF,DEA))<=3

三个参数加完整代码

参数与代码

DIF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);

DEA:=EMA(DIF,MID);

CONST(BARSLAST(ABS((L/MA(C,20)-1)<=0.03)))<=1 AND CONST(BARSLAST(CROSS(DIF,DEA)))<=3;


第二道题,请看留言:

网友的想法2

留言的意思是说,当MAC金叉日为X,后面X+1日 、X+2日、X+3日……最高价的最高值,主图公式怎么表达

思路步骤

  1. 引用系统已有MACD指标的算法,并对DIF与DEA进行赋值,删除MACD输出;
  2. 求出金叉日数值;
  3. 输出金叉日后的最高价的最高值。

算法建立

1. 引入系统MACD指标算法;

引用MACD

2. 求出金叉日数值

BARSLAST(CROSS(DIF,DEA))

3. 输出金叉日后的最高价的最高值

IF(CURRBARSCOUNT<=JCWZ,H,DRAWNULL)

三个参数加完整代码

参数与代码

DIF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);

DEA:=EMA(DIF,MID);

JCWZ:=CONST(BARSLAST(CROSS(DIF,DEA)));{金叉位置}

JCHH:IF(CURRBARSCOUNT<=JCWZ,H,DRAWNULL);{金叉后HIGH}

{也可以加入变量参数,进行连续输出或者引用}

CONST(REF(H,JCWZ-N));


第三道题,请看留言:

网友的想法3

留言的意思是说,3日内收盘价上破MA144均线,并且3日收盘价均大于MA144均线不破的数据筛选算法。

思路步骤

  1. 依据3个数据的范围,应用BARSLAST函数进行时间匹配;
  2. 题目里的两个条件被BARSLAST函数属性给出了描述。

算法建立

1.3日前在MA144线下;2日前在MA144线上;

EF(C,1)

C>MA(C,144)

2. 上述条件的“上穿”发生在第3日

BARSLAST(REF(C,1)MA(C,144))=2;

完整代码

CONST(BARSLAST(REF(C,1)MA(C,144)))=2;


第四道题,请看留言:

网友的想法4

留言的意思是说,一波下跌出现了近期最低价的K线,今天收盘价反包站上了那根K线的最高价,并且今日距那根最低价K线的时间小于等于5天。

思路步骤

  1. 近期最低价位发生在最近5日之内;
  2. 今天的收盘价上破了前述最低价日的最高价。

算法建立

1. 近期最低价位发生在最近5日之内

LLVBARS(L,6)<=5

2. 今天的收盘价上破了前述最低价日的最高价

CROSS(C,REF(H,CONST(LLVBARS(L,6))))

完整代码

CONST(LLVBARS(L,6))<=5 AND CROSS(C,REF(H,CONST(LLVBARS(L,6))));


第五道题,请看留言:

网友的想法5

留言的意思是说,建立MA5均线上穿MA10均线呈多头平行的数据筛选算法。

思路步骤

  1. 计算两条均线的斜率,应用SLOPE函数并且使用平均值;
  2. 应用EVERY函数限定MA5的斜率20日内在MA10斜率的一定范围之内。

算法建立

1. 计算两条均线的斜率

MA5XL:=(SLOPE(MA(C,5),5)+SLOPE(MA(C,5),10)+SLOPE(MA(C,5),15)+SLOPE(MA(C,5),20))*25;

MA10XL:=(SLOPE(MA(C,10),5)+SLOPE(MA(C,10),10)+SLOPE(MA(C,10),15)+SLOPE(MA(C,10),20))*25;

2. 限定MA5的斜率20日内在MA10斜率的一定范围之内

EVERY(RANGE(MA5XL/MA10XL,1,1.01)=1,20);

完整代码

MA5XL:=(SLOPE(MA(C,5),5)+SLOPE(MA(C,5),10)+SLOPE(MA(C,5),15)+SLOPE(MA(C,5),20))*25;

MA10XL:=(SLOPE(MA(C,10),5)+SLOPE(MA(C,10),10)+SLOPE(MA(C,10),15)+SLOPE(MA(C,10),20))*25;

EVERY(RANGE(MA5XL/MA10XL,1,1.01),20);


第六道题,请看留言:


网友留言6

留言的意思是说,今天的 MACD大于昨天,输出红色柱线;MACD小于昨天,输出绿色柱线。

思路步骤

  1. 引入系统MACD指标的算法,并对MACD进行赋值;
  2. 当今日的MACD大于昨天时,输出MACD,红色;
  3. 当今日的MACD小于昨天时,输出MACD,绿色;

算法建立

1.

引用MACD

2. 当今日的MACD大于昨天时,输出MACD,红色

IF(MACD>REF(MACD,1),MACD,DRAWNULL),STICK,COLORRED;

3. 当今日的MACD小于昨天时,输出MACD,绿色

IF(MACD

完整代码

参数与代码

DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);

DEA:EMA(DIF,MID);

MACD:=(DIF-DEA)*2;

IF(MACD>REF(MACD,1),MACD,DRAWNULL),STICK,COLORRED;

IF(MACD

效果示意

今天昨天对比的MACD柱线


第七道题,请看留言:

网友的想法7

留言的意思是说,k线上穿EMA55后,上涨了段再后回调到EMA55E不破或破不超%3左右的先上股公式

思路步骤

  1. 收盘价上穿EMA55发生的时间位置至少是在昨天;
  2. 回调后的最后一天,也就是今天的收盘价不破EMA55均线。

算法建立

1. 收盘价上穿EMA55发生的时间位置至少是在昨天

BARSLAST(CROSS(C,EMA(C,55)))>=1

2. 今天的收盘价不破EMA55均线

BS(C/EMA(C,55)-1)<=0.03

完整代码

CONST(BARSLAST(CROSS(C,EMA(C,55))))>=1 AND ABS(C/EMA(C,55)-1)<=0.03;


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

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

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章