你想表达的条件是「成交比前几天明显放大」,写出来却只有 VOL>REF(VOL,1) 这一句。通达信成交量选股公式最容易出问题的地方就在这里:条件成立的日子确实变多了,可多出来的那些并不符合原先的想法,自然语言到源码的那一步把条件翻译得太粗了。

下面按「先分清公式类型,再选表达方式,再定参数,最后核对结果」的顺序讲清楚通达信成交量选股公式怎么写。文中的菜单项与函数名以通达信金融终端个人版为准,券商定制版的界面项名称可能有差异。全文只讲条件的表达方式与验证方法,不涉及任何标的的判断,也不给出方向性结论。

一、先分清条件公式与指标公式

通达信里的公式分成两类出口。指标公式输出一条或多条数值序列,挂在主图或副图上显示,用来观察;条件公式输出 0 或 1 的取值,供条件选股功能筛选用,用来判断。

这个区别决定了源码的写法。指标公式里可以保留中间变量并让它们显示出来,条件公式则必须收敛到最后一个取值上。把一段副图指标直接丢给条件选股功能,会直接提示公式类型不匹配,或者条件恒成立。

识别办法看公式管理器里的分支目录:技术指标分支下的公式不会出现在条件选股的公式列表里,条件选股分支下的公式也不会出现在副图挂载的列表里。写完一段源码之后先确认保存到了哪个分支,比事后排查省时间。

项目 指标公式 条件公式
输出 一条或多条数值序列 单个成立与不成立的判断
入口 公式管理器 → 技术指标 公式管理器 → 条件选股
结尾写法 变量名加冒号,输出到副图 变量名加冒号,但取值收敛到 0 或 1

二、量能条件有三种表达方式

把「量能放大」这类描述落成源码,可用的表达方式有三类。三类算的不是同一个东西,混用会让条件变得无法核对。

  • 与自身历史比。用当日成交量除以过去若干日的平均成交量,得到倍数。这一类回答的是「比自己的平常水平大多少」。
  • 与价格配合比。用成交量与当日价格变动的方向组合,得到量价配合的判断。这一类回答的是「放量的同时价格往哪边动」。
  • 占总量比。用当日成交量占同期总成交量的比例,得到相对份额。这一类回答的是「在这段时间的成交里占多大分量」。

三类里第一类最容易核对,因为它只需要成交量和它的历史值,不引入第二个字段。条件写得越少依赖,出错时定位越快。

三、把自然语言翻成源码

以第一类为例,把「比过去 5 日均量放大 1.5 倍以上」翻译成源码,写出来是这样。

{ 条件:当日成交量超过过去 5 日均量的 1.5 倍 }
N: 5 (1, 250, 1)
R: 1.5 (0.5, 10, 0.1)
均量:=MA(REF(VOL,1),N);
放量:VOL>均量*R;

这段源码里有两处容易写错的地方。一是分母取的是 REF(VOL,1) 而不是 VOL:把当日成交量算进均量里,放大的倍数会被自己稀释,条件变得偏松。二是结尾用 > 做比较,输出的就是 0 或 1,可以直接给条件选股功能使用。

写条件公式时,建议先把中间量单独输出成指标公式,挂在副图上看一眼数值分布,确认口径符合预期之后,再把结尾改成比较表达式。这一步比直接写成条件公式更容易发现问题。

四、参数与阈值怎么定

两个参数里,N 决定基准的平滑程度,R 决定门槛高低。二者不独立:把 N 调大,均量曲线变平滑,同样的 R 会筛出更多日子;把 R 调高,筛出的日子变少,但减少的是哪些日子取决于 N。

还有一个与参数无关的变量是复权口径。前复权与不复权下,同一根 K 线的成交量数值本身不变,但与之配合的价格条件会变;若通达信成交量选股公式里同时用了价格与量能,两种复权设置下的结果会不同。核对前把复权设置固定下来,并在记录里写明用的是哪一种。

定参数的办法是先固定一个,再调另一个,并且每次都把筛出的日子数记下来。两个参数同时改,结果变化时就分不清是哪一个造成的。这个过程在公式管理器的参数栏完成,改完保存、回到条件选股界面重新执行即可。

调整方式 效果 要注意的副作用
N 调大 基准更平滑,条件更容易成立 对单日的突然放量不敏感
N 调小 基准贴近近期,条件更严格 前一日异常值会主导基准
R 调高 筛出的日子变少 门槛过高时结果为空,不代表没有放量

五、四类情况会让条件失真

条件写对了,结果仍然可能与预期不符。下面四类是核对时应当逐个排除的。

情况 表现 核对办法
本地数据起点不足 图表左端若干位置无结果 把数据起点与结果为空的位置对照
复权设置不一致 同一条件在不同复权口径下结果不同 固定复权设置后重跑一次
分母含当日数据 条件长期偏松,成立次数异常多 检查均量里是否用了当日成交量
停牌与半日交易 个别位置的成交量与常态不同 对照当日实际成交时间

第三项是在通达信成交量选股公式里出现次数最多的一类写法问题,且不会报错。判断办法很简单:把均量单独输出成一条副图曲线,看它是否在当日放量时跟着一起抬高。跟着抬高,说明分母里混进了当日数据。

还有一类情况属于条件本身的局限,不是写法问题:成交量放大可以来自多种原因,公式无法区分。条件筛选得到的是一批符合量能条件的对象,而不是一批具有相同性质的对象。把筛选结果当作后续观察的起点是合理的,把它当作结论则超出了公式能回答的范围。

六、用条件选股功能核对结果

通达信的条件选股功能在公式管理器之外的另一个入口,菜单路径为「功能 → 选股器 → 条件选股」。选好公式与周期、指定数据范围后执行,结果会列在选股结果窗口里。

核对时用两个动作。第一个是把条件中的阈值改成极端值:把 R 改到远高于常态,结果应当为空;把 R 改到远低于常态,结果应当覆盖大范围对象。若极端取值下结果不变,说明条件没有真正参与判断。第二个是把参数组合记下来,换个时间点重跑一次,结果应当一致;不一致时先检查复权设置与数据是否发生过更新。

七、动手前的检查清单

写通达信成交量选股公式之前,按下面五项对一遍,能省掉一轮返工。

  • 公式类型选的是条件选股,不是技术指标;
  • 均量的分母用的是 REF(VOL,1),不含当日成交量;
  • N 与 R 都声明在参数表里,没有写死在源码中;
  • 结尾是 > 这类比较表达式,输出收敛到 0 或 1;
  • 本地数据已下载到足够的历史长度,覆盖要核对的最早位置。

本文只讨论条件的表达方式、参数设置与结果核对方法,不涉及具体标的的判断,也不构成对任何公式效果的承诺。站内还有 公式编写与语法函数 里讲参数表与比较表达式的条目、公式安装与导入 里讲公式管理器入口的条目、指标回测与风险验证 里讲数据口径与失效场景的条目,可对照查看。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。