ARTICLE · 1154362
活跃区间启动指标:六条件合流(源码)
一只股票,什么时候才算「活」了
不是涨得多就叫活。
是量、价、换手三样同时动起来,而且动得不过分。
这条指标把六组条件摆在一起,全中了才在图上标一个启动点。
第一组:先跟均线比一比
先建一组均线:5 日、10 日、20 日,再加一条 60 日指数均线。
这里有个自适应的小设计。上市不满 100 天的新股,用 20 日线做基准;满 100 天以后,换成 60 日线。
新股筹码少、走势野,拿长周期均线去卡它没有意义。
然后算价格与基准的偏离。偏离太远的直接排除——追高风险太大,跌下来也是同样速度。
第二组:三种阳线,只认这三种
接着看 K 线形态。
涨停算一种;盘中摸到涨停但没封住、收在 6.5% 到 9.9% 之间的算一种;放量的长阳线算一种。
三种里出现任何一种,就记一笔「标志性阳线」。
后面所有的定位,都从这一笔开始数。距离这根阳线多少天了,是判断位置的关键。
第三组:换手要放大,但不能失控
量是资金进场的证据。
换手率要比昨天明显放大,同时要站上自己的 5 日均值。但也得有个上限——超过昨天七倍的直接排除,那多半是一日游。
还有一条反向条件:前面 7 天里至少要有 4 天是缩量的。
先收缩,再放大,才叫蓄势。一上来就是天量的,往往是在派发。
第四组:波动收到极限
布林带在这里改了个写法。
中轴不用 20 日均线,改成 BBI——3、6、12、24 四条均线的平均值。上下轨是中轴加减 3 倍标准差。
带宽收到 0.4 以下,或者收到 100 日最低带宽的三倍以内,就算波动收敛到极限。
收敛意味着变盘。方向不确定,但幅度会来。
第五组:大单是不是在动
这一组看的是资金的「重」。
换手率直接拿来当作大单的近似值。它要满足两个条件之一:超过 0.10 且比昨天更高,或者虽然不到 0.10,但累计值已经站到均值之上。
另外还有一条更严的:大单占换手率的比例超过两成。意思是这一天的换手,集中在少数人手里。
第六组:跟大盘比
个股再漂亮,跑不赢大盘也容易夭折。
这里把大盘指数的 10 日均线偏离算出来,与个股的偏离相减,再乘 3,得到相对强弱。
这个数要为正,或者虽然为负但已经在回升。
六个条件合流之后
六组条件全部成立,图上标一个启动点。
之后如果活跃状态一直延续,就画出一段活跃区间。区间里还会顺带算出建仓区间的上下沿——以启动那天的均价为基准,下沿留 5% 的止损空间,上沿给 2% 到 3%。
这不是让你照着买。它是告诉你:如果要做,位置大概在哪,止损放哪。
怎么用
信号很稀少,一只股票一年可能只标两三次。
出现的时候,先看它落没落在活跃区间里。区间内的启动,延续概率比孤零零一个点高得多。
如果信号出来后连续几天都是活跃状态,说明这波是真的;第二天就熄火的,止损位已经在那儿摆着,不用猜。
温馨提示
1、指标:www.logic88.cn
2、本指标仅作为知识分享,不构成任何建议。


