以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  关于函数cross()的缺陷与失真  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=181534)

--  作者:shuerdd
--  发布时间:2020/8/3 11:04:45
--  关于函数cross()的缺陷与失真
穿越函数cross,昨天在线下(这个线是指判断穿越的线,下同),今天穿越该线了,函数表现是对的,
但是遇到其他情况时是失真和错误的,比如:
1,从线下到和线一样的数值,保持一个k线后者多个k线同数值,后又下线,实际上没有穿越,信号失真;(反之亦然,不再多说);
2:从线下上线,再和和线保持数值一样几个k线,再上线,则函数误判;
如果遇到以上情况,可以编程解决,但很麻烦,cross就失去了价值,能否找到新函数,真正代表穿越现象。谢谢

--  作者:FireScript
--  发布时间:2020/8/3 11:23:57
--  
系统默认的cross 在处理2个数值线变化过程中,默认是前一个K小于等于,当前K大于 则满足金叉。

你这里可以自行写个逻辑来判断金叉死叉的。把算法略做调整:
那么可以这样改下:
jc:ma5>ma10 and ref(ma5<=ma10,1);//前一个K小于,当前K满足大于等于 则满足金叉。

你可以在这个基础上继续修改 。总之就是把数值相等的情况单独处理下就行了。要么把等号的判断放在当前K,要么也可以忽略掉相等的情况。这个具体看你需求。