通达信分时主图指标公式排查起来,第一层卡点在数据。分时图按 1 分钟周期取数,本地没下载 1 分钟数据的时候,公式算出来的是一条没有内容的线——源码写得再对也不会变。所以先说结论:分时主图不显示,先补数据,再谈公式。

下面按”取数 → 参数 → 挂载 → 显示 → 验证”的顺序讲。文中的目录名与文件名(T0002、PriGS.dat)来自通达信技术部公开的公式文件说明,函数名与周期后缀格式以通达信金融终端个人版为准。券商定制版的菜单名称有差异,界面入口的译名也随版本不同,以你软件里实际的为准。

一、分时主图和日线主图,差的是数据源

通达信分时主图指标公式跨不过去的第一个差异在周期:同一个公式挂在日线图上正常,挂到分时图上什么都没有。日线图的每一根 K 线是当天开高低收四个值,1 分钟图的每一根 K 线是一分钟的成交结果。公式里凡是带周期参数的函数,都按挂载位置的周期去取数。

由此带来两个直接后果。第一,公式里写死的周期参数在分时图上不合适:用日线调好的 MA(C,20),挂到 1 分钟图上就变成了 20 分钟均线。第二,往回取数据的语句在分时图上更容易取空——分时图一个交易日只有若干根 K 线,REF(C, 240) 这种往回数 240 根的写法,一天的数据量根本不够。

判断方法:把同一个公式分别挂在日线和分时上,看两边输出的位置是不是都在。日线有、分时没有,问题在周期与数据量;两边都没有,问题在公式本身,回到公式管理器里点测试公式。

二、取数:1 分钟数据从哪来

分时图依赖 1 分钟周期的历史数据。这份数据不在日线数据里,需要单独下载。路径在系统菜单下:系统 → 盘后数据下载,把 1 分钟与 5 分钟勾上,选好日期区间做一次补充下载。下载完成后重启软件,再打开分时图看公式的输出。

有几个容易忽略的边界:

  • 下载的区间决定分时的可见范围:只下载最近若干天,往前的分时图就是空的,公式也画不出东西,这不是公式的问题
  • 分时数据的落地位置与日线不同:自编公式存在安装目录下的 T0002 文件夹(自编指标在 PriGS.dat),行情数据是另一套目录,改公式文件不会影响行情数据,重下数据也不会动公式
  • 换一台机器要重新下:1 分钟数据不做云同步,换机器打开分时图是空的,需要在这台机器上重新走一次盘后数据下载

三、参数表:三个数值决定可见范围

通达信的公式可以带参数,参数在公式编辑器的参数表里填写,每行三个数值:缺省值、最小值、最大值。这三个数值决定了参数能被调到什么范围,也决定了公式在分时图上能不能取到足够的数据。

参数项 它决定什么 在分时图上要注意
缺省值 公式挂上去时先用的取值 缺省值按日线调的话,换成 1 分钟周期后含义会变,需要重新设一个适合分时的数
最小值 / 最大值 允许调整的上下界 上界设得太大,在分时图上调到上界时会超过一天的数据量,输出为空
参数名 公式里引用这个参数的标识 参数名要写成英文或拼音,不要用中文,避免与公式内部变量冲突

参数表留空也能保存公式,这时公式里就不能引用参数,只能写死数值。写死数值的公式换周期之后不会自动适配,这也是分时图上输出异常的一个来源。

{ 带参数写法:N 由参数表提供,可在界面上调整 }

均线: MA(C, N);

{ 参数表里填: 参数名 N  缺省值 20  最小值 2  最大值 240 }

{ 写死写法:换周期后依然是 20 根,含义随周期变 }

均线: MA(C, 20);

四、挂载:分时图上的主图位置怎么选

分时图的版式和日线图不同,它上半部分是价格走势、下半部分是成交量。要在分时图的价格区域叠加公式,需要在分时图界面上打开主图指标的切换入口(分时图界面里点右键取主图指标,或者用界面上的指标切换按钮),从列表里选中你的公式。这个入口的名称在各版本上有差异,位置都在主图区域的右键菜单附近。

有一种情况需要区分:公式属性里勾了 主图叠加,在日线图上会叠加到 K 线上,但在分时图上未必自动生效——分时图有自己的一套主图指标设置。在日线上勾好之后,回到分时图要把这套设置也选一次。

在分时图上加载公式之后,切换股票或切换周期可能把主图指标重置回默认的那一个。这时候看到的”公式不显示”,其实是当前主图选的不是你的公式。切换之后回头确认一下主图指标的名字。

五、显示逻辑:坐标轴与画点密度

通达信分时主图指标公式的输出要落在价格区间里才看得见。分时图的纵轴是价格,横向是一天的交易时间。把条件成立与否直接输出成 0 和 1,值会贴在坐标轴底端,与边框重合。合理的做法是把输出换算到价格附近,例如:

条件 := C > REF(C,1);

{ 直接输出:值只有 0 和 1,贴在底边看不到 }

{ 换算到价格附近输出:落在分时线下方 }
DRAWTEXT(条件, L * 0.998, '↑');

{ 或者画竖向短线,高度参考当前价格 }
STICKLINE(条件, L, L * 0.997, 1, 0);

还有一条与密度有关:分时图上一天有相当多的数据点,公式里每根 K 线都输出文字或图标的时候,画面会被符号铺满,看起来像一片杂乱的颜色块,公式的输出反而看不清。可行做法是给输出加一层筛选,让符号只落在少数位置上。

六、在分时图上引用别的周期

分时主图上的公式常常要引用别的周期的结果,例如在 1 分钟图上用日线级别的判断。跨周期引用的格式是指标名.语句名#周期:

"MACD.DIF#DAY"(12,26,9);    ← 在分时图上引用日线的 DIF
"KDJ.J#DAY"(9,3,3);         ← 引用日线的 J 值
"MA.MA1#WEEK"(5);           ← 引用周线的均线

← 周期后缀写在 # 之后,MIN1 表示 1 分钟,DAY 表示日线

引用别的周期时要注意两件事。一是被引用的公式必须已经存在,名字写错会落到”未知函数”里。二是引用来的值在分时图上是阶梯状的——它在一整个周期内不变,画在 1 分钟图上会是一条一段一段的台阶,这是正常现象,不是数据出错。

七、验证顺序与边界

把通达信分时主图指标公式的设置顺序收一遍,按这个顺序走可以少绕路:

  1. 先补数据:系统 → 盘后数据下载,勾 1 分钟与 5 分钟,下载完重启软件
  2. 再确认主图选的是不是这个公式:分时图上打开主图指标列表,看当前选中的名字
  3. 然后看参数:参数表里的缺省值是不是按分时周期设的,往回取数据的根数有没有超过一天的数据量
  4. 再改输出写法:把 0/1 这类值换算到价格区间,把每根都输出的符号加上筛选
  5. 最后换周期对照:同一个公式在日线和分时上分别看一次,确认差异只出现在周期这一层

本文讲的是软件目录、数据下载、参数表与挂载设置,不涉及具体标的的判断。分时主图上的公式输出的是一分钟级别的条件成立位置,这个位置与实际能成交的位置之间隔着价格与时间差,公式本身不承担这部分判断,需要自己在历史分时数据上逐段核对。

站内还有 主图副图指标 的其他条目,公式编写教程 里讲参数表与周期后缀的写法,报错与卡顿排查 里讲编译期与显示期报错的分流,可对照查看。

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