分享

BARSLAST函数应用解释

 cxm54666 2023-03-12 发布于吉林

本文依据网友的思路,给出BARSLAST函数的嵌套应用算法,为递进式算法需要提供我们的思路,请看留言:

文章图片1

网友的留言

网友留言的题目是:建立一个选股指标---MACD在0轴下实现两次金叉(相差一段时间,第二个比第一个底部抬高)。

网友补充的示意图:

文章图片2

思路示意图

思路步骤

  1. 本文为了介绍BARSLAST函数的嵌套应用法,所以只对网友示意图中的MACD在0轴下方的双金叉进行算法表达;
  2. BARSLAST函数介绍;

用法:BARSLAST(X)---上一次X不为0到当下的周期数

例如:BARSLAST(CLOSE/REF(CLOSE,1)>=1.1)表示上一个涨停板到当前的周期数

  1. 引入系统已有指标MACD,做赋值处理,并删除MACD行;
  2. 应用今天的主角BARSLAST函数,分别计算两次金叉发生的位置;
  3. 罗列网友的双金叉条件,完成筛选逻辑算法。

算法的建立

1. 引入系统已有指标MACD,做赋值处理,并删除MACD行

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

DEA:=EMA(DIF,MID);

2. 计算两次金叉发生的位置---本文重点:计算左侧金叉位置时,用到了REF函数,限定时间范围是发生在右侧金叉位置之前

WZ1:=CONST(BARSLAST(CROSS(DIF,DEA)));

WZ2:=CONST(BARSLAST(REF(CROSS(DIF,DEA),WZ1+1)))+WZ1+1;

3.数据筛选的逻辑序列

a.最左侧第一次金叉发生之后,DIF与DEA一直处于MACD的0轴之下

EVERY(DIF<0,WZ2+1)

EVERY(DEA<0,WZ2+1)

b.右侧的第二次金叉,发生在当下

WZ1<=1 A

c.变量调节,两次金叉发生的时间间隔,参数的选择依据使用者自己的需求

WZ2-WZ1>=间隔数;

数据筛选的完整代码

文章图片3

代码流程

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

DEA:=EMA(DIF,MID);

WZ1:=CONST(BARSLAST(CROSS(DIF,DEA)));

WZ2:=CONST(BARSLAST(REF(CROSS(DIF,DEA),WZ1+1)))+WZ1+1;

EVERY(DIF<0,WZ2+1) AND EVERY(DEA<0,WZ2+1) AND WZ1<=1 AND WZ2-WZ1>=间隔数;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多