ARTICLE · 1166108
底背离雷达指标:三路同时找底(源码)
底背离为什么要算三次
底背离的逻辑很朴素:价格创了新低,指标却不肯跟着创新低,说明下跌的力气在衰减。
问题是「指标」用哪一个。习惯用 MACD 的人说 MACD 准,习惯用 KDJ 的人说 KDJ 灵。
这条指标干脆三路都算一遍:MACD、KDJ、RSI 各算一路。哪一路先跳出来,它都告诉你。
每一路怎么算
三路的算法是一样的三步。
第一步,找到上一次金叉的位置,记住它离现在有多少根 K 线。
第二步,比较现在和上一次金叉时的价格。现在的价格更低,说明价格创了新低。
第三步,比较现在和上一次金叉时的指标读数。读数反而更高,背离就成立。
三路唯一的区别,是第一步里的金叉分别来自 MACD 的快慢线、KDJ 的 K 与 D、RSI 的两条线。
三路汇总
每一路成立的时候,会在对应的位置画一个标记并写出缩写。
三路里只要有一路成立,汇总的那条标记就点亮。
这里要说明一点:三路同时成立的情况很少。多数时候是一路先出现,另外两路过几天才跟上。
所以看到单路标记就值得记下来,不必等三个齐。
下半部分:趋势主线
图的下半部分是一条趋势线,取值在 0 到 100 之间。
它的算法是 27 天的位置指标做三重平滑,再按 5、3、2 的权重叠起来。三重平滑的代价是钝,好处是几乎没有毛刺。
趋势线再平滑一次得到慢线。快线在慢线上方画紫柱,慢线在上方画灰柱,柱体长度就是两条线之间的差值。
两端的极端区
趋势线有两个阈值:108 和 0。
冲上 108 说明进超买区,用红柱标出来;跌破 0 说明进超卖区,用洋红柱标出来。
上端还有一个 108 的天线,趋势从上方回落穿过它的时候会标出逃顶。
两个风险提示
下半部分还带两档风险提示,算法一样,只是观察的周期不同。
第一档:5 日均线创下 20 天新高、站上 20 日均线、并且连续三天收阳。
第二档:把上面的 20 换成 120 天。
两档的区别在于位置高低。20 天维度出风险,往往是短线过热;120 天维度出风险,说明已经是中长期的高位了。
怎么用
这条指标的信号偏少,这是刻意的。
真正有用的是背离标记和趋势线的相对位置一起看:背离出现在趋势线 0 附近,含金量最高;背离出现在 50 以上的位置,那就是下跌途中的一次挣扎,别当转折。
一个背离是提醒,两个背离是线索,三个背离才是位置。
温馨提示
1、指标:www.logic88.cn
2、本指标仅作为知识分享,不构成任何建议。


