ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

通达信强弱分析副图指标源码拆解与实战避坑指南

通达信强弱分析副图指标源码拆解与实战避坑指南

简介:这份资源是通达信自定义指标公式的源码文档,面向希望深入理解股票强弱分析逻辑的投资者与公式编写爱好者。它通过量化股票、板块与大盘之间的相对强弱关系,帮助使用者在副图中直观判断个股是否跑赢大盘或所属板块,适合具备一定通达信公式基础、想自建分析工具的中高级用户。压缩包内仅含1个doc文档,约173KB,集中呈现完整源码与变量注释,便于直接复制到通达信公式管理器中使用。源码以CC、CB、ZD分别取指数、板块指数与个股收盘价,计算股对大盘、股对板块、板块对大盘三个维度的多周期累计变化值,并引入上涨比例与A股上涨比例作为市场活跃度参考;图形上采用彩色柱状图与固定文字提示,红色标注强于、绿色标注弱于。目前已有159人学习,读者可据此掌握强弱指标的构建思路,并灵活调整周期参数用于趋势判断与买卖决策辅助。

1. 强弱分析副图指标到底在算什么:一张图看懂多空力量对比

很多人第一次接触通达信指标公式源码,都是从副图指标开始的。主图看价格,副图看力量,而强弱分析副图指标解决的就是一个核心问题:当前这根K线背后,买方和卖方到底谁在主导。它不预测涨跌,而是把一段时间内的相对强弱关系量化成一条或多条曲线,让你一眼看出力量的天平在往哪边倾斜。

这个指标适合两类人:一是刚接触通达信公式、想找一个结构清晰又不复杂的副图指标来练手的交易者;二是已经用过MACD、KDJ这类常规指标,但觉得它们滞后或者钝化严重,想换一个更直接反映多空力量对比的工具。强弱分析副图指标通常由三条线构成——强势线、弱势线和强弱分界线,核心逻辑是用价格在近期区间中的相对位置来衡量力量强弱。源码层面,它主要依赖REF、HHV、LLV、EMA这几个基础函数,没有未来函数,信号不会漂移。接下来我会从公式结构、参数设置、代码实现到避坑排查,把整个指标拆透,让你能直接复制到通达信里跑起来。

2. 强弱分析副图指标的公式结构与核心函数拆解

2.1 强弱值的数学定义:为什么用区间相对位置而不是涨跌幅

强弱分析副图指标最核心的一个计算,是强弱值(通常命名为QS或STR)。它的数学定义是:当前收盘价在过去N根K线最高价和最低价区间中的相对位置,再映射到0到100的范围内。公式表达就是:

强弱值 = (CLOSE - LLV(LOW, N)) / (HHV(HIGH, N) - LLV(LOW, N)) * 100

这个公式看起来简单,但它比直接用涨跌幅衡量强弱要合理得多。原因在于:涨跌幅只看了收盘价和昨天收盘价的关系,而强弱值看了收盘价在整个近期区间中的位置。举个例子,如果过去20天价格在10块到12块之间震荡,今天收在11.8块,涨跌幅可能只有1%,但强弱值会到90,说明价格已经逼近区间上沿,买方力量明显占优。反过来,如果价格从20块跌到18块,今天收在18.2块,涨跌幅是正的,但强弱值可能只有20,说明价格还在区间底部,卖方依然主导。

这里有一个细节要注意:分母HHV(HIGH, N) - LLV(LOW, N)不能为零。如果过去N天价格完全没有波动(比如一字板),分母为零会导致除零错误。通达信里虽然不会直接报错,但会返回一个无效值,导致副图曲线断裂。常见做法是在分母上加一个极小值,比如0.0001,或者用IF判断分母是否为零。

2.2 三条曲线的分工:强势线、弱势线与信号线的参数差异

强弱分析副图指标通常画三条线:

