简介:《通达信公式编写教程完整版》面向具备一定开发基础、希望系统入门通达信公式编写的学习者,帮助梳理公式类型、函数调用和指标编写的基本路径。资源包共1个文件,为doc文档,压缩包约1MB,内容集中,目录结构清晰,适合打印标注与整理,便于在电脑端逐章查阅和对照练习。教程围绕技术指标、条件选股、交易系统与五彩K线四类公式展开,先说明各类公式在公式管理器中的新建与调用方式,再讲解HIGH、CLOSE、CROSS、REF、AND等常用函数的含义与写法,并给出均线指标、简单条件选股等编写实例及公式测试、保存、调用的操作要点。已有8302人学习,适合作为通达信公式编写的入门参考,也可供需要巩固公式分类、函数基础与指标编写流程的用户查漏补缺。
1. 先弄明白一件事:通达信公式到底在写什么
第一次点开公式管理器的人,十个里有九个会被满屏英文缩写劝退:MA、CROSS、REF、FINANCE……看着像在写程序,其实它比你想象的简单得多。你完全可以把通达信公式当成一张填空式便签:左边起个名字,中间写函数,括号里填参数,最后敲一个分号收尾。想表达“收盘价的 10 日平均”,写出来就是MA10:MA(C,10);这一行,仅此而已。
这份教程做的事,就是把这行字拆开,一个字母一个字母告诉你它为什么这么写、哪里能改、改错了会怎样。没写过代码、只会看 K 线的零基础新手,完全可以跟着走完。它不是让你变成程序员,而是让你把脑子里那句“我想看看这只票的均线是不是刚交叉”翻译成软件听得懂的一句话。
2. 为什么要学公式:它替你干的四类活
2.1 每天重复的那几个动作,其实可以写下来
大多数人看盘的流程是这样的:切到自选股列表,一只一只点开,看均线是不是刚上穿、看今天的量比昨天大不大、看收盘价是不是跌到了某个位置以下,看完切下一只。二十只票,十分钟没了;一百只票,一个小时没了,而且眼睛会花、手会抖、心情会烦。
这些动作有个共同点——它们的判断标准是固定的,每次都用同一把尺子量。凡是“标准固定 + 重复执行”的事,就适合交给电脑。你在 Excel 里设过一次求和公式,以后数据一变结果自动跟着变;公式系统是同一个道理,只不过它算的不是单元格,而是 K 线。
我第一次接触公式,是因为手动翻一只票的均线金叉翻到凌晨,第二天发现前一天的判断标准跟前一天还不一样——昨天觉得差一点点算交叉,今天觉得必须严格穿过去才算。这种标准漂移,就是手工看盘最大的问题。写成公式之后,标准被固定在一行代码里,它不会累,也不会自我妥协。
2.2 四类公式,对应四种不同的需求
教程里把公式分成四大类,这个分类不是随便切的,它对应的是你四种不同的使用场景。先看清这张表,后面写公式时你就知道该往哪个分类里放。
| 公式类型 | 出现在哪里 | 它替你干什么 | 典型代表 |
|---|---|---|---|
| 技术指标公式 | 技术分析界面的副图或主图 | 把一段计算画成一条线或一组柱 | MA、KDJ、MACD |
| 条件选股公式 | 条件选股功能里 | 从一堆票里筛出符合条件的 | 自定义形态筛选 |
| 交易系统公式 | 叠加在 K 线图上 | 自动在图上标出买卖信号点 | 均线交叉系统 |
| 五彩 K 线公式 | 叠加在 K 线图上 | 把特殊形态的 K 线涂成不同颜色 | 自定义形态高亮 |
技术指标公式是你最常打交道的,也是新手最该先啃下来的,因为它是后面三类的地基——选股要用的判断条件、交易系统要用的信号,本质都是指标算出来的结果再加一层判断。所以入门路径很清楚:先把技术指标写明白,再碰选股,最后才去想交易系统和五彩 K 线。
这里要泼一盆冷水:公式只能保证“你定的规则被严格执行”,它保证不了“你定的规则是对的”。把一条均线写成公式,它不会因此变得更准;把买卖信号画到 K 线上,它也不会因此变得能赚钱。公式解决的是执行力和一致性问题,不是判断力问题。这个认知如果不先摆正,后面很容易走偏。
2.3 学之前要准备什么:比你想的少
很多人卡在门口,是以为自己得先会点什么。列一下真实门槛:
- 知道开盘价、收盘价、最高价、最低价分别是什么——看过 K 线就懂。
- 知道均线是什么——屏幕上那条跟着价格走的曲线。
- 认得几个简单英文单词——CLOSE 是收盘,HIGH 是最高,仅此而已。
- 会敲键盘、会用鼠标右键——这个不用教。
不需要会编程,不需要懂数据结构,不需要数学很好。教程本身定位就是“公式系统(初级)”,它默认你什么都没学过。唯一需要你花的成本是耐心:第一次写公式会手忙脚乱,会点错菜单,会忘了打分号,这都正常,我第一次写的时候把MA(C,10)写成了MA(C.10),一个点号让测试报错,找了半小时。
提示:本文只讲软件里怎么写公式、怎么用公式,不涉及任何具体标的的推荐,也不构成任何投资建议。规则怎么定,是需要你自己负责的部分。
3. 第一步怎么迈:从打开公式管理器到写下第一行
3.1 两条路都能进公式管理器
所有公式都住在一个叫“公式管理器”的地方,进去的路径是:菜单栏的“功能”,往下找“专家系统”,再点“公式管理器”。这是最稳妥的一条路,照着点就行。
打开之后你会看到一个左右分栏的窗口。左边是树形列表,像文件夹一样一层套一层,技术指标公式、条件选股公式、交易系统公式、五彩 K 线公式四大类都在里面,每一类下面还细分了“均线型”“其它类型”这类小分类。右边是新建、修改、删除这些按钮。
新手最容易在这里犯迷糊:以为左边那些现成的指标是“系统自带的、不能动的”。其实不是,你完全可以点开一个现成指标,看它怎么写,甚至在它的基础上改。编辑区里有个“引入指标公式”的功能,就是让你在已有指标的基础上修改,不用从空白开始。这个功能对新手特别友好——先看别人怎么写,再改一个数字,看结果怎么变,比从零硬憋快得多。
3.2 新建之前,先想清楚要建哪一类
左边树形列表里选中的位置,决定了你新建出来的是哪一类公式。选在“技术指标公式”下面的“均线型”再点新建,建出来的就是技术指标公式;选在“条件选股公式”下面的“其它类型”再点新建,建出来的就是选股公式。
这一步错了会怎样?不会报错,但你会发现写完之后在 K 线图上调不出来,或者在选股器里找不到。分类是“存放位置”,不是“内容属性”,软件不会帮你自动判断你写的东西属于哪类。所以养成一个习惯:动手前先问自己一句“我这条公式是拿来画图的、还是拿来筛票的”,答案决定了你点哪个位置的新建。
3.3 编辑区那几个框,一个都别跳过
进入编辑区之后,你会看到几个填写项,新手最常做的是只填个名字就开始写代码,剩下的全用默认值。这样能跑通,但后面会吃亏。挨个说清楚:
公式名称——这是你以后调出它的名字。起名建议短一点、好记一点,比如JX1。调出指标时是用键盘直接敲名字回车,名字太长敲起来烦。
公式描述——写一句人话,说明这条公式是干什么的。当时觉得多余,等你写了二十条公式之后,就会感谢自己当初写过这句描述。
画线方法——这是最容易忽略但影响最大的一项。选“副图”,指标会画在下方独立区域(像 MACD 那样);选“主图叠加”,指标会叠在 K 线上面(像 MA 那样)。一条均线如果选成副图,你会看到它在下方自己画一条曲线,而不是压在 K 线上,看起来会很奇怪。
坐标线位置——默认是自动,软件根据指标值的范围自己算刻度。手动填的话用分号隔开。新手建议先保持自动,等熟悉了再调。
额外 Y 轴分界——在指标上加几条白色横线做参考。不是必须项,先放着。
测试公式——最关键的一个按钮。写完必须点它,看到“测试通过”四个字再点确定保存。跳过测试直接保存,写错了你也不知道,等到用的时候才发现调不出来,就得回头重查。
3.4 函数是这门语言的单词,先记牢五个
教程里有个比喻我觉得特别到位:函数就是这门语言的单词。你想让电脑替你干活,就得用它的词说话。满屏函数不用全记,入门阶段先啃下这五个,能覆盖八成的日常需求。
第一个是价格本身。一根 K 线由四个价格组成,它们各有代号:
HIGH 最高价,简写 H LOW 最低价,简写 L OPEN 开盘价,简写 O CLOSE 收盘价,简写 C VOL 成交量,简写 V AMOUNT 成交额这些代号代表的是“当前周期”的数值。你在日线图上看,它就是当天的;你切到周线,它自动变成这周的。不用你另外指定,软件跟着你当前的周期走。
第二个是往前找数据。REF(X,M)表示“M 个周期之前的 X”。比如:
REF(C,5) 5 天前的收盘价 REF(V,10) 10 天前的成交量这个函数的意义在于,很多判断都要跟“过去”比。今天涨没涨,要跟昨天收盘比;今天放量没放量,要跟前几天均量比。没有 REF,你只能看到当下,做不了对比。
第三个是比较两条线。CROSS(X,Y)表示 X 向上穿过 Y。注意方向:CROSS(X,Y)和CROSS(Y,X)是两件相反的事,写反了信号就完全反过来。
第四个是连接两个条件。AND就是“并且”。想同时满足“5 日线上穿 10 日线”和“今天放量”,就把两个条件用 AND 连起来。
第五个是算平均。MA(X,N)表示 X 的 N 周期简单移动平均。MA(C,10)就是收盘价的 10 日平均,也就是我们常说的 10 日均线。
3.5 参数:为什么要把 10 换成一个字母
写完MA(C,10)之后你会发现一个问题:想改成 5 日均线,得进编辑区把 10 删掉重新打 5,再测试、再保存。改一次两次还行,改十次就烦了。
参数就是来解决这个烦的。做法是把那个写死的 10 换成一个字母,比如 N,公式变成MA(C,N),然后在参数设置里定义:N 的名字、最小值、最大值、缺省值。范围一般填 1 到 260,缺省值填你最常用的那个数,比如 10。
这样改完之后,你在图上调整这条均线就不用再进编辑区了,直接改参数就行。教程里提到的“参数精灵”,就是帮你用滑块或者输入框调参数的小工具,改完立刻能看到线怎么变——这个即时反馈对新手理解“参数到底影响什么”特别有用。
注意:参数名建议用单个字母,别用中文,也别用 C、O、H、L、V 这些已经有含义的代号,否则会和系统函数撞车,测试直接报错。
4. 跟做两个例子:10 日均线与一个选股条件
4.1 例子一:写一条 10 日均线并画到主图上
这是最适合当第一个练习的公式,因为它足够短,短到你能一行一行看懂;又足够有用,写完立刻能在图上看到效果。
操作步骤:
- 点菜单“功能 → 专家系统 → 公式管理器”。
- 左边树形列表里,展开“技术指标公式”,选中“均线型”。
- 点右边的“新建”,进入编辑区。
- 填公式名称,比如
JX1;填公式描述,比如“10 日均线”。 - 画线方法选“主图叠加”,这样它会压在 K 线上,而不是画在下面。
- 点“插入函数”,在列表里找“简单移动平均”,对话框下方会显示它的用法说明,点确定。
- 函数会自动填进编辑区,把括号里的两个参数补上。
- 点“测试公式”,看到“测试通过”后点确定保存。
最终的编辑区里应该长这样:
{10日均线示例} MA10:MA(C,10);拆开解释这一行:
MA10是这条线在图例里显示的名字,你可以随便起,但要和后面的计算对得上,别名字叫 MA10、算的却是 20 日。- 冒号
:的作用是“输出并画线”。如果写成:=,就变成只计算不画线,图上什么都看不见,这是新手常犯的错。 MA是简单移动平均函数。C是收盘价,代表参与平均的价格序列。10是周期数,代表算多少天的平均。- 分号
;是这一句的结束符。缺了它,测试一定报错。
写完之后看编辑区下方的“动态翻译区”,它会自动把这行公式翻译成人话:“收盘价的 10 日简单移动平均”。这个区域是新手最好的老师——你每写一句,它就翻译一句,写错了或者写反了,翻译出来的话会立刻变得不通顺,一眼就能看出来。
4.2 把写死的 10 换成 N,让这条线以后能随手调
在上面那行基础上改一下:
{带参数的均线,N 可在参数设置里调整} MA1:MA(C,N);然后在参数设置里加一行:参数名 N,最小值 1,最大值 260,缺省值 10。
改完之后的意义不只是省事。当你能随手把 N 从 10 调到 5、调到 20、调到 60,你会亲眼看到同一条 K 线上不同周期的均线是怎么错开、怎么交叉的。这种“改一个数字看结果怎么变”的手感,比看十篇讲解文章都管用。
4.3 例子二:股价小于每股净资产的选股条件
第二个例子换个类型,从“画图”换成“筛票”,让你体会两类公式的区别。
需求很明确:把所有收盘价低于每股净资产的个股选出来。
操作步骤:
- 还是进公式管理器,这次左边选“条件选股公式”下面的“其它类型”。
- 点“新建”,填公式名称和描述。
- 点“插入函数”,选择“收盘价”,点确定,它会填进编辑区。
- 敲一个空格,输入小于号
<,再敲一个空格。 - 再点“插入函数”,这次在“财务函数”分类里找到“每股净资产”,点确定。
- 补上分号。
- 点“测试公式”,通过后保存。
写成代码大概是这个形态:
{条件选股:收盘价低于每股净资产} CLOSE < FINANCE(34); {具体函数名以插入函数对话框自动填入的为准}这里有两件事要说清楚:
第一,中间那个小于号必须是英文半角。教程里专门强调过“公式编写涉及到符号时用英文字符”,这不是废话。中文输入法下打出来的<是全角的,肉眼几乎分不出来,但测试一定报错,而且报错信息不会告诉你“你用了中文符号”,只会说语法错误。这个坑我踩过不止一次。
第二,财务函数的编号在不同环境里可能不一样。所以我更推荐的写法是不要手打函数名,而是老老实实用“插入函数”对话框去点——点完之后软件会自动填入正确的函数名,你只要负责把比较符号和分号补齐。对零基础的人来说,用对话框点,比背函数名靠谱得多。
4.4 测试通过之后:怎么把公式调出来用
写完保存只是第一步,能不能用起来是第二步,而这一步新手最容易卡住。
指标公式的调出:回到 K 线界面,直接用键盘敲你起的公式名字,比如JX1,然后回车。图上就会多出你写的那条线。如果敲了没反应,八成是名字敲错了,或者保存时选错了分类。
选股公式的调出:走菜单“功能 → 选股器 → 条件选股”,在弹出的窗口里找到你刚建的那条公式,加入条件,然后执行选股。
交易系统公式和五彩 K 线公式的调出方式略微不同,都是在 K 线界面点鼠标右键,前者选“交易系统指标”,后者选“五彩 K 线指示”,选中后点确定,就会叠加到 K 线上。交易系统会按你写的规则在图上标出买卖点,五彩 K 线会把符合形态的 K 线涂上颜色。
第一次成功调出自己的公式,看到那条线真的出现在图上,那种感觉挺上瘾的。从这个点开始,你就不再是“用别人做好的指标”,而是“自己造工具”了。
5. 新手最容易翻车的五个地方
5.1 测试不通过,提示语法错误
现象:点了测试公式,弹出报错,提示里出现“语法错误”“缺少分号”之类,但你把那行代码反复看了十遍,觉得完全没问题。
原因:八成是标点符号的问题。中文输入法下的分号;、括号()、逗号,、小于号<,长得跟英文版几乎一样,但公式系统只认英文半角的。另一个常见原因是括号不配对,MA(C,10少了个右括号,肉眼扫过去很难发现。
解决:把输入法切到英文再重新敲一遍标点;养成写完一行先点测试再写下一行的习惯,别一口气写十行再测,出错时你不知道是哪一行;如果是多行公式,先注释掉一半,测试通过再放开另一半,用二分法定位。
5.2 公式写对了,敲名字却调不出来
现象:测试通过了,也保存了,返回 K 线界面敲名字回车,毫无反应,或者弹出一个“找不到该指标”的提示。
原因:最常见的是分类选错了。你写的是技术指标,但新建的时候选中了条件选股公式,那它自然不在指标列表里。其次是名字敲错了,包括大小写或者多敲了一个空格。还有一种情况是画线方法选成了“副图”,指标其实出来了,只是在下方区域,你以为没出来。
解决:回公式管理器,在左边的树形列表里挨个分类找一遍,看你的公式到底躺在哪儿。找到之后如果分类不对,删掉重建,新建时先选对位置再动手。至于“看不见”,把画线方法从副图改成主图叠加再试一次。
5.3 选股跑完,一只都没选出来
现象:选股公式测试通过,执行选股,跑完提示“选出 0 只”。
原因:不一定是公式写错了。可能是条件本身太严,市场上当天确实没有满足的票;可能是选股范围设得太窄,只勾了一个小板块;可能是数据没下载全,财务数据缺失导致比较无法进行;也可能是你在日线周期写的公式,却在分钟周期上跑。
解决:先把条件放松试试,比如把“小于”改成“小于等于”,或者把财务条件的范围放宽,看能不能选出东西来。能选出来说明公式逻辑没问题,是条件太紧;还是选不出,就检查选股范围和历史数据是否完整。财务类函数特别依赖数据完整性,这一块没下全,公式再对也白搭。
5.4 参数一改就报错
现象:加了参数之后,测试不通过,或者改参数值时提示超出范围。
原因:参数名跟系统保留字撞了,比如你用了 C 或者 V 当参数名;或者参数的取值范围填反了,最小值填得比最大值还大;或者公式里用了参数,但参数设置里根本没定义这个字母。
解决:参数名统一用 N、M、P 这类没被占用的字母;范围按惯例填 1 到 260,缺省值填你最常用的那个;公式里出现几个字母,参数设置里就要定义几个,一一对应,不能多也不能少。
5.5 从网上抄来的公式,一用就乱
现象:找了段别人分享的公式,复制进去,要么测试不通过,要么通过了但图上画出来的东西完全看不懂,一堆线缠在一起。
原因:公式是有环境依赖的。同一条公式,在别人的软件版本里能跑,在你这儿可能因为函数名差异、数据周期不同、依赖的其他指标不存在而失效。更麻烦的是,有些公式是一次性写了很多行的组合公式,中间某一行出错,整个都不对,但你不知道错在哪。
解决:别整段抄。抄之前先看它用了哪些函数,有没有你不认识的;有不认识的就去“插入函数”里查用法。抄进来之后一行一行测试,先把最核心的那一行跑通,再往上加。如果你连它每一行在算什么都不知道,那就先别用——用一条自己看不懂的公式做判断,比不用公式更危险。
6. 下一步学什么:三周上手路径与一个习惯
零基础学这个,最怕的是“看完了但没动手”。所以我给一条按周排的路径,每周的任务都很小,小到当天就能做完。
| 阶段 | 时间 | 具体做什么 | 达成标准 |
|---|---|---|---|
| 第一周 | 每天 20 分钟 | 把 MA、KDJ、MACD 这几个自带指标打开看源码,只做一件事:认出里面哪几个是函数、哪几个是参数 | 能指着任意一行说出它在算什么 |
| 第二周 | 每天 30 分钟 | 照着第 4 章的例子,自己独立重写一遍 10 日均线,然后改成 5 日、20 日、60 日各存一条 | 不看教程也能从新建到调出完整走一遍 |
| 第三周 | 隔天一次 | 挑一个你最常用的判断(比如“连续三天收盘价在 5 日线上方”),试着把它写成选股公式 | 写出来的公式测试通过,并且能选出东西 |
| 之后 | 按需 | 学 CROSS 组合、REF 对比、AND 连接,把单个条件拼成组合条件 | 能读懂别人分享的中等复杂度公式 |
第三周那个练习特别关键,因为它是你第一次“从想法到代码”的完整闭环。前两周你都在模仿,第三周你开始创造。哪怕写出来的东西很粗糙,那个“我脑子里的一句话变成了一行能跑的代码”的瞬间,就是入门真正完成的标志。
还有一个我踩过坑才养成的习惯:每新建一条公式,先花十秒钟把公式描述填上,并且写上今天的日期。听起来很啰嗦,但当你三个月后打开公式管理器,看到二十条名字叫JX1、JX2、JX3的公式,完全想不起来哪条是干什么的时候,你就会明白那十秒钟有多值钱。我最早的几条公式全是这种命名,后来只能一条条打开看代码反推,浪费了一个晚上。从那以后我每次新建公式,描述栏都强制走一遍“它算什么 + 用在哪 + 哪天写的”,再也没吃过这个亏。
希望这些能帮你少走点弯路,先把第一条均线写出来,剩下的就都好办了。
本文还有配套的精品资源,点击获取