指标源码
{三路底背离雷达:MACD、KDJ、RSI 各自找,任一路成立就报}
DIF_LINE:=EMA(CLOSE,12) - EMA(CLOSE,26);
DEA_LINE:=EMA(DIF_LINE,8);
BARS_MACD:=BARSLAST(REF(CROSS(DIF_LINE,DEA_LINE),1));
DIV_MACD:=REF(C,BARS_MACD+1)>C AND REF(DIF_LINE,BARS_MACD+1)<DIF_LINE AND CROSS(DIF_LINE,DEA_LINE);
MACD_BOT_DIV:IF(DIV_MACD>0,50,0) AND L-0.1;
DRAWTEXT(MACD_BOT_DIV,72,'MACDY底背');
{第二路:KDJ 的 K、D 低位金叉,同时价格创出新低}
RSV9:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K_LINE:=SMA(RSV9,3,1);
D_LINE:=SMA(K_LINE,3,1);
BARS_KDJ:=BARSLAST(REF(CROSS(K_LINE,D_LINE),1));
DIV_KDJ:=REF(C,BARS_KDJ+1)>C AND REF(K_LINE,BARS_KDJ+1)<K_LINE AND CROSS(K_LINE,D_LINE);
KDJ_BOT_DIV:IF(DIV_KDJ>0,50,0) AND L-0.25;
{第三路:RSI 快慢线金叉,同时价格创出新低}
C_PREV:=REF(CLOSE,1);
RSI_FAST:=SMA(MAX(CLOSE-C_PREV,0),6,1)/SMA(ABS(CLOSE-C_PREV),6,1)*100;
RSI_SLOW:=SMA(MAX(CLOSE-C_PREV,0),12,1)/SMA(ABS(CLOSE-C_PREV),12,1)*100;
BARS_RSI:=BARSLAST(REF(CROSS(RSI_FAST,RSI_SLOW),1));
DIV_RSI:=REF(C,BARS_RSI+1)>C AND REF(RSI_FAST,BARS_RSI+1)<RSI_FAST AND CROSS(RSI_FAST,RSI_SLOW);
RSI_BOT_DIV:IF(DIV_RSI>0,50,0) AND L-0.4;
{三路里只要有一路成立,全底背就点亮}
ALL_BOT_DIV:IF(MACD_BOT_DIV OR KDJ_BOT_DIV OR RSI_BOT_DIV,50,0),COLORFF00FF;
DRAWTEXT(MACD_BOT_DIV,50,'M底背'),COLOR0000FF;
DRAWTEXT(KDJ_BOT_DIV,65,'K底背'),COLOR0000FF;
DRAWTEXT(RSI_BOT_DIV,80,'R底背'),COLOR0000FF;
DRAWTEXT(ALL_BOT_DIV,100,'全底背'),COLORBLUE,LINETHICK2;
{下面是趋势主线:27 日随机指标做三重平滑,取值 0~100}
TREND_MAIN: 5*SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1)-3*SMA(SMA((CLOSE-LLV (LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1),3,1)-SMA(SMA(SMA((CLOSE-LLV(LOW,27))/(HHV (HIGH,27)-LLV(LOW,27))*100,5,1),3,1),2,1),LINETHICK0,COLOR7F52AF;
{趋势线再平滑一次得到慢线,两线上下关系定多空}
TREND_SOFT: EMA(MA(TREND_MAIN,5),3),LINETHICK0,COLORA6B8C1;
{快线在上画紫柱、慢线在上画灰柱,柱体就是两线差值}
STICKLINE(TREND_MAIN>=TREND_SOFT,TREND_MAIN,TREND_SOFT,5,0),COLOR7F52AF;
STICKLINE(TREND_MAIN<TREND_SOFT,TREND_MAIN,TREND_SOFT,5,0),COLORA6B8C1;
{趋势冲过 108 进超买区,用红柱提示}
STICKLINE(TREND_MAIN>108 AND TREND_MAIN>=TREND_SOFT,TREND_MAIN,108,5,0),COLORFF0000;
STICKLINE(TREND_SOFT>108 AND TREND_MAIN<TREND_SOFT,TREND_SOFT,108,5,0),COLORFFFFFF;
{趋势跌破 0 进超卖区,用洋红柱提示}
STICKLINE(TREND_MAIN<0 AND TREND_MAIN<TREND_SOFT,TREND_MAIN,0,5,0),COLORF00FF0;
STICKLINE(TREND_SOFT<0 AND TREND_MAIN>TREND_SOFT,TREND_SOFT,0,5,0),COLORF0F000;
{风险提示:5 日均线创 20 日新高、站上 20 日线、连收三阳}
HIGH_FLAG:= MA(CLOSE,5)=HHV(MA(CLOSE,5),20);
MA_ABOVE:= MA(CLOSE,5)>MA(CLOSE,20);
UP3:= COUNT(MA(CLOSE,1)>REF(CLOSE,1),3)=3;
RISK_A: IF(HIGH_FLAG AND MA_ABOVE AND UP3,30,0),LINETHICK0,STICK,COLOR00FF00;
{另一档风险:换成 120 日维度,条件相同、位置更高}
HIGH_FLAG_L:= MA(CLOSE,5)=HHV(MA(CLOSE,5),120);
MA_ABOVE_L:= MA(CLOSE,5)>MA(CLOSE,120);
UP3_L:= COUNT(MA(CLOSE,1)>REF(CLOSE,1),3)=3;
RISK_B: IF(HIGH_FLAG_L AND MA_ABOVE_L AND UP3_L,60,0),LINETHICK0,STICK,COLORF0F000;
BOT_LEVEL: 5,LINETHICK0,COLOR00FFFF;
BOT_SIGNAL: IF(CROSS(TREND_MAIN,BOT_LEVEL),40,0),LINETHICK2,STICK,COLOR00FFFF;
DRAWTEXT(BOT_SIGNAL,50,'抄底'),COLOR0000FF;
{108 是原公式定下的超买天线}
TOP_LEVEL: 108,LINETHICK0,COLORFF9D00;
TOP_SIGNAL: IF(CROSS(TOP_LEVEL,TREND_MAIN),1,0),LINETHICK0,STICK,COLORFF9D00;
STICKLINE(CROSS(TOP_LEVEL,TREND_MAIN),90,108,3,0),COLORFF9D00;
DRAWTEXT(CROSS(TOP_LEVEL,TREND_MAIN),85,'逃顶'),COLORFF9D00;
DRAWTEXT(CROSS(TOP_LEVEL,TREND_MAIN),85,'逃顶'),COLORFF9D00;
选股源码,原文一键复制