公式网 股票指标公式源码分享 登录 注册
公式指标平网
未来函数检测
首页 金钻指标 通达信公式 大智慧公式 同花顺公式 文华财经公式 东财通公式 飞狐公式 操盘手公式 其他公式 公式解答 股票软件 股票池
当前位置:→ 公式网 > 通达信公式 > 正文 → 正文

通达信backset()函数的高级用法

发布时间:2016/4/18 23:48:30  浏览次数:

在网上找到的一个有关bacdset()函数的用法讲解,很透彻,解决本人一直的疑惑,基本明白此函数的用法了,贴出来与大家分享,同时感谢原作者。
backset()函数的高级用法:
 一、问题:如何在最后一根K线的前第6天,作上标记?
1、先建立一个名为backset-test的指标,代码如下:
islastbar{该周期是否最后一个周期。最后一个周期返回值为1,其余为0}

观察指标线的图形,正如注释所述,最后一天显示为1,这个1我们可理解为信号(条件)成立。其余时间,指标的数值为0,可理解为信号(条件)不成立。

2、巧用backset()函数:
①bacdset(x,n)注释:向前赋值,若X非0则把当前周期及前N-1周期的数值设置为1;
 ②示例:把信号向前移。
tj1:=islastbar;{最后一天的条件}
tj2:backset(tj1,6);
观察tj2指标线图,发现最后6天的tj2信号都是1,即一个高度为1的矩形。指标中,还无法判断哪天是倒数第6天。

3、显然倒数第6天,是上面矩形的前沿,如何在指标中,表达这个矩形的前沿?
 容易想到的办法:
①倒数第6天的当天,tj2为1,更早的1天tj2=0,因此可以编出如下代码:
tj1:=islastbar;{最后一天的条件}
tj2:=backset(tj1,6);tj3:tj2 and ref(tj2,1)=0;

 ②倒数第6天的当天,tj2为1,更早的1天tj2=0,即当天tj2比早一天的tj2更大,因此可以编出如下代码:
tj1:=islastbar;{最后一天的条件}
tj2:=backset(tj1,6);
 tj3:tj2>ref(tj2,1);

 ③倒数第6天的当天,tj2为1,更早的1天tj2=0,可以想象为tj2指标线上穿了一条高度为0.5的水平线,因此可以编出如下代码:
tj1:=islastbar;{最后一天的条件}
tj2:=backset(tj1,6);
 tj3:cross(tj2,0.5);

 ④巧用filter()过滤函数,filter(x,N),若X非0,可以让X保持当天的值不变,且过滤其后N个周期使之数值为0。
tj1:=islastbar;{最后一天的条件}
tj2:=backset(tj1,6);
 tj3:filter(tj2,5);{第1次的tj2保持为1不变,其后的5个周期过滤为0}

这样就初步找到了4种方法,可以标记倒数第6天,若想用图标来标记的话,代码例举如下:tj1:=islastbar;{最后一天的条件}
tj2:=backset(tj1,6);
 tj3:=tj2>ref(tj2,1);
 drawicon(tj3,L,1);
 

资源下载链接   资源大小:unknow

手机移动版 - 关于我们 - 联系我们 - 广告合作 - 下载声明 - 网站帮助 - 友情链接 - 网站地图 - TOP
湘ICP备09016573号-3 增值电信业务经营ICP许可证:湘B2-20210269 湘公网安备43108102000039号
Copyright © GSZX.COM.CN ,All Rights Reserved.
股票公式,股票指标,股票软件,股票知识