BARSLAST 这个函数,90% 的人没用对 —— 三金叉公式拆解

三个金叉挤在同一天,这个公式用 BARSLAST 算 "过了几天"

刚学指标的人,看到 "金叉" 两个字就激动。但你打开行情软件随便翻,金叉天天有——MACD 金叉、KDJ 金叉、均线金叉,一个月能出十几次。单个金叉的参考价值,其实没那么大。

这个公式换了个思路:不等单个金叉,等三个金叉挤在一起

拆开看就三件事。

第一件:MACD 金叉,而且在零轴附近

XG1:=EMA(CLOSE,12)-EMA(CLOSE,26);
XG2:=EMA(XG1,9);
XG12:=CROSS(XG1,XG2) AND XG2<0;
XG13:=BARSLAST(XG12);

前两行就是标准 MACD 的 DIF 和 DEA。第三行要求 DIF 上穿 DEA,而且 DEA 要小于 0—— 意思是金叉发生在零轴下方。为什么?因为零轴下方金叉,说明刚从弱势区爬起来,位置低,不是追高

第四行 BARSLAST(XG12) 是关键。这个函数算的是 "距离上一次满足条件过了多少根 K 线"。如果昨天刚金叉,今天再算,结果就是 1。如果 5 天前金叉的,结果就是 5。

第二件:KDJ 金叉

XG4:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
XG5:=SMA(XG4,3,1);
XG6:=SMA(XG5,3,1);
XG11:=BARSLAST(CROSS(XG5,XG6));

这就是标准 KDJ 的 K 和 D。BARSLAST(CROSS(XG5,XG6)) 算的是距离上次 K 上穿 D 过了几天。

第三件:均线金叉

XG8:=MA(CLOSE,5);
XG9:=MA(CLOSE,10);
XG10:=BARSLAST(CROSS(XG8,XG9));

MA5 上穿 MA10,同样用 BARSLAST 算过了几天。

最后三行合在一起:

三金叉X:IF((XG10<=1 AND XG11<=1 AND XG13<=1),1,0);

意思是:均线金叉距今≤1 天,KDJ 金叉距今≤1 天,MACD 金叉距今≤1 天,三个同时满足才出信号。

注意是 "≤1" 不是 "=0"。这意味着公式允许三个金叉分布在今天和昨天两天里,不必精确到同一天。如果你要求同一天,改成 =0 就行 —— 但那样信号会更少,可能一个月都不出一次。

源码直接复制,日线使用:

XG1:=EMA(CLOSE,12)-EMA(CLOSE,26);
XG2:=EMA(XG1,9);
XG4:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
XG5:=SMA(XG4,3,1);
XG6:=SMA(XG5,3,1);
XG8:=MA(CLOSE,5);
XG9:=MA(CLOSE,10);
XG10:=BARSLAST(CROSS(XG8,XG9));
XG11:=BARSLAST(CROSS(XG5,XG6));
XG12:=CROSS(XG1,XG2) AND XG2<0;
XG13:=BARSLAST(XG12);
三金叉X:IF((XG10<=1 AND XG11<=1 AND XG13<=1),1,0);

说几个这个公式没告诉你的事。

它信号少。三个金叉凑在两天内,本身就是小概率事件。牛市里可能一周出一两个,熊市里可能一个月都没有。信号少不等于准,只是说它过滤掉了大部分普通金叉。

它不看位置。公式只要求 MACD 在零轴下方金叉,但不要求股价在什么位置。如果股价已经从底部涨了 30%,MACD 在零轴附近金叉,这时候出信号,和刚从底部起来出信号,意义完全不同。你需要自己再叠加一个位置判断,比如 C>MA (C,60) 或者涨幅不大。

它不看成交量。三个金叉都是价格指标,没有一个量能条件。金叉可以是缩量的,也可以是放量的。缩量金叉的可靠性,天然比放量金叉差

BARSLAST 这个函数,值得单独说一句。它是通达信里最实用的函数之一 —— 你想知道 "距离上次某个事件过了几天",就用它。上次涨停过了几天、上次放量过了几天、上次金叉过了几天,都能算。这个函数学会了,你能写的公式多一倍

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

扩展阅读:https://mp.weixin.qq.com/s/ulNhpk6vZjTSPhlKyY4UiA



相关阅读

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