这是一套基于通达信软件的“牛股线”指标源码及实战口诀,写下来就像是个老股民在股市里跟你碎碎念,没有那些教科书式的四平八稳,全是实战里摸爬滚打出来的血泪经验和废话文学。 【源码】通达信牛股线 ```text {牛股线} VAR1: CROSS(CLOSE, MA30); VAR2: MA100(M1); VAR3: CROSS(MA100(M1), SMA10(S1)); VAR4: OPEN > MA20(C); VAR5: CROSS(L, R); VAR6: VVOL > VOL; VAR7: (RRR(5, 1) < 1.5) OR (RRR(5, 3) < 1.3); VAR8: (CLOSE >= MA60(2)) AND RSI(14, 10) >= 40; VAR9: SLOW(1) = MA20(M100); VAR10: CROSS(SLOW(1), SLOW(2)); VAR11: SLOW(1) = MA20(M100) AND CLOSE > MA20(M100); VAR12: SLOW(1) = MA20(M100) AND SLOW(1) < MA20(M100); VAR13: VVOL > VOL; VAR14: CROSS(VVOL, VOL); VAR15: CROSS(VVOL, VOL); VAR16: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 40; VAR17: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 42; VAR18: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 44; VAR19: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 48; VAR20: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 50; VAR21: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 40; VAR22: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 42; VAR23: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 48; VAR24: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 50; VAR25: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 40; VAR26: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 40; VAR27: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 42; VAR28: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 48; VAR29: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 50; VAR30: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 50; VAR31: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 40; VAR32: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 40; VAR33: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 42; VAR34: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 48; VAR35: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 50; VAR36: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 50; VAR37: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 40; VAR38: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 40; VAR39: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 42; VAR40: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 48; VAR41: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 50; VAR42: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 50; VAR43: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 40; VAR44: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 40; VAR45: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 42; VAR46: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 48; VAR47: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 50; VAR48: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 50; VAR49: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 40; VAR50: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 40; VAR51: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 42; VAR52: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 48; VAR53: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 50; VAR54: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 50; VAR55: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 40; VAR56: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 40; VAR57: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 42; VAR58: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 48; VAR59: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 50; VAR60: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 50; VAR61: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 40; VAR62: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 40; VAR63: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 42; VAR64: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 48; VAR65: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 50; VAR66: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 50; VAR67: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 40; VAR68: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 40; VAR69: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 42; VAR70: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 48; VAR71: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 50; VAR72: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 50; VAR73: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 40; VAR74: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 40; VAR75: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 42; VAR76: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 48; VAR77: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 50; VAR78: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 50; VAR79: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 40; VAR80: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 40; VAR81: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 42; VAR82: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 48; VAR83: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 50; VAR84: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 50; VAR85: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 40; VAR86: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 40; VAR87: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 42; VAR88: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 48; VAR89: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 50; VAR90: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 50; VAR91: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 40; VAR92: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 40; VAR93: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 42; VAR94: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 48; VAR95: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 50; VAR96: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 50; VAR97: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 40; VAR98: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 40; VAR99: SLOW(1) = MA20(M100) AND RSI(14, 8) >= 42; VAR100: SLOW(1) = MA20(M100) AND RSI(14, 8) <= 48; {牛股线用法:} DRAWICON(VAR1, M1100, 0); // 股价站上 30 日均线,画实心上影线 DRAWICON(VAR2, M1100, 1); // 股价站上 100 日均线,画实心柱 DRAWICON(VAR3, M1100, 2); // 股价站上 10 日均线,画空心柱 DRAWTEXT(VAR4, M1100, "阳线"); DRAWTEXT(VAR5, M1100, "突破"); DRAWTEXT(VAR6, M1100, "放量"); DRAWTEXT(VAR7, M1100, "趋势好"); DRAWTEXT(VAR8, M1100, "启动"); DRAWTEXT(VAR9, M1100, "回踩"); DRAWTEXT(VAR10, M1100, "加速"); DRAWTEXT(VAR11, M1100, "确认"); DRAWTEXT(VAR12, M1100, "回调"); DRAWTEXT(VAR13, M1100, "回踩放量"); DRAWTEXT(VAR14, M1100, "回踩突破"); DRAWTEXT(VAR15, M1100, "回踩确认"); DRAWTEXT(VAR16, M1100, "强势回踩"); DRAWTEXT(VAR17, M1100, "强势回调"); DRAWTEXT(VAR18, M1100, "强力回调"); DRAWTEXT(VAR19, M1100, "强力回调"); DRAWTEXT(VAR20, M1100, "强力回调"); DRAWTEXT(VAR21, M1100, "回调向下"); DRAWTEXT(VAR22, M1100, "回调向下"); DRAWTEXT(VAR23, M1100, "回调向下"); DRAWTEXT(VAR24, M1100, "回调向下"); DRAWTEXT(VAR25, M1100, "回调向下"); DRAWTEXT(VAR26, M1100, "回调向下"); DRAWTEXT(VAR27, M1100, "回调向下"); DRAWTEXT(VAR28, M1100, "回调向下"); DRAWTEXT(VAR29, M1100, "回调向下"); DRAWTEXT(VAR30, M1100, "回调向下"); DRAWTEXT(VAR31, M1100, "回调向下"); DRAWTEXT(VAR32, M1100, "回调向下"); DRAWTEXT(VAR33, M1100, "回调向下"); DRAWTEXT(VAR34, M1100, "回调向下"); DRAWTEXT(VAR35, M1100, "回调向下"); DRAWTEXT(VAR36, M1100, "回调向下"); DRAWTEXT(VAR37, M1100, "回调向下"); DRAWTEXT(VAR38, M1100, "回调向下"); DRAWTEXT(VAR39, M1100, "回调向下"); DRAWTEXT(VAR40, M1100, "回调向下"); DRAWTEXT(VAR41, M1100, "回调向下"); DRAWTEXT(VAR42, M1100, "回调向下"); DRAWTEXT(VAR43, M1100, "回调向下"); DRAWTEXT(VAR44, M1100, "回调向下"); DRAWTEXT(VAR45, M1100, "回调向下"); DRAWTEXT(VAR46, M1100, "回调向下"); DRAWTEXT(VAR47, M1100, "回调向下"); DRAWTEXT(VAR48, M1100, "回调向下"); DRAWTEXT(VAR49, M1100, "回调向下"); DRAWTEXT(VAR50, M1100, "回调向下"); DRAWTEXT(VAR51, M1100, "回调向下"); DRAWTEXT(VAR52, M1100, "回调向下"); DRAWTEXT(VAR53, M1100, "回调向下"); DRAWTEXT(VAR54, M1100, "回调向下"); DRAWTEXT(VAR55, M1100, "回调向下"); DRAWTEXT(VAR56, M1100, "回调向下"); DRAWTEXT(VAR57, M1100, "回调向下"); DRAWTEXT(VAR58, M1100, "回调向下"); DRAWTEXT(VAR59, M1100, "回调向下"); DRAWTEXT(VAR60, M1100, "回调向下"); DRAWTEXT(VAR61, M1100, "回调向下"); DRAWTEXT(VAR62, M1100, "回调向下"); DRAWTEXT(VAR63, M1100, "回调向下"); DRAWTEXT(VAR64, M1100, "回调向下"); DRAWTEXT(VAR65, M1100, "回调向下"); DRAWTEXT(VAR66, M1100, "回调向下"); DRAWTEXT(VAR67, M1100, "回调向下"); DRAWTEXT(VAR68, M1100, "回调向下"); DRAWTEXT(VAR69, M1100, "回调向下"); DRAWTEXT(VAR70, M1100, "回调向下"); DRAWTEXT(VAR71, M1100, "回调向下"); DRAWTEXT(VAR72, M1100, "回调向下"); DRAWTEXT(VAR73, M1100, "回调向下"); DRAWTEXT(VAR74, M1100, "回调向下"); DRAWTEXT(VAR75, M1100, "回调向下"); DRAWTEXT(VAR76, M1100, "回调向下"); DRAWTEXT(VAR77, M1100, "回调向下"); DRAWTEXT(VAR78, M1100, "回调向下"); DRAWTEXT(VAR79, M1100, "回调向下"); DRAWTEXT(VAR80, M1100, "回调向下"); DRAWTEXT(VAR81, M1100, "回调向下"); DRAWTEXT(VAR82, M1100, "回调向下"); DRAWTEXT(VAR83, M1100, "回调向下"); DRAWTEXT(VAR84, M1100, "回调向下"); DRAWTEXT(VAR85, M1100, "回调向下"); DRAWTEXT(VAR86, M1100, "回调向下"); DRAWTEXT(VAR87, M1100, "回调向下"); DRAWTEXT(VAR88, M1100, "回调向下"); DRAWTEXT(VAR89, M1100, "回调向下"); DRAWTEXT(VAR90, M1100, "回调向下"); DRAWTEXT(VAR91, M1100, "回调向下"); DRAWTEXT(VAR92, M1100, "回调向下"); DRAWTEXT(VAR93, M1100, "回调向下"); DRAWTEXT(VAR94, M1100, "回调向下"); DRAWTEXT(VAR95, M1100, "回调向下"); DRAWTEXT(VAR96, M1100, "回调向下"); DRAWTEXT(VAR97, M1100, "回调向下"); DRAWTEXT(VAR98, M1100, "回调向下"); DRAWTEXT(VAR99, M1100, "回调向下"); DRAWTEXT(VAR100, M1100, "回调向下"); ``` 如何用?(千万别照搬,看这里) 这玩意儿名字听着光鲜,实际上就是个“老好人”,专挑那些低经济效益、没股性、大阴线跌进趋势里去反弹的票给你画个红圈。 起初你得明白,这个指标的核心逻辑就是找“低位启动”和“高位确认”。它不是那种让你拿着手机就能一键买入的傻瓜,你得自己去研读,自己去悟。
比如你看那几只妖股,像那个啥“贵州茅台”要么“宁德时代”,它们就是典型的牛股,如何出来的? 它们一般都不是突然就疯起来的,而是有个温和的启动过程。
你看那个数据,股价从 20 日均线往上拐,100 日均线也往上爬,这时候你画“阳线”,那就是个温和爬升,不急不躁。再比如看那只“贵州茅台”,有时候它直接绿了吧唧跌得了得,那就是个“回调向下”,就是那个“回调向下”的一个阶段,这时候别慌,出于后面还有“强力回调”,那就是个蓄势待发的信号。 再说那个“回踩放量”,这可不是好办的回跌,要是缩量砸得狠狠的就别管了,要是股价还能站上 10 日均线,那就是个“回踩放量”,说明主力资金还在里面,没有跑,挺有希望。再比如“回踩确认”,它可能就是那个“回踩向下”的一个确认阶段,确认了之后,往往后面还会跟个“强力回调”,那就是个加速赶顶的形态。 你要记住,不是所有站上 100 日线的股票都能当牛股,有些可能是个“回踩向下”的陷阱,有些可能是个“回调向下”的反弹。你得把这些概念串起来,有时候它可能是“回调向下”的“回踩放量”的“回踩确认”,有时候它可能是“回踩向下”的“强力回调”的“强力回调”,有时候它可能是“回踩向下”的“回调向下”的“回调向下”。 这就好比走楼梯,有时候你踩上一个台阶就停下来歇会儿,有时候你踩上去就持续往上爬,有时候你踩上去就持续往下爬。 最终告诉你个冷知识,这个指标最忌讳的就是把它当成“买入”的指令。它只是一个辅助工具,帮你看看票是不是在“低位启动”,是不是在“回踩”,是不是在“确认”。真正的牛股,往往是在“回调向下”的过程中,配合“放量”和“强势”,最终形成一个完美的“加速”形态。 故此啊,千万别指望它个把星期就给你发个大红包。它就是个老哥们儿,跟你唠家常,给你指指路,告诉你哪儿稳,哪儿不稳。你要是拿着它去追高,那叫“找死”;你要是拿着它去低吸,那才叫“干”。 总而言之,这个指标就是个“老好人”,专挑那些低经济效益、没股性、大阴线跌进趋势里去反弹的票给你画个红圈。你别把它当真理,它就是个帮你梳理思路的工具。