网络知识 娱乐 算法汇编(五)

算法汇编(五)

评论区留下的作业,思路奇特,也总会带给人许多的惊喜。

第一道题,长阳不破的算法,前述已有专门的论述,这里再一次进行复习。请看下图1

网友的留言1


留言的需要,应该是“长阳”不破,因为,后续数据不破左侧阳线,必然是向上的方向,那么不被下破的那个“单阳”将不再是孤单的单阳了。

网友的留言2

追加留言是说,将时间限定在当前的3个至一周数据之内。


思路步骤
第一,使用函数BARSLAST确定条件发生的位置;
第二,长阳之后所有数据的收盘价都在长阳收盘价之上。


算法建立
1.长阳位置
BARSLAST(C/O>=1.05)


2.长阳发生后的收盘价的最低值
LLV(C,WZ)


3.长阳那个数据的收盘价
REF(C,WZ))


完整代码

WZ:=CONST(BARSLAST(C/O>=1.05));

WZ<=4 AND CONST(LLV(C,WZ))>CONST(REF(C,WZ));


第二道题,大量阳线不破,如何建立算法呢?请看图2

网友的留言3

留言的需要是,放量阳线,且后续三个数据不破该数据的最低价格,同时缩量。


思路步骤

  1. 一共4个条件—阳线;放量;后续不破;后续缩量。;
  2. 使用函数BARSLAST确定条件发生的位置;
  3. 长阳之后所有数据的收盘价都在长阳收盘价之上;
  4. 后续3个数据为缩量。


算法建立
1.放量阳线的位置
BARSLAST(C>O AND V>REF(V,1)*1.5)


2. 长阳之后所有数据的收盘价都在长阳收盘价之上

LLV(L,3)>REF(L,WZ)


3.长阳那个数据的收盘价
REF(C,WZ))

4. 后续3个数据为缩量

HHV(V,3)<REF(V,WZ)


完整代码

WZ:=CONST(BARSLAST(C>O AND V>REF(V,1)*1.5));

WZ=3 AND LLV(L,3)>REF(L,WZ) AND HHV(V,3)<REF(V,WZ);


第三道题,RSI指标中叠加大盘的RSI,请看图3

网友的留言4

留言的意思是说,在个股的RSI指标中加入大盘的RSI数值线。

思路步骤

  1. 引入系统指标RSI;
  2. 应用双引号,引入大盘的RSI指标值。

算法建立

  1. 引入系统指标RSI

参数与代码流程

  1. 引入大盘的RSI指标值

"999999$RSI.RSI1";

"999999$RSI.RSI2";

"999999$RSI.RSI3";

完整代码

参数与代码流程

LC:=REF(CLOSE,1);

RSI1:SMA(MAX(CLOSE-LC,0),N1,1)/SMA(ABS(CLOSE-LC),N1,1)*100;

RSI2:SMA(MAX(CLOSE-LC,0),N2,1)/SMA(ABS(CLOSE-LC),N2,1)*100;

RSI3:SMA(MAX(CLOSE-LC,0),N3,1)/SMA(ABS(CLOSE-LC),N3,1)*100;

"999999$RSI.RSI1";

"999999$RSI.RSI2";

"999999$RSI.RSI3";

也可以做成双线输出

参数与代码流程

LC:=REF(CLOSE,1);

RSI1:SMA(MAX(CLOSE-LC,0),N1,1)/SMA(ABS(CLOSE-LC),N1,1)*100;

"999999$RSI.RSI1";


第四道题,近期内至少两次涨停板方式上破年线的数据筛选算法 ,请看图4

网友的留言5

留言的需求是,在近期时间范围内,出现过涨停上穿年线的情况;然后跌破了年线,不久之后,又以涨停方式上穿年线,如何建立数据筛选方法呢?

思路步骤

  1. 罗列涨停板条件;
  2. 应用CROSS函数表达上穿关系;
  3. 应用COUNT函数对上述涨停板以及上穿条件进行次数限定;
  4. 当前站在年线。