指标源码
{先数上市天数:满 100 天以后才改用 60 日均线做基准,避免新股数据失真}
LIST_DAYS:= BARSCOUNT(C);
DATE_LIMIT:=IF((DATE <= 1991231),1,1);
{一组均线:5、10、20 日以及 60 日指数均线,后面反复引用}
MA_SHORT:=MA(CLOSE,5);
MA_10:=MA(CLOSE,10);
MA_20:=MA(CLOSE,20);
EMA_60:=EMA(CLOSE,60);
{上市不足 100 天用 20 日线,够了再换 60 日线,这是原公式的自适应写法}
TREND_BASE:=IF((LIST_DAYS > 100),EMA_60,MA_20);
MA_DEVI:=((MA_10 - EMA_60) / EMA_60);
LOW_BUY_OK:=((CLOSE / REF(CLOSE,20)) < 1.20);
BIAS_10:=((CLOSE - MA_10) / MA_10);
BIAS_20:=((CLOSE - MA_20) / MA_20);
BIAS_60:=((CLOSE - EMA_60) / EMA_60);
{均价=成交额除以成交量,也就是当天的平均成交价}
AVG_PRICE:=((0.01 * AMOUNT) / vol);
{换手率=成交量除以流通股本,衡量当天筹码换了多少手}
TURN_RATE:=(VOL / CAPITAL*100);
TR_MA5:=MA(TURN_RATE,5);
TR_MA20:=MA(TURN_RATE,20);
TR_EMA60:=EMA(TURN_RATE,60);
BIG_YANG:=((CLOSE / REF(CLOSE,1)) > 1.060);
LIMIT_UP:=(((CLOSE / REF(CLOSE,1)) > 1.099) && (CLOSE = HIGH));
LIMIT_ONE:=(((CLOSE / REF(CLOSE,1)) > 1.099) && (LOW = HIGH));
{冲涨停:盘中摸到涨停价但没封住,收在 6.5% 到 9.9% 之间}
RUSH_UP:=((((((HIGH / REF(CLOSE,1)) > 1.099) || ((CLOSE / REF(CLOSE,1)) > 1.09)) && ((CLOSE / REF(CLOSE,1)) > 1.065)) && ((CLOSE / REF(CLOSE,1)) < 1.0992)) && (CLOSE > AVG_PRICE));
VOL_YANG:=(((((CLOSE / REF(CLOSE,1)) > 1.050) && ((TURN_RATE > REF(TURN_RATE,1)) || (TURN_RATE > MAX(TR_MA5,TR_EMA60)))) && (CLOSE > AVG_PRICE)) && (BIAS_10 < 0.12));
{标志性阳线=涨停、冲涨停、放量长阳三者之一,后面都靠它定位}
KEY_YANG:=((LIMIT_UP || RUSH_UP) || VOL_YANG);
LU_BARS:=BArslAst(KEY_YANG);
AVG_PREV:=REF(AVG_PRICE,LU_BARS);
MA_OK:=((REF(LOW,1) < MAX(REF(MA_10,1),REF(MA_20,1))) && (CLOSE > MA_10));
IDX_CLOSE:=INDEXC;
IDX_DEVI:=((INDEXC - MA(INDEXC,10)) / MA(INDEXC,10));
RS_VAL:=(3 * (BIAS_10 - IDX_DEVI));
RS_OK:=((RS_VAL > 0) || ((RS_VAL > -(0.1)) && (RS_VAL > REF(RS_VAL,1))));
RS_CUM:=SUM(RS_VAL,10);
BAND_N:=10;
BAND_P:=3;
{布林带改成以 BBI 中轴加减 3 倍标准差,宽度直接反映波动收敛程度}
BBI_MID:=((((MA(CLOSE,3) + MA(CLOSE,6)) + MA(CLOSE,12)) + MA(CLOSE,24)) / 4);
BAND_UP:=(BBI_MID + (BAND_P * STD(BBI_MID,BAND_N)));
BAND_DN:=(BBI_MID - (BAND_P * STD(BBI_MID,BAND_N)));
BAND_W:=((BAND_UP - BAND_DN) / 10);
BAND_OK:=(((BAND_W < 0.40) && (LLV(BAND_W,5) < (3 * LLV(BAND_W,100)))) || (BAND_W < 0.20));
DAY_GAIN:=((((CLOSE / REF(CLOSE,1)) > 1.03) && ((CLOSE / REF(CLOSE,1)) < 1.110)) && ((CLOSE / MA_10) < 1.13));
TURN_RAW:=(VOL / CAPITAL);
BIG_N:=MIN(COUNT((VOL / CAPITAL*100),0),30);
BIG_ORDER:=(VOL / CAPITAL*100);
BIG_CUM:=(EMA(BIG_ORDER,BIG_N) * BIG_N);
BIG_MA:=MA(BIG_CUM,10);
BIG_RED:=(((BIG_ORDER > 0.10) && (BIG_ORDER > REF(BIG_ORDER,1))) || ((BIG_ORDER > 0) && (BIG_CUM > BIG_MA)));
BIG_OK:=((BIG_ORDER > 0.50) && ((BIG_ORDER / TURN_RATE) > 0.20));
SHRINK:=(TURN_RATE < MAX(TR_MA5,TR_MA20));
SHRINK_OK:=(COUNT(SHRINK,7) >= 4);
TR_OK:=(((((TURN_RATE > (1.35 * REF(TURN_RATE,1))) && (TURN_RATE < (7 * REF(TURN_RATE,1)))) && (TURN_RATE > 1.5)) && (TURN_RATE > TR_MA5)) && REF(SHRINK_OK,1));
{波段启动=六组条件同时成立,这是整套判断的合流点}
WAVE_START:=(((((MA_OK && TR_OK) && DAY_GAIN) && BIG_RED) && RS_OK) && BAND_OK);
DOUBLE_STRONG:=(0.6 * ((((MA_10 > MA_20) || (MA_10 > REF(MA_10,1))) || (AVG_PRICE > MA_10)) && (RS_VAL > -(0.02))));
STOCK_ACTIVE:=(0.5 * ((((COUNT(BIG_YANG,60) >= 6) || (COUNT(LIMIT_UP,60) >= 2)) || (COUNT((LIMIT_UP || VOL_YANG),30) >= 1)) || (COUNT((RS_VAL > 0.1),120) > 20)));
VOL_UP:=(0.2 * (((((TURN_RATE > MAX(TR_EMA60,TR_MA5)) || (TR_MA5 > TR_EMA60)) || LIMIT_UP) || (COUNT((LIMIT_UP || VOL_YANG),3)=1 && (TURN_RATE > MIN(TR_EMA60,TR_MA5)))) && (((CLOSE > MA_10) || (RS_VAL > 0)) || ((TR_MA5 >= REF(TR_MA5,1)) && (CLOSE > REF(CLOSE,1))))));
ACTIVE_STOCK:=(0.5 * ((VOL_UP || DOUBLE_STRONG) && STOCK_ACTIVE));
{激活=波段启动之后,活跃状态第一次转正的那一刻,也就是买点}
FIRE1:=(((((((LIMIT_UP || VOL_YANG) && ACTIVE_STOCK) && (RS_VAL > 0)) && (BIG_RED || LIMIT_ONE)) && (MA_DEVI < 0.23)) && (BIAS_60 < 0.25)) && LOW_BUY_OK);
FIRE1_BARS:=BARSLAST(FIRE1);
ACTIVE_ZONE:(ACTIVE_STOCK && EVERY(ACTIVE_STOCK,(FIRE1_BARS + 1))),COLORRED;
CNT_ALL:=COUNT(FIRE1,0);
FIRE2:=((FIRE1 && ACTIVE_ZONE) && (COUNT(FIRE1,0) = 1));
FIRE:=(((FIRE1 && ACTIVE_ZONE) && REF((ACTIVE_ZONE <> 1),1)) && (COUNT(FIRE1,0) > 1));
FIRE3:=(((FIRE1 && ACTIVE_ZONE) && REF((ACTIVE_STOCK = 0),1)) && (COUNT(FIRE1,0) <= 1));
START_SIG:IF((COUNT(FIRE1,0) > 1),FIRE,(FIRE2 || (FIRE3 && LOW_BUY_OK))),LINETHICK0;
FIRE_BARS:=BARSLAST(FIRE);
FIRE_AVG:=REF(AVG_PRICE,FIRE_BARS);
FIRE_OPEN:=REF(OPEN,FIRE_BARS);
FIRE_LOW:=REF(LOW,FIRE_BARS);
FIRE_MA:=REF(MA_10,FIRE_BARS);
STOP_LOW:=(FIRE_AVG * 0.95);
ENTRY_LO:=IF((FIRE_OPEN < (FIRE_AVG * 0.98)),MAX(FIRE_LOW,STOP_LOW),STOP_LOW);
ENTRY_HI:=IF(((REF(BIG_ORDER,FIRE_BARS) > 1) && ((REF(BIG_ORDER,FIRE_BARS) / REF(TURN_RATE,FIRE_BARS)) > 0.20)),(FIRE_AVG * 1.03),(FIRE_AVG * 1.02));
PULLBACK:=(0.2 * (((((((HHV(CLOSE,5) / CLOSE) > 1.06) && (HHV(BIAS_10,6) > 0.08)) && (CLOSE > (0.95 * MA_10))) && (CLOSE < (1.09 * MA_10))) && ((LOW / MA_10) < 1.01)) && ACTIVE_ZONE));
WATCH_ZONE:(0.6 * ((((ACTIVE_ZONE && (LOW <= ENTRY_HI)) && ((CLOSE >= ENTRY_LO) || (CLOSE > MA_10))) && (FIRE_BARS <= 6)) && (FIRE_BARS > 0))),LINETHICK0;
WATCH:=(0.3 * (VOL_UP && (RS_VAL > 0)));
STICKLINE(START_SIG,0,2,2,0),COLORYELLOW;
STICKLINE((WATCH_ZONE > 0),0,2,2,0),COLOR9B85E5;
源码,原文一键复制