通达信突破年线公式要先把年线的周期定下来,年线的取值有两套写法:250 根与 240 根。250 按一年约 250 个交易日折算,240 按 12 个月乘每月 20 个交易日折算。两套口径在同一天算出的均线值不同,差别落在数据起点上。下面按周期取值、判定方式、量能条件、失效场景与验证方法讲清楚,写法以通达信金融终端个人版为准,不同版本在公式管理器的入口与措辞上可能有差异。

一、年线取 250 还是 240:周期取值带来的差别

MA(CLOSE,250) 与 MA(CLOSE,240) 的差别不只在 10 根。均线是收盘价的算术平均,样本不同,得到的值就不同;数据长度卡在 250 根附近时,240 那条已经有值,250 那条还取不到。选哪一套没有对错,关键是同一批观测里不要混用,混用之后两条线的穿越位置对不上,数出来的信号根数也对不上。

年线在图上表现为一条平缓的曲线,窗口越长,单个交易日对它的影响越小。这也是价格穿过年线之后均线仍按自己的节奏移动的原因:它反映的是过去 250 根收盘价的平均水平。

周期长度还有另一面:上市时间不足一年的标的没有 250 根日线 K 线,年线在最左侧一段取不到值,条件在那一段表现为空白。用 BARSCOUNT(CLOSE) 先把总周期数打出来。

{年线取值:两套口径分开写}
年线250:MA(CLOSE,250);
年线240:MA(CLOSE,240);
{数据长度检查:总周期数是否够 250 根}
数据够:BARSCOUNT(CLOSE)>=250;
{偏离幅度:收盘价高于年线的幅度}
偏离幅:(CLOSE-年线250)/年线250;

二、两种判定:通达信突破年线公式里的状态与事件

通达信突破年线公式里,突破有两种写法,差别在于判定的是状态还是那一根事件。状态式写 CLOSE>MA(CLOSE,250),只要收盘价在年线上方,条件在每一根上都成立;穿越式写 CROSS(CLOSE,MA(CLOSE,250)),只在价格由下方回到上方的那一根成立。同一段行情里,状态式给出的是区间,穿越式给出的是一根 K 线。

这个差别会体现在统计上:用 COUNT 累计信号根数,状态式随行情延续逐根增加,穿越式只在穿越那根跳一次。统计之前先确定要数哪一种。

{状态式:成立期间每根都为真}
状态突破:CLOSE>年线250;
{穿越式:只在由下穿上那一根为真}
穿越突破:CROSS(CLOSE,年线250);
{反向条件:收盘价回到年线下方}
回落:CLOSE<年线250;
{穿越之后五根内出现回落的次数}
穿越后回落:COUNT(CLOSE<年线250,5)>=1;

三、量能配合条件的写法

把量能写进条件,先要确定用的是哪一条量。VOL 是当根成交量,MA(VOL,5) 是五根的平均量,两者相除得到的是当根量相对近期水平的位置,这个比值不随行情量级整体放大或缩小而漂移。阈值取多少取决于要过滤掉什么:写成 1 表示不低于五根平均量,写成 1.5 表示达到平均量的一点五倍。

{量能比:当根量与五根平均量之比}
量能比:VOL/MA(VOL,5);
{量能条件:比值不低于给定阈值}
放量:量能比>=1.5;
{量与穿越同时成立}
量能配合突破:CROSS(CLOSE,年线250) AND 放量;
{累计成立的根数,参数 0 表示从数据起点累加}
信号根数:COUNT(量能配合突破,0);

量能条件的挂载位置要留意。放在主图时它与价格共用坐标系,比值只有零点几到几的量级,会被压成贴底的一条线;放在副图有独立纵轴,走势才看得清。量与穿越之间写成 AND,两个条件必须同一根同时成立。

条件叠加的顺序不影响结果,影响结果的是每个条件的阈值。幅度、量能、穿越三处各自收紧多少要分开记录。

四、把条件写成公式并在公式管理器里测试

写法落地要到公式管理器里做。用 Ctrl+F 打开公式管理器,在「技术指标公式」下新建,公式类型按需要选主图叠加或副图;把上面几行粘进去,周期数写成参数 N,默认值填 250,方便在 250 与 240 之间切换。保存前点「测试公式」,它做的是语法与函数名检查,不判断条件本身是否有意义,也不检测是否引用未来数据;通过之后点「确定」。