算法建立

1. 罗列涨停板条件

TJ:=(FINANCE(3)=4 OR (DATE>1200822 AND FINANCE(3)=3));

ZT:=IF(TJ,ZTPRICE(REF(C,1),0.2),ZTPRICE(REF(C,1),0.1));

2. 应用CROSS函数表达上穿关系

CROSS(C,MA(C,250))

3. 应用COUNT函数对上述涨停板以及上穿条件进行次数限定

COUNT(C>=ZT AND CROSS(C,MA(C,250)),M)=2

4. 当前站在年线

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

一个参数与完整代码

参数M与代码流程

TJ:=(FINANCE(3)=4 OR (DATE>1200822 AND FINANCE(3)=3));

ZT:=IF(TJ,ZTPRICE(REF(C,1),0.2),ZTPRICE(REF(C,1),0.1));

COUNT(C>=ZT AND CROSS(C,MA(C,250)),M)=2 AND ABS(L/MA(C,250)-1)<=0.03;


第五道题,连续三天都是倍量运行,请看图5

网友的留言6

留言的意思是说,连续倍量向右运行,如何表达?

思路步骤

  1. 倍量的表达;
  2. 连续的表达。

算法建立

1. 倍量

条件:V/REF(V,1)>=2

2. 连续

BARSLASTCOUNT(条件)

完整代码

BARSLASTCOUNT(V/REF(V,1)>=2)>=3;


第六道题,破发的数据筛选,请看图6

上市之后大涨,当前又跌破了发行价,算法如何建立呢?请看截图:

网友的留言7

留言的意思是说,股票上市后,上涨三至四倍后,回调跌破上市当天的最低价的数据筛选算法。

思路步骤

  1. 上市周期数,也即总的数据数小于等于M;
  2. 取得上市首日的开盘价;
  3. 历史最高值;
  4. 历史最高值是开盘首日开盘价的3~4倍;
  5. 当前收盘价格下破了上市首日的开盘价格。

算法建立

1. 上市周期数,也即总的数据数小于等于M

TOTALBARSCOUNT<=M

2.上市首日开盘价

REF(OPEN,TOTALBARSCOUNT-1)

3. 历史最高值

HHV(H,M)

4. 历史最高值是开盘首日开盘价的3~4倍

RANGE(HH/SO,2,5)=1

5.当前收盘价格下破了上市首日的开盘价格

CROSS(SO,C)

一个参数与完整代码

参数M与代码流程

SO:=CONST(REF(OPEN,TOTALBARSCOUNT-1));

HH:=CONST(HHV(H,M));

TOTALBARSCOUNT<=M AND RANGE(HH/SO,2,5)=1 AND CROSS(SO,C);


第七道题,均线横盘,怎么建立算法,请看图7

网友的留言8

留言的需求是,表达360日均线的横盘算法。

思路步骤

以360均线为例,给出通用的横盘算法:

  1. 输出均线;
  2. 计算该均线在某个具体时间区间内的最值;
  3. 应用ABS函数,限定上述算得的均线最值范围---范围越窄,均线越趋于“走平”;
  4. 应用函数BARSSINCE,限定该均线的出现满范围。

算法建立

1. 输出均线

MA360:=MA(C,均线参数)

2. 计算该均线在某个具体时间区间内的最值

MH:=CONST(HHV(MA360,均线参数))

ML:=CONST(LLV(MA360,均线参数))

3. 应用ABS函数,限定上述算得的均线最值范围

ABS(MH/ML-1)<=百分之几/100

4. 应用函数BARSSINCE,限定该均线的出现范围

CONST(BARSSINCE(MA360>0))>=时间范围

三个参数与完整代码

参数表

MA360:=MA(C,均线参数);

MH:=CONST(HHV(MA360,均线参数));

ML:=CONST(LLV(MA360,均线参数));

CONST(BARSSINCE(MA360>0))>=时间范围 AND ABS(MH/ML-1)<=百分之几/100;


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

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