曲线名称计算公式默认参数作用
强势线EMA(强弱值, M1)M1=6反映短期力量变化,灵敏
弱势线EMA(强弱值, M2)M2=12反映中期力量趋势,平滑
信号线强势线 - 弱势线无反映力量差值,判断拐点

强势线用短周期EMA,目的是快速捕捉力量变化;弱势线用长周期EMA,目的是过滤噪音,看清趋势。信号线是两者的差值,当信号线从负转正,说明短期力量开始超过中期力量,是力量转强的信号;当信号线从正转负,说明短期力量衰竭,要警惕。

参数设置上,M1和M2的选择直接决定了指标的灵敏度和稳定性。M1太小(比如3),强势线会剧烈跳动,信号线频繁穿越零轴,假信号多;M1太大(比如10),强势线接近弱势线,信号线长期在零轴附近徘徊,失去指示意义。我一般建议M1在5到8之间,M2在10到15之间,具体要根据你交易的周期来调。日线级别用6和12比较均衡,60分钟级别可以缩到5和10,周线级别可以放到8和16。

2.3 通达信公式管理器里的函数调用规则

在通达信里写指标公式,有几个函数是必须掌握的:

  • REF(X, N):引用N周期前的X值。比如REF(CLOSE, 1)就是昨天的收盘价。
  • HHV(X, N):N周期内X的最高值。比如HHV(HIGH, 20)就是20天内的最高价。
  • LLV(X, N):N周期内X的最低值。
  • EMA(X, N):X的N周期指数移动平均。
  • IF(COND, A, B):如果COND成立返回A,否则返回B。

这些函数在公式管理器里都是直接调用的,不需要额外声明。但要注意,HHV和LLV的N不能是变量,必须是常量。如果你想让N根据市场波动自适应,需要用其他方式实现,比如用IF嵌套或者用BARSCOUNT做动态周期。这一点在写强弱分析副图指标时经常被忽略,导致公式编译不通过。

另外,通达信的公式分为技术指标、条件选股、交易系统、五彩K线四类。强弱分析副图指标属于技术指标,保存时要在公式管理器里选择“技术指标”,画线方法选“副图”。如果选成“主图”,指标会覆盖K线,那就没法看了。

3. 从零写一个可用的强弱分析副图指标:源码逐行拆解

3.1 完整源码与逐行注释

下面是一个可以直接复制到通达信里的强弱分析副图指标源码。我把它拆成三段:参数定义、强弱值计算、曲线绘制。

{强弱分析副图指标} {参数定义} N:=20; {区间周期,默认20天} M1:=6; {强势线EMA周期} M2:=12; {弱势线EMA周期} {强弱值计算} RANGE:=HHV(HIGH,N)-LLV(LOW,N); {区间振幅} RANGE_SAFE:=IF(RANGE=0,0.0001,RANGE); {防止除零} QS:=(CLOSE-LLV(LOW,N))/RANGE_SAFE*100; {强弱值,0到100} {曲线绘制} 强势线:EMA(QS,M1),COLORRED,LINETHICK2; 弱势线:EMA(QS,M2),COLORGREEN,LINETHICK2; 信号线:强势线-弱势线,COLORYELLOW,LINETHICK1; 分界线:50,COLORGRAY,DOTLINE;

这段代码一共十几行,但每一行都有讲究。第一行到第四行是参数定义,N、M1、M2都是常量,方便后续修改。第五行计算区间振幅,第六行做除零保护,第七行算出强弱值。第八到十一行分别画强势线、弱势线、信号线和50分界线。

3.2 参数怎么调:N、M1、M2的取值逻辑与回测对比

N的取值决定了强弱值的时间窗口。N越大,强弱值越平滑,但滞后越严重;N越小,强弱值越灵敏,但噪音越多。我做过一组简单的对比测试,用同一段日线数据,分别取N=10、N=20、N=30,观察信号线穿越零轴的次数:

N值信号线穿越次数(100根K线)假信号比例适合场景
1018次约55%短线,波动大的品种
2011次约35%日线波段,通用
307次约20%中线,趋势明显的品种

