1. 先拆设计:这个“三红”到底在表达什么逻辑
做技术分析这么多年,“底部区域怎么找”一直是散户问得最多的问题。趋势没走完就急着抄底,结果买在半山腰;等真正见底了,又因为恐慌不敢上车,最后看着行情拉升干瞪眼。今天分享的这个妙在三红主图底部区域指标,是我用来辅助判断底部的一个顺手工具:先框定低位区间,再等三组“红色信号”同时出现,给出底部提示,源码用通达信公式语言编写,复制就能用。
适合两类朋友:一是不想写复杂代码、只想在通达系或同花顺软件里快速上手一个底部辅助工具的;二是想借这个例子学习主图指标怎么写、信号怎么画、怎么改成选股公式的。我会从头到尾讲清楚每一个条件为什么这么写,不是扔一堆代码就完事。
1.1 “三红”的三个常见流派
关于“三红”,市面上的指标其实有好几种理解方式,先说清楚,免得大家拿到代码后和印象中的版本对不上。
第一种理解:三根均线同时翻红。比如MA5、MA10、MA20三条均线同时拐头向上,且K线站上三条均线,代表短线多头成立。这种思路直观,但用在底部区域容易滞后,因为等到三条均线全部翻红,价格往往已经离开最低点一段距离了。
第二种理解:三个副图指标同时转强。比如MACD、KDJ、RSI同时给出多头信号,属于“多指标共振”的思路。好处是信号比较扎实,坏处是主图指标要实现这逻辑就得内嵌多个副图计算,代码长、运行慢,而且指标之间周期不同,协调起来很麻烦。
第三种理解,也就是我采用的版本:把“三红”定义为三种肉眼最容易识别的红色信号——当日K线收阳、5日均线抬头向上、成交量高于5日均量。三个条件分别对应价格形态、趋势方向和量能配合,彼此独立又互相印证。这个思路的好处是简洁,主图上一眼就能看懂:红K、红均线、红量,三个“红”凑齐了才触发提示。
我看过不少标着“三红”的公式,实际用的都是类似第三种逻辑的变体。为了让代码稳定、容易理解,下面分享的版本就是以第三种为核心,同时把“底部区域”作为前置条件来约束它。
1.2 为什么一定要先框定“底部区域”
只看三红信号不看位置,这个指标在上升趋势中也会频繁触发,那它就和“抄底”没什么关系了。所以必须加一道位置过滤:只在价格处于相对低位的时候,才让三红信号有效。这也是指标名字里“底部区域”五个字的分量所在。
位置过滤分为绝对低位和相对低位两派。绝对低位就是拿现价和历史最低点比,比如“股价低于过去三年的10%分位”,这种写法的问题是忽略了个股基本面和除权因素,容易选出长期阴跌的票。相对低位才是主流做法:用N个交易日的高低点拉出一个区间,再判断当前收盘价落在这个区间的哪个位置。比如60日区间内,价格在下方25%以内,就认为是相对低位区。
为什么不直接用“跌幅超过多少”来判断?因为不同股票的波动率差异很大,有的股波动20%是常态,有的股波动5%就算剧烈,统一按固定百分比就会误判。用N日区间的相对位置,等于给每只股票套用了一把自适应尺子,波动大的范围宽,波动小的范围窄,这是我认为相对低位算法更适合做通用底部指标的原因。
2. 核心源码逐段拆解:看懂每一行的作用
先说清楚,下面的代码是通达信公式语言的完整写法,主图和选股通用。我把它分成三段来讲:底部区域判定、三红条件、主图画线与信号标注。你拿到代码不用改任何东西就能编译,但我建议跟着我的解释过一遍,后面调参你才知道动哪里。
2.1 完整源码(可直接复制)
{===== 妙在三红主图·底部区域指标 =====} N:=60; {底部识别窗口:拉出多长的相对区间} {---- 底部区域判定 ----} HH:=HHV(HIGH,N); LL:=LLV(LOW,N); 低位区:=CLOSE<=LL+(HH-LL)*0.25; {---- 三红条件 ----} 红一:=CLOSE>OPEN; {K线收阳} 红二:=MA(CLOSE,5)>REF(MA(CLOSE,5),1); {5日均线抬头向上} 红三:=VOL>MA(VOL,5); {成交量高于5日均量} {---- 综合信号 ----} 三红齐备:=红一 AND 红二 AND 红三; 底部三红:=低位区 AND 三红齐备; {---- 主图叠加显示 ----} MA5:MA(CLOSE,5),COLORWHITE; MA10:MA(CLOSE,10),COLORYELLOW; MA20:MA(CLOSE,20),COLORMAGENTA; STICKLINE(底部三红,LOW,HIGH,0.5,0),COLORRED; STICKLINE(底部三红,OPEN,CLOSE,3,0),COLORRED; DRAWICON(底部三红,LOW*0.97,1); DRAWTEXT(底部三红,LOW*0.93,'底部'),COLORRED;这段代码保存为“妙在三红底部”之类的名字,可以直接放在主图公式里。后面每次出现满足条件的K线,它的红色实体和影线会加粗,底部位置会画一个图标并写“底部”两个字,一眼就能找到位置。
2.2 底部区域判定是如何算出来的
核心是这一句:
低位区:=CLOSE<=LL+(HH-LL)*0.25;
拆开看:HHV(HIGH,N)取最近N日最高价,LLV(LOW,N)取最近N日最低价,两者相减就是区间振幅。再用最低价加上振幅的25%,得到一个参考压力位。只要收盘价不高于这个压力位,就认定当前处于相对低位区。
举一个具体数字方便理解:某股60日内最低10元、最高20元,区间振幅是10元,25%就是2.5元,那么参考压力位就是12.5元。凡是收盘价在12.5元以下,都算低位区。N越小,这个区间越短,信号反应快但容易晃;N越大,区间越长,信号稳定但滞后明显。
我个人默认用60,理由是对多数日线票来说,60个交易日差不多是一季度行情,能覆盖一段完整的涨跌结构,既不会因为太短而把下跌中继当底部,也不会因为太长而对当前波动失去敏感性。如果你做的是超短线,可以把N缩到20到30;如果做中线波段,拉到120也未尝不可。
这里有个细节值得注意:当股票连续新低时,收盘价会跌破LL,位置条件依然满足。对激进型选手来说这是好事,意味着跌得越狠越接近“极端低位”;对稳健型选手来说,可以在低位区条件里再加一条CLOSE>=LL*0.9,过滤掉连续跌停或基本面崩坏式的极端走势,防止过早接飞刀。
2.3 三红信号与主图画线部分
三个红色条件对应了三个维度的转强,逐个看:
红一CLOSE>OPEN要求当日收阳,阳线本身代表多方在当天的博弈中占优。这里我没用“涨幅大于某个百分比”,因为阴线也可能是低开高走的小阳星,实体虽小但转折意义不弱。
红二MA(CLOSE,5)>REF(MA(CLOSE,5),1)表示5日均线今天的位置比昨天高,也就是短期均线向上抬头。这是整个指标里最重要的趋势过滤,它确保不是随便一根阳线都能触发信号,而是短期重心真正开始抬升。
红三VOL>MA(VOL,5)要求当日成交量大于最近5日均量,表示有资金愿意在低位接筹。底部区域的放量阳线,往往是主力试盘或吃货留下的痕迹;如果地量阴跌后的某天突然放出量来,配合阳线和均线抬头,这就是典型的三红共振。
最后底部三红:=低位区 AND 三红齐备;把位置和三红条件全部叠加,只有四个条件同时成立,才画出信号。画线部分我用STICKLINE给K线加粗,红色实体配合低位区提示,主图上出现“底部”文字标记时,视觉上非常醒目。
3. 从导入到调参:把指标真正用起来
代码有了,接下来就是怎么让它跑起来。这一节我按实际操作流程走,包括新建公式、导入、替换主图,再到参数调整方向,算是保姆级流程了。
3.1 新建公式与导入步骤
以通达信为例,打开软件后按快捷键Ctrl+F调出公式管理器,找到“技术指标公式”下的“其他”或“用户”分组,点击“新建”。公式名称随便写,比如“妙在三红底部”,画线方法必须选“主图叠加”。
然后把上面那段代码完整粘贴到编辑区,点确定。如果语法有错误,软件会提示在第几行附近有问题,常见原因一般是中英文符号混用,只要把输入法切到英文状态重新打一遍分号和括号就行。
回到K线图,输入你刚起的公式名称,比如敲“妙在三红底部”,回车后选择该指标,主图上就已经叠加了均线和底部信号。这里提醒一句:公式名字尽量别带空格和特殊符号,否则快捷键输入时容易匹配不上。
3.2 N值、低位阈值、均线周期的调优思路
这个指标一共就一个显性参数N和隐藏的几个固定值,调参不需要有心理负担。N已经解释了,关键在0.25这个阈值——它控制“多低才算低位”,调大调小直接影响信号频率。
我实测的印象:阈值设在0.25时,大多数股票一年能给出十几次到几十次信号,适合做中短线观察。如果你追求的是“跌得足够深才提示”,可以改成0.15;如果你希望覆盖更多温和回踩的机会,就调到0.35。但阈值超过0.4后,“底部”的含金量明显下降,因为价格已经不算很低了。
红二里的MA周期默认5,也可以改成3或8。周期越短越敏感,但假信号变多;周期越长越平滑,滞后也越明显。我建议动手调参时每次只改一个参数,记录改动前后的信号数量,不要同时动两个参数,否则你根本不知道是哪个改动造成了效果变化。
3.3 升级版:加一道趋势过滤减少假信号
加上趋势过滤,这是实战里最实用的升级。原始版本在强势股的深度回调中表现不错,但在长期下跌趋势里,任何反弹都可能触发信号,随后又继续阴跌。解决方法很简单:要求60日均线不再下行,或价格站在60日均线上方。
{趋势过滤升级版} N:=60; HH:=HHV(HIGH,N); LL:=LLV(LOW,N); 低位区:=CLOSE<=LL+(HH-LL)*0.25; 红一:=CLOSE>OPEN; 红二:=MA(CLOSE,5)>REF(MA(CLOSE,5),1); 红三:=VOL>MA(VOL,5); 三红齐备:=红一 AND 红二 AND 红三; 趋势多:=MA(CLOSE,60)>REF(MA(CLOSE,60),20); {60日均线未走弱} 底部三红:=低位区 AND 三红齐备 AND 趋势多;升级版的含义很直白:不做纯左侧交易,只做“下跌趋势已有扭转迹象”的底部。代价是你会错过一些V形反转的最低点,但换来了更高的信号可靠性。对大多数普通投资者来说,放弃最低点、追求确定性,我认为是更划算的选择。
4. 实战中踩过的坑:常见问题与排查实录
任何指标都是放到实战里检验才会露馅,这一节我把跑图过程中遇到最多的问题列出来,附上成因和解决方向,供你对照排查。
4.1 信号太多或者太少,问题出在哪
信号太多,十有八九是低位区条件太宽。把0.25改成0.15,通常能砍掉一半信号。还有一种情况是股票长期弱势,N日区间被反复跌破,导致低位区长期成立,这时候应该启用趋势过滤版,把“连续阴跌”的个股直接排除。信号太少则相反,一是N太大导致区间跨度太长,价格不容易进入低位区,二是阈值太小,可以调回0.25甚至0.35,三是股票本身处于强势上行通道,30个交易日里收盘价很少跌到区间四分之一的位置,这种情况其实是好事,不必强行等信号。
4.2 为什么底部信号出现在下跌中继
这是我最想强调的坑。很多朋友回测时会发现,某个“底部”出现后股价继续跌了20%,于是骂指标没用。但回头去分析,问题往往出在位置定义:下跌初期价格从高位回落,只要进入N日区间的下沿,就会触发低位区条件,可这时趋势根本没有止跌迹象。升级版里的趋势多就是为了解决这个问题而加的。
另外要明白一点,任何底部指标本质都是概率工具,不可能每次都对。底部区域本身是一个区间,不是一个精确的点,把信号当作“可以开始关注”,而不是“必须立刻满仓”,才是正确的使用姿势。
4.3 如何把主图指标改写成选股或预警公式
主图信号肉眼看到了,但每天翻一遍几千只股票不现实。所以一般我还会把它改写成选股公式,收盘后跑一遍全市场,第二天再人工确认。
方法很简单:把指标末尾的画线和文字输出全部删掉,只保留赋值语句和最后的选股条件,然后新建一个“条件选股公式”,把最终条件放在输出位置即可。
{条件选股公式:底部三红} N:=60; HH:=HHV(HIGH,N); LL:=LLV(LOW,N); 低位区:=CLOSE<=LL+(HH-LL)*0.25; 红一:=CLOSE>OPEN; 红二:=MA(CLOSE,5)>REF(MA(CLOSE,5),1); 红三:=VOL>MA(VOL,5); 三红齐备:=红一 AND 红二 AND 红三; 选股:低位区 AND 三红齐备;用通达信的“条件选股”功能执行一遍,选出来的是当天同时满足位置和三红条件的股票名单。再配合板块、流通市值、基本面手工筛选,能省下大量复盘时间。
5. 指标是尺子,不是提款机
聊了这么多代码细节,最后必须泼盆冷水。三红主图再漂亮,也只是技术分析里的一个辅助尺子,它不能预测未来,更不能替你保证盈利。任何把指标神化的想法,最终都会在市场里被教育。
5.1 三红指标的能力边界
这个指标能帮你解决的,其实只有一件事:把“跌了很久的股票里,哪些开始出现短线转强信号”这件事,用一种可重复、可量化的方式找出来。它的边界在于看不到个股基本面变化、消息面驱动以及市场整体环境。
如果一个股票因为业绩暴雷连续跌停,之后出现三红信号,这个信号大概率是下跌中继而不是底部反转;如果大盘系统性下跌,再好的底部形态也可能被情绪拖累击穿。所以我的习惯是:用三红选出一批观察名单,再叠加基本面、行业景气度、大盘环境做二次过滤,信号的价值是提高筛选效率,不是替代决策。
5.2 我自己的使用纪律
把源码用得久了你就会体会到,指标的真正价值建立在纪律之上。我个人的用法是这样的:三红信号出现后不急着动,把它当作“底部可能正在形成”的第一条线索,次日再看量能是否可以持续,均线是否进一步向上,分批试探式建仓。如果买入后跌破信号K线的最低点,无条件先出来,这说明位置判断失效,重新等下一次信号。
这套纪律比指标本身更重要。底部的博弈玩的是仓位管理和风险控制,哪怕信号错了,你只亏小仓位的一小笔,而一旦抓到大级别的底部反转,前面的试探成本很快就能覆盖回来。我做技术分析十几年,见过太多人死在试图买在绝对最低点上,“妙在三红”这个名字真正的妙处,是提醒你放下执念,在相对底部区域里耐心等待概率偏向自己那一边。