挂载位置决定同一段条件在图上怎么显示:挂在主图时年线直接叠在价格曲线上,穿越位置可以逐根对照;挂在副图时公式有自己的纵轴,交叉位置要按横轴对齐去看。自编公式落在 T0002 目录下,备份在 T0002\gs_bak,导出文件用 tn6 后缀;改动之前先导出一次,改坏了可以回滚。公式管理器的入口与按钮措辞在不同版本里可能有差异,以官方版本说明为准。

五、失效场景:通达信突破年线公式给出异常结果的四种情况

通达信突破年线公式在几种情况下会给出与预期不符的结果,这些情况都出在数据侧。第一种是数据长度不足 250 根:次新股与恢复交易不久的标的在起点处没有足够样本,年线取不到值,条件表现为从某一根之后才出现。核对办法是打印 BARSCOUNT(CLOSE),或者把周期数先改成 120 根再对照。

第二种是复权口径切换。除权之后历史收盘价被重算,参与平均的样本跟着变,年线位置在除权日前后跳变,穿越条件也可能在除权日附近多出一根。口径固定下来之后这一段才可比,中途改过口径,要把信号重新数一遍。

第三种是长期停牌。停牌区间不产生 K 线,复牌后第一根与停牌前一根在时间上不连续,均线窗口跨过空白段,位置出现错位。这一类信号要单独看,不要与连续交易区间的信号并在一起统计。

第四种是均线尚未走平。价格在年线附近小幅摆动时,CROSS 会在相邻几根上重复成立,信号根数多于预期。收敛办法是叠加幅度条件,例如收盘价高于年线的幅度达到给定阈值,或者叠加量能条件。阈值取多少要回到图上比较。

{幅度条件:收盘价高于年线的幅度达到阈值}
幅度够:偏离幅>=0.03;
{收紧后的穿越条件:穿越与幅度与量能同时成立}
收紧条件:CROSS(CLOSE,年线250) AND 幅度够 AND 放量;

下面这张表按现象列出对应含义与处理方式。

现象 含义 处理
图上一条信号都没有 数据长度不足 250 根,年线在可视区间内没有值 换成数据足够的区间观察,或先把周期数改成 120 根核对
信号连成一段 用的是状态式写法,价格在年线上方的每一根都成立 改成 CROSS 写法,或把这一段当作区间标记
同一段行情信号数量对不上 两次统计的年线周期、复权设置或周期级别有一处改了 把周期数、复权口径、周期级别三项写下来逐项核对
除权日前后信号跳变 历史收盘价被重算,年线位置跟着移动 固定复权口径,改过口径的区间单独统计

六、验证方法:在图上数信号根数

验证按顺序做三件事。先在公式管理器里点「测试公式」,确认语法与函数名没有问题;再把公式挂到主图或副图,从数据起点看条件从哪一根出现,起点处的空白对应样本不足;最后把周期数从 250 改成 240,观察信号根数的变化,两次数字的差就是周期取值带来的影响。

数信号时用 COUNT(条件,0) 把根数打出来,比用眼睛数可靠;滚动窗口把第二个参数写成正整数,例如 60 表示最近 60 根内的成立次数。把这一行放在副图上方,切换周期级别之后数字会跟着变。

验证时固定三项口径:年线周期数、复权设置、统计周期级别,都写在公式注释里,隔一段时间回看也能按同一口径重建。

七、取舍清单:先定口径再定写法

把上面几件事收成一张清单。口径先定:年线取 250 还是 240、复权用哪一种、统计落在哪一级周期上,三项一次定好。事件与状态分开:要数次数用 CROSS,要看区间用大于号。量能与幅度作为收紧条件叠在穿越条件之后,不替代它。数据长度先核对,再谈信号根数。

记一句话:数据长度与复权口径先核对,判定方式按需要选,收紧条件一次只动一处,通达信突破年线公式给出的信号根数才有可比性。

本文只作技术研究口径,不涉及也不构成对任何标的的判断。

站内还有 量价形态与信号拆解 的其他条目,指标原理与参数 里讲均线取数的口径,回测验证与风险控制 里讲信号怎么统计与复核,可对照查看。

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