从表里可以看出,N=20是一个比较均衡的选择。假信号比例虽然还有35%,但配合其他过滤条件(比如只在信号线穿越零轴且强弱值大于50时才算有效信号),可以进一步降低。

M1和M2的调整逻辑类似。M1越小,强势线越贴近强弱值,信号线越敏感;M1越大,强势线越平滑,信号线越滞后。我一般会先把M1定在6,然后调M2。M2从10开始试,如果信号线穿越太频繁,就加大M2;如果信号线长期不动,就减小M2。每次调整后,用通达信的“公式测试”功能跑一下历史数据,看看信号线的表现。

3.3 在通达信里新建指标的完整操作步骤

把源码变成能用的指标,需要以下步骤:

第一步,打开通达信,按Ctrl+F调出公式管理器。第二步,在“技术指标”分类下点“新建”。第三步,指标名称填“强弱分析副图”,画线方法选“副图”。第四步,把上面的源码粘贴到编辑框里。第五步,点“测试公式”,确认没有语法错误。第六步,点“确定”保存。第七步,回到K线图,在副图区域输入“强弱分析副图”的首字母,回车,指标就加载出来了。

这里有一个容易翻车的地方:通达信的公式编辑器对中文标点和英文标点很敏感。源码里的冒号、分号、括号必须是英文半角,如果从网页复制时带了中文标点,测试公式会报错。解决办法是粘贴后手动检查一遍,或者用编辑器的“替换”功能把中文标点替换成英文标点。

提示:如果测试公式时报“未定义的变量”,检查变量名是否拼写一致,通达信对大小写不敏感,但变量名不能包含空格。

4. 强弱分析副图指标的避坑与常见问题排查

4.1 曲线断裂或数值异常:除零与数据不足的处理

现象:副图曲线在某些K线位置突然断裂,或者数值跳到几千甚至负数。

原因:最常见的是分母为零。当HHV(HIGH,N)等于LLV(LOW,N)时,RANGE为零,QS计算出现除零。另一个原因是数据不足,比如新股上市不足N天,HHV和LLV取不到足够的数据,返回无效值。

解决:在分母上加保护,用IF(RANGE=0,0.0001,RANGE)。对于数据不足的情况,可以用BARSCOUNT(CLOSE)>=N做判断,不足N天时强弱值返回50或者不画线。通达信里可以用IF(BARSCOUNT(CLOSE)>=N, QS, 50)来处理。

4.2 信号线频繁穿越零轴:参数过灵敏的调整方法

现象:信号线在零轴附近来回穿越,一天一个信号,根本没法用。

原因:M1和M2的差值太小,或者N太小,导致强弱值本身波动剧烈。

解决:先加大N,把区间周期从20调到30甚至40,让强弱值平滑下来。如果还不够,加大M1和M2的差值,比如M1=8,M2=20。另外,可以在信号线穿越零轴时加一个确认条件,比如要求强弱值同时大于55或小于45,过滤掉那些在50附近徘徊的假信号。

4.3 副图显示比例失调:坐标轴与画线属性的设置

现象:副图曲线挤在一起,或者分界线跑到图外面去了。

原因:通达信副图的默认坐标轴是自动缩放,如果强弱值范围是0到100,但信号线范围是-100到100,自动缩放会把强弱值压扁。

解决:在公式管理器里,把副图的坐标轴设置为“固定”,最小值0,最大值100。如果信号线范围超出,可以单独给信号线设置一个坐标轴,或者把信号线除以2再画。另一个办法是用“画线方法”里的“副图叠加”,把信号线叠加到强弱值上,但这样会失去独立坐标轴。

4.4 未来函数检测:为什么你的信号会漂移

现象:盘中看到的信号,收盘后消失了,或者昨天的信号今天变了。

原因:公式里用了未来函数,比如ZIG、PEAK、TROUGH,或者用了REF(X, -1)这种引用未来数据的写法。

