通达信如何在最后K线的前某天做标记

阅读 作者:股海网时间 2019-05-28 炒股经验

技术分析
islastbar和backset()函数的灵活用法:
backset()函数的高级用法:
一、问题:如何在最后一根K线的前第6天,作上标记?
1、先建立一个名为backset-test的公式,代码如下:
islastbar{该周期是否最后一个周期。最后一个周期返回值为1,其余为0}

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

2、巧用backset()函数:
①bacdset(x,n)注释:向前赋值,若X非0则把当前周期及前N-1周期的数值设置为1;BACKSET()属于未来函数,故会自动跟随K线变化,利用的正是这点。
②示例:把信号向前移。
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);

上传会员: 
股海网
上传时间: 
2019-05-28
下载积分: 
-
免责申明: 
请仔细阅读并同意后才能下载
本附件为论坛用户分享上传,股海网没有对文件进行验证,不能保证下载资源的准确性、安全性和完整性,也不保证下载资源能正常安装和使用,且下载后扣除的积分无法退还,除非您充分理解并完全接受本声明,否则您无权下载。
本站对提供下载的软件、指标、资料等不拥有任何权利,其版权归该下载资源的合法拥有者所有。本附件仅供学习和研究,不得用于商业或非法用途,如有侵犯您的版权,请参看 《侵权处理流程》《免责声明条款》
点击下载无反应时,更换手机自带浏览器重登录操作,如华为浏览器,苹果Safari浏览器,第三方浏览器有不兼容现象,或先收藏再到电脑端下载
同意以上声明才能下载,扣除积分无法退还!
我已知晓! 点我同意 所有条款自愿下载!
如有问题请点关闭提交问题反馈→
关闭
收藏
全部评论共 0 条

问题反馈 取消