两行代码的 KDJ 拐头公式,CROSS (9.9, 买) 这写法我看了半天才反应过来

KDJ零轴拐头:两行代码,CROSS(9.9,买)这写法我拆了半天才想明白

—— J值从负转正选股公式(附通达信源码)

导读警示:本公式判断的是KDJ的J值从负值回到零轴以上这个瞬间,仅供通达信编程学习。J值从负到正只是技术指标上的一个交叉动作,不代表股价见底,零轴之上还能再跌,是观察信号而非买入指令,不构成任何交易建议。

一、我踩过的坑:以为是金叉,其实只是J值过零轴

  • 第一次看到这公式名字里有"拐头",以为是KDJ金叉那种常规信号,拆开源码发现根本不是K上穿D,而是J值从负变正——完全两码事;

  • 直接拿CROSS(J,0)去写,跑出来跟原公式不一样,后来才明白原作者用了一个绕弯的写法,不是简单比较;

  • J值过零轴出现得特别频繁,震荡市里三天两头触发,如果不结合其他条件过滤,信号多到没法用。

二、指标逻辑在讲什么

KDJ的J值正常波动范围是0到100,但在极端超卖时J会跌破0(变成负数),极端超买时会冲过100。这套公式抓的就是J值从负数重新回到零轴以上这个瞬间——作者管它叫"零轴拐头"。问题是,实现这个判断的代码写法非常绕,不是写一个CROSS(J,0)就完了,而是用了一个IF嵌套加反向CROSS的机关。

核心就两行,但第二行的逻辑值得单独拎出来讲——这也是这篇文章的重点。

三、完整公式源码

{仅供学习研究}
买:=IF("KDJ.J"<0,10,0);
XG:CROSS(9.9,买);

四、公式逻辑大白话拆解——重点拆CROSS(9.9,买)

  • 第一行:买:=IF("KDJ.J"<0,10,0);
    意思是——如果KDJ的J值小于0,那"买"这个变量就等于10;否则等于0。注意"买"这个变量只有两个值:要么10,要么0,没有中间状态。J<0的时候买=10,J≥0的时候买=0。

  • 第二行:XG:CROSS(9.9,买);
    这就是最绕的地方。CROSS(A,B)的意思是A从下往上穿过B。这里A是9.9,B是"买"。我们来推演一下:
    情况一:昨天J还在0以下,那昨天"买"=10。今天J回到0以上了,今天"买"=0。那9.9是什么情况?9.9一直就是9.9不变。昨天买=10,9.9比10小,在买的下方;今天买=0,9.9比0大,跑到买的上方了。所以9.9从下往上穿过了买,CROSS成立!
    情况二:昨天J就在0以上,昨天"买"=0。今天J还是在0以上,今天"买"=0。9.9一直比0大,没有"从下往上穿"的过程,CROSS不成立。
    情况三:昨天J在0以上(买=0),今天J掉到0以下了(买=10)。9.9从比0大变成比10小,这是从上往下穿,CROSS不成立。

  • 结论:CROSS(9.9,买)成立的唯一条件,就是"买"这个变量从10变成0的那个瞬间——也就是J值从小于0变成大于等于0的那一天。说白了,代码绕了一大圈,干的就是一件事:抓J值从负转正的当天

  • 为什么不直接写CROSS(J,0)?两种写法效果接近,但原作者用IF把连续的J值离散化成0和10两个状态,再用9.9这个"卡在中间"的数字去触发交叉。好处是逻辑被限制在0和10之间,不会出现J值刚好等于0.001这种边界判断问题;坏处是可读性极差,第一次看代码的人根本反应不过来。

五、用法要点

项目使用说明
适用行情震荡市中J值频繁在零轴附近穿梭时信号较多;单边下跌中J值长期为负,偶尔转正也可能只是反弹一下又回去。
信号频率J值从负到正每天都可能发生,全市场扫一遍信号不会少,建议叠加趋势或量能条件过滤。
使用方式当作"J值刚从极度超卖区爬出来"的提醒信号,不要单独使用,必须结合K线位置、成交量、板块环境综合判断。

六、拿到选股结果,手动再核对3点

  • ①看J值在负值区待了多久:刚跌破0一天就回来的,和连续五天J都在负值以下才回来的,意义完全不同——后者说明超卖更充分;

  • ②看转正当天K线形态:是放量阳线站上短期均线,还是缩量十字星?前者有人接,后者只是J值技术性回弹;

  • ③看大盘环境:大盘也在跌的时候,J值从零轴以下爬出来的票整体质量差,个别反弹也容易被大盘拖下去。

七、通达信导入步骤

  • 1、快捷键Ctrl+F,打开通达信公式管理器;

  • 2、选择【条件选股公式】,点击【新建】;

  • 3、粘贴完整源码,自定义公式名称,点击确定保存;

  • 4、收盘之后执行选股,需要完整K线数据,盘中J值还在变,选股结果不准。

八、避坑提醒

  • 这公式只有两行代码,本质就是一个J值过零轴的事件提醒,没有任何趋势过滤、量能确认、位置判断——单靠它选股,信号质量很低。

  • "KDJ.J"引用的是系统KDJ指标的J值,如果你自己改过KDJ参数(比如把9改成6),那这个引用取到的就是改后的值,跟默认参数跑出来不一样。

  • J值从负转正不等于见底反弹成功,零轴附近J值来回穿越是常态,一天上穿一天下穿的情况很常见。

  • 源码里那个CROSS(9.9,买)的写法虽然巧妙,但没必要照搬到自己的公式里——直接写CROSS("KDJ.J",0)更容易读懂,也不容易出错。

扩展阅读:换手率战法:活跃度5%-15%最健康

风险提示:本公式仅为技术指标交叉事件筛选,无法预判行情涨跌。J值从零轴以下回到零轴以上,不代表股价止跌,弱势市场中此类信号频繁失效。全部仅限通达信编程学习交流,不要直接依靠选股结果做交易,投资风险全部自行承担。

指标仅为技术交流,不构成投资建议。市场有风险,入市需谨慎。

本文由AI辅助创作,内容仅供技术交流


相关阅读

最近发表
在线客服
QQ:332879389
联系电话
13605084160