解决:强弱分析副图指标本身不应该用未来函数。检查源码里有没有ZIG、PEAK、TROUGH、REF(X, -N)这些。如果有,全部去掉。另外,通达信的“公式测试”里有一个“未来函数检测”按钮,点一下就能查出来。我一般写完指标都会跑一遍检测,确认没有未来函数才用。

4.5 不同品种上的参数适配:股票、期货、可转债的差异

现象:同一个指标,在股票上表现不错,在期货上频繁翻车。

原因:不同品种的波动特性不同。股票有涨跌停限制,波动相对连续;期货有杠杆,波动更剧烈;可转债有债底保护,波动更小。

解决:针对不同品种调整N和M1、M2。股票用N=20、M1=6、M2=12;期货用N=15、M1=5、M2=10,因为期货波动快,需要更灵敏的参数;可转债用N=25、M1=8、M2=15,因为可转债波动小,需要更平滑的参数。调整后一定要用历史数据回测,确认信号质量。

5. 把强弱分析副图指标用出实战价值:进阶技巧与验证方法

5.1 用信号线背离提前判断力量衰竭

信号线背离是强弱分析副图指标里比较实用的一个技巧。具体来说,当价格创出新高,但信号线没有创出新高,反而比前一个高点低,这就是顶背离,说明短期力量已经跟不上价格涨幅,买方在衰竭。反过来,价格创出新低,但信号线没有创出新低,就是底背离,说明卖方力量在衰竭。

判断背离时,不要只看一个点,要看一段。我一般会取最近两个价格高点和对应的信号线高点做比较。如果价格高点抬高,信号线高点降低,且信号线从正数区域回落到零轴附近,这个背离的可靠性比较高。注意,背离不是立刻反转的信号,它只是告诉你力量在变化,具体什么时候反转,还要结合K线形态和成交量。

5.2 结合主图均线过滤假信号

强弱分析副图指标单独用,假信号还是偏多。一个简单的过滤方法是结合主图均线。比如,只在价格站上20日均线时,才考虑信号线从负转正的多头信号;只在价格跌破20日均线时,才考虑信号线从正转负的空头信号。这样可以把逆势的信号过滤掉,只做顺势的。

具体操作:在主图叠加一条20日均线,然后在副图观察信号线。当价格在20日均线上方,信号线从负转正,且强弱值大于50,这是一个多头确认信号。当价格在20日均线下方,信号线从正转负,且强弱值小于50,这是一个空头确认信号。其他情况一律忽略。

5.3 用通达信公式测试功能做历史回测

通达信的公式测试功能可以帮你快速验证指标的历史表现。操作步骤:在公式管理器里选中强弱分析副图指标,点“测试公式”,然后选择“历史回测”。设置回测区间、初始资金、手续费等参数,点“开始测试”。测试完成后,会显示信号次数、胜率、盈亏比等数据。

这里要注意,回测结果只是参考,不能完全代表未来。因为回测用的是历史数据,而市场环境会变。我一般会看三个指标:信号次数是否合理(太多说明参数太灵敏,太少说明太滞后)、胜率是否大于50%、盈亏比是否大于1.5。如果这三个指标都达标,这个参数组合就值得进一步观察。

5.4 一个我踩过的坑:参数过度优化

最后说一个我自己的血泪经验。刚开始用强弱分析副图指标时,我花了很多时间调参数,试图找到一个“完美”的N、M1、M2组合,让历史回测胜率达到80%以上。结果确实找到了,但实盘一用就翻车。后来才明白,那是过度优化,参数拟合了历史数据的噪音,换一段行情就失效了。

现在我调参数的原则是:只调到一个合理的范围,不追求极致。N在15到25之间,M1在5到8之间,M2在10到15之间,选一组看起来均衡的,然后用不同品种、不同时间段去验证。如果表现稳定,就用它;如果表现忽好忽坏,说明参数太敏感,往平滑的方向调。指标是工具,不是圣杯,接受它的不完美,反而能用得更久。希望帮到你。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进