简介:通达信指标公式源码优化《市场心理》和《威廉波段》副图指标.doc 是一份面向股票技术分析者的公式源码文件,聚焦市场情绪与超买超卖两大维度的副图监控。资源将市场心理与威廉波段指标进一步优化,配套风险线与底部线及绘图函数,适合有一定通达信使用基础、希望提升盘面信号识别效率的投资者学习参考。资源包含1个doc文档,压缩包大小为342KB,以源代码、公式注释与绘图逻辑说明为主,便于直接复制到通达信公式编辑器使用。目前已有181人学习下载。文档详细说明了两类指标的算法逻辑:市场心理通过13日收盘价上涨比例量化市场情绪,威廉波段借助34日最高最低价区间刻画买卖力道,并给出高于75、低于25以及高于95、低于5等阈值判断的衍生风险底部分区绘制方法。读者可获得完整的副图公式源码、参数设计思路和可视化展示方案,快速搭建属于自己的市场心理与威廉波段预警副图。 做了这么多年通达信公式,我对网上流传的各种“神指标”基本是半信半疑的态度。尤其是《市场心理》和《威廉波段》这两个副图指标,网上能找到的源码版本非常多,什么“超标优化版”“机构专用版”都有,但拿回来一跑,问题出奇一致:要么信号太密,每个拐点都想抓,导致根本没法定;要么用了带未来函数的写法,复盘时完美得像神,实盘里却永远等不到那个信号。真正把这两个指标的核心逻辑理顺,再去改参数和过滤条件,做出来的版本才谈得上可用。
这篇文章我直接把优化思路和完整源码一起放出来。你能看到每一步改动背后的理由,也会知道哪些函数是雷区、哪些参数该按什么逻辑去调。适合已经会基本操作、但想自己改指标公式的人,也适合刚接触通达信公式、想直接从合格版本起步的新手。
1. 指标优化的目标与整体思路
1.1 网上流传版本的通病
先说通病,这个不吐不快。市面上流传的《市场心理》和《威廉波段》,九成都有下面几个问题。
第一是未来函数。用ZIG、PEAKBARS、TROUGHBARS这类函数写的指标,回看历史图形时信号总出现在最低点、最高点附近,非常漂亮。但未来函数的意思是,计算当前信号时已经参考了后面K线的数据,所以实盘中信号根本无法在当时复现。这种指标拿来复盘只能自欺欺人,没有任何实战价值。
第二是信号泛滥。原版威廉指标如果参数给得小,比如用6、7个周期,在震荡行情里会频繁穿越超买超卖区,一个下午出十几个买点。这类指标本质上只是在描述价格波动,并没有解决“什么位置值得出手”的问题,更谈不上指导交易。
第三是缺少过滤环境。市场心理指标本身衡量情绪温度,但如果没有趋势过滤,情绪从冰点回暖时买进去,结果正好接在下跌中继上,这种体验我想不少人都有过。
1.2 两个指标的互补逻辑
我把两个指标配合使用的逻辑定成一句话:《市场心理》负责判断“当前市场情绪处在什么温度”,《威廉波段》负责回答“在这个温度下要不要动手、动手的位置在哪”。
《市场心理》的原始含义,是用一段时间内的涨跌结构来计量多空情绪。网上常见版本会用全市场涨跌家数的比值来构建,这是大指数层面的思虑,没问题,但在个股副图上直接套用往往会“水土不服”——因为个股的走势经常和大盘情绪并不同步。所以在落地时,我会用个股自身波动的动量占比来构建情绪值,用0到100的刻度来表达“乐观/悲观”。
《威廉波段》则是在经典威廉指标(WMS)基础上做波段化改造。威廉指标本身就衡量当前收盘价在过去N日高低区间里的相对位置,天生适合判断超买超卖。但单周期威廉指标在强趋势里容易钝化,也就是价格持续贴着上沿或下沿运行,指标长时间停在极值不动。把快慢两个周期组合起来,再用趋势状态做过滤,钝化问题就能缓解一大半。
1.3 优化方向总览
这次优化的目标我按优先级排了三条:
- 排雷第一:全面剔除未来函数,保证所有信号在K线收盘时就能计算出来。
- 稳定第二:用平滑类函数减少毛刺,能出信号的位置明显减少但每个信号都有明确的市场含义。
- 实用第三:给指标加上量能确认和趋势过滤,宁可错过一些模糊的机会,也不在不利环境里反复挨打。
2. 核心逻辑拆解与优化要点
2.1 《市场心理》的核心构成与问题
《市场心理》指标最常用的构建方式有两种。一种是基于全市场的上涨家数与下跌家数,比如用上涨家数除以上涨下跌家数之和,得到一个大盘层面的情绪比率;另一种是基于个股自身的涨跌统计,比如统计最近N天里有多少天收阳,然后按比例映射到0到100之间。
两种方式各有优劣。全市场家数模式能反映普涨普跌的大情绪,但它与个股的拟合度很差,常常出现大盘情绪火热、你的持仓股却萎靡不振的背离。个股涨跌占比模式贴近个股走势,但直接使用原始占比,曲线毛刺很厉害,信号切换过于频繁。
这次优化我选择“个股动量情绪”为主视角,用平滑过的上涨动量占比来定义心理值,再补一条短期均线识别情绪拐点。为了让极端状态更直观,我加了三个参考线:75为过热、25为过冷、50为情绪中轴。配合红绿柱状显示心理值与其平滑线的位置关系,一眼就能看出当前情绪是在升温还是降温。
2.2 《威廉波段》的核心构成与问题
威廉指标的经典公式是:
WR = (HHV(HIGH,N) - CLOSE) / (HHV(HIGH,N) - LLV(LOW,N)) * 100
它的取值在0到100之间,数值越高,说明收盘价离过去N日最高价越远,越接近区间底部,属于超卖区;数值越低,说明收盘价越贴近区间顶部,属于超买区。
网上流传的《威廉波段》大多是单周期威廉指标加一个简单的买卖提示,比如“上穿20买、下穿80卖”。问题在哪?单周期威廉对参数极其敏感,参数小,假信号多;参数大,反应迟钝。而且在强趋势中,WR数值会长时间锁在极值区,超买之后还有超买,超卖之后还有超卖,单纯按阈值操作会被反复打脸。
优化方案是双周期组合:快线负责捕捉短周期拐点,慢线负责确认波段方向。与常规通达信指标一个方向使用习惯保持一致的技巧是把WR做一次翻转,也就是用100减去WR值,这样数值意义就反过来了——高位代表超买热区,低位代表超卖冷区,这样一来和KDJ一类指标的阅读习惯统一了,快线上穿慢线就是短线转强的金叉,下穿就是转弱的死叉,不用再绕弯子理解。
2.3 从源码里剔除未来函数
很多人不太理解为什么源码里不能带未来函数。我打个比方:未来函数等于考试时提前翻到了答案,考完试当然觉得考得好,但真到考场上是拿不到这页答案的。实际运行中,未来函数会让指标“看到”后面几天才能确定的价格,于是历史信号全部准确得离谱,但实盘信号根本不会在当下出现。
这次两段源码我逐个函数做过排查,只用了HHV、LLV、MA、SMA、MAX、ABS、REF、CROSS这一批基于历史数据就能确定结果的函数。你拿到源码后也可以用同样的标准自查:只要看到ZIG、BACKSET、PEAKBARS、TROUGHBARS、未来数据相关的绘图函数,就要考虑替换或放弃。
3. 优化版完整源码与安装方法
3.1 《市场心理》优化版源码
下面的代码是完整副图公式,新建一个副图指标后整体粘贴进去就能用。
{市场心理 优化版} N:=10; M:=5; 波动:=SMA(MAX(CLOSE-REF(CLOSE,1),0),N,1); 振幅:=SMA(ABS(CLOSE-REF(CLOSE,1)),N,1); 心理值:=100*波动/(振幅+0.0001); 平滑线:=MA(心理值,M); 50轴:50,COLORGRAY,POINTDOT; 75轴:75,COLORRED,POINTDOT; 25轴:25,COLORGREEN,POINTDOT; 心理温度:心理值,COLORWHITE; 温度平滑:平滑线,COLORYELLOW; STICKLINE(心理值>平滑线,心理值,平滑线,2,0),COLORRED; STICKLINE(心理值<=平滑线,心理值,平滑线,2,0),COLORGREEN; DRAWICON(CROSS(心理值,平滑线) AND 心理值<30,心理值,1); DRAWICON(CROSS(平滑线,心理值) AND 心理值>70,心理值,2); DRAWTEXT(心理值>75 AND REF(心理值,1)<=75,80,'过热'),COLORRED; DRAWTEXT(心理值<25 AND REF(心理值,1)>=25,20,'过冷'),COLORGREEN;这段代码的核心逻辑在“波动”和“振幅”这两个变量上。波动统计的是每日上涨力度的平滑值,振幅统计的是每日波动总幅度的平滑值,两者相除再乘100,得到的是“上涨动量在总波动中的占比”。数值高于50说明多方向上的动能占优,低于50说明空头方向占优。
毛刺问题由SMA函数的平滑属性天然压制,再加一条5周期均线做二次平滑,这样交叉信号就稳定多了。当心理值从冷区上穿平滑线,图标会给到低位拐点提示;当心理值冲过75后开始回落,我额外标出“过热”,提醒该注意风险。
3.2 《威廉波段》优化版源码
同样是一个完整副图公式,可以单独使用,也可以和上面的《市场心理》放在同一屏对比看。
{威廉波段 优化版} N1:=13; N2:=34; WR1:=(HHV(HIGH,N1)-CLOSE)/(HHV(HIGH,N1)-LLV(LOW,N1)+0.0001)*100; WR2:=(HHV(HIGH,N2)-CLOSE)/(HHV(HIGH,N2)-LLV(LOW,N2)+0.0001)*100; 快线:=100-WR1; 慢线:=100-WR2; 多头:=CLOSE>MA(CLOSE,20); 空头:=CLOSE<MA(CLOSE,20); 量能确认:=VOL>MA(VOL,5)*1.1; 买入:=CROSS(快线,慢线) AND 多头 AND 慢线<45 AND 量能确认; 卖出:=CROSS(慢线,快线) AND (空头 OR 慢线>55); 快线K:快线,COLORWHITE; 慢线D:慢线,COLORYELLOW; 超买:80,COLORRED,POINTDOT; 超卖:20,COLORGREEN,POINTDOT; DRAWICON(买入,快线,1); DRAWICON(卖出,快线,2); DRAWTEXT(买入,快线,'买'),COLORRED; DRAWTEXT(卖出,快线,'卖'),COLORGREEN;买入条件的取舍很关键。金叉只是动量翻转的初步信号,要再满足三个附加条件:一是股价站上20日均线,说明大环境不至于太差;二是慢线低于45,也就是买入位置不在已经冲得很高的区域;三是放量确认,成交量至少达到5日均量的1.1倍。四个条件同时成立才给买点,信号数量会直线下降,但质量明显提升。
卖出条件也做了类似的限制:只有死叉发生在空头环境,或者发生在慢线大于55的高位区域时,才给出卖点提示。这样设计的好处是,多头趋势里的普通回调不会被误判成卖出信号,大幅减少了洗盘出局的概率。
3.3 导入通达信的完整步骤
拿到源码之后,导入步骤并不复杂,我说一下我自己的标准操作路径。
第一步,打开通达信软件,在键盘上按Ctrl+F进入公式管理器。第二步,选择“副图指标”分类,点击“新建”按钮。第三步,在公式编辑界面里填写公式名称,这里给两个建议名称:市场心理可以叫SCXL,威廉波段可以叫WLBD,尽量用英文字母命名,避免以后在不同版本间传输时出现中文名乱码问题。第四步,把对应的源码粘贴到编辑区域,点击“确定”保存。第五步,回到K线图界面,直接输入SCXL或WLBD,按回车就能在副图区域看到指标。
一个重要细节:粘贴时一定要在纯文本状态下操作,把Word文档或其他地方复制的源码先粘到记事本里过一遍,再复制到公式编辑器。很多人在这一步报错,并不是公式本身有问题,而是从doc文件复制时带进了全角括号、中文冒号和智能引号,这类字符在通达信公式编辑器里全是非法字符,一保存就报错。
4. 参数调整建议与常见问题排查
4.1 参数如何按品种和周期微调
指标默认参数适合日线级别、流动性中等的常规个股,但不同股票波动特性差异很大,参数不能死用。
| 场景 | N1参数设置 | N2参数设置 | 效果 |
|---|---|---|---|
| 短线超跌反弹 | 8 | 21 | 信号更灵敏,适合活跃题材股 |
| 日线标准波段 | 13 | 34 | 默认参数,适用大多数情况 |
| 周线级别中线 | 21 | 55 | 信号少,主要抓大波段 |
小型股波动剧烈,N1设8更容易捕捉短周期拐点;大型蓝筹走势相对平滑,N1设21反而更合适,信号钝一点但稳定。核心原则是N1和N2之间保持大约2到3倍的关系,这样快慢线之间的节奏差能更接近合理区间。
《市场心理》的两个参数同样可以微调。N默认10,代表情绪统计周期,想突出短线情绪变化就改成5,想让曲线更平滑就改到20;M默认5,控制平滑线灵敏度,一般维持在3到8之间就够了。
处理完参数,可以顺手把“量能确认”这一项做下调整。如果个股经常出现缩量上涨,可以放宽为VOL > MA(VOL,5) * 1.05,甚至直接去掉。但去掉过滤条件后买卖信号会多一些,需要自己在回测里确认能不能接受。
4.2 实战中常见的五个问题
我在调试这个组合指标的过程中踩过不少坑,直接整理成表格,方便按图索骥。
| 问题现象 | 大概率原因 | 解决办法 |
|---|---|---|
| 指标画出来是一条直线 | 数据不足或参数过大 | 检查股票上市天数是否远小于参数周期,适当调小N |
| 粘贴源码后保存报错 | 全角括号、中文标点被带进编辑器 | 先粘到记事本转成纯文本,再复制进公式管理器 |
| 信号非常多、没有参考价值 | 过滤条件被删掉了 | 恢复多头条件和量能确认,调大N1/N2 |
| 历史信号完美但实盘抓不住 | 源码里存在未来函数 | 检查ZIG、BACKSET、PEAKBARS等函数,一律移除 |
| 副图和主图价格对不上 | 误用主图公式类型 | 新建时确认选择的是“副图指标”,不是“技术指标” |
如果拿到的是加密指标,连源码都看不到,就没有必要花时间去“解锁”了。加密公式在通达信里没有正规查看途径,真正的解决思路是自己理解指标逻辑之后重新写一个等价版本。市面上那些声称能解密或破解的第三方工具,本身就存在很大的安全隐患,没必要为了一个指标去冒这个风险。
4.3 两个指标怎么配合使用才算真正优化
单独看任何一个指标都只是“工具”,配合起来才是完整决策链。我自己的使用顺序是这样的:每个交易日收盘后先看《市场心理》的温度值,如果心理值在25以下且刚刚向上拐头,说明市场情绪处在冷区修复的早期阶段;然后切到《威廉波段》,如果此时出现买入信号,两个指标形成共振,这才进入重点关注名单。
反过来,当《市场心理》冲到75以上并出现“过热”提示,同时《威廉波段》在80上方出现向下死叉,那就要警惕情绪和价格在高位同时转弱,这种位置控制仓位比寻找买点重要得多。还有一类情况值得关注:心理值还趴在低位,但股价已经不再创新低,属于情绪和价格的背离,这种位置往往是中长线观察资金分批介入的时间窗口。
共振的价值在于,它把两个维度的判断叠加在了一起。情绪位置解决的是“值不值得参与”,波段信号解决的是“当前是不是好的参与点”,两个条件同时满足时才动手,整体交易的确定性会高不少。
我把这套指标用下来最大的体会是:真正有效的优化不是让指标变得更灵敏,而是让它学会“闭嘴”。信号少一点,你才会认真对待每一次提示。任何指标都只是交易体系中的一个环节,配合仓位管理和止损纪律才能真正发挥作用。最后再提醒一句,源码里的参数都是基于我个人习惯调整过的,你拿到之后最好针对自己常做的几只股票重新做一轮参数验证,适合自己节奏的版本才留得住。
本文还有配套的精品资源,点击获取