通达信公式编写指南

通达信公式编写指南1 通达信简介 1 1 通达信软件概述通达信是国内知名的证券分析软件 由深圳市财富趋势科技股份有限公司开发 广泛应用于券商 投资机构和散户投资者 软件提供实时行情 技术分析 基本面分析 量化交易等功能 1

欢迎大家来到IT世界,在知识的湖畔探索吧!

1. 通达信简介

1.1 通达信软件概述

通达信是国内知名的证券分析软件,由深圳市财富趋势科技股份有限公司开发,广泛应用于券商、投资机构和散户投资者。软件提供实时行情、技术分析、基本面分析、量化交易等功能。

1.2 通达信主要功能特点

  • 多市场行情支持(A股、港股、期货、外汇等)
  • 丰富的技术分析工具和指标
  • 强大的公式系统支持自定义指标和策略
  • 灵活的画线分析工具
  • 数据导出和回测功能
  • 支持条件选股和预警功能

1.3 通达信界面介绍

  • 主界面布局:菜单栏、工具栏、行情窗口、分析窗口
  • 常用快捷键介绍
  • 公式管理器入口
通达信公式编写指南



欢迎大家来到IT世界,在知识的湖畔探索吧!

通达信公式编写指南


2. 通达信公式系统简介

通达信公式编写指南

2.1 公式系统概述

通达信公式系统是一套完整的编程环境,允许用户创建自定义指标、条件选股公式、交易系统和五彩K线公式等。通达信公式系统是其核心功能之一,其基于特定的语法结构,支持数学运算、逻辑判断、函数调用等多种编程元素。

公式系统的优势:

  • 灵活性高,可完全自定义分析逻辑
  • 执行效率高,与软件深度集成
  • 可视化强,结果直接在图表上展示
  • 支持多周期分析,适应不同交易需求

2.2 公式类型

  1. 技术指标公式:用于分析价格走势的各类指标
  2. 条件选股公式:筛选符合特定条件的股票
  3. 交易系统公式:定义买卖信号的交易策略,包括买入卖出信号
  4. 五彩K线公式:自定义K线显示样式,直观显示特定形态

2.3 公式编辑器

  • 公式编辑器界面布局
  • 基本操作:新建、编辑、保存、导入导出
  • 公式测试和调试方法

3. 通达信公式编程语法基础

公式组成要素: 公式名称,参数,表达式(计算),输出

通达信公式编写指南

3.1 基本语法规则

  • 每行一个语句,语句以分号”;”结束
  • 不区分大小写
  • 注释使用”{}”
  • 变量命名规则
{示例} N := 5; MA5 : MA(C, N); 

欢迎大家来到IT世界,在知识的湖畔探索吧!

通达信公式编写指南

3.2 数据类型

  • 数值型:整数和浮点数
  • 布尔型:0(假)和1(真)
  • 字符串型(有限支持):通达信中的字符串是用单引号(”)括起来的字符序列,例如:
欢迎大家来到IT世界,在知识的湖畔探索吧!'通达信' 'ABC123' '这是一个测试字符串' 
  • 数组(通过序列变量实现):通达信中没有显式的数组声明语法,数组是通过特定函数隐式创建的。

3.3 运算符

  • 算术运算符:+ – * /

运算符

说明

示例

结果

+

加法

2+3

5

减法

5-2

3

*

乘法

3*4

12

/

除法

10/2

5

  • 比较运算符:> < >= <= = <>

运算符

说明

示例

结果

>

大于

CLOSE>OPEN

布尔值

<

小于

LOW<REF(LOW,1)

布尔值

>=

大于等于

VOL>=MA(VOL,5)

布尔值

<=

小于等于

CLOSE<=UPPER

布尔值

=

等于

STKNAME=’中国平安’

布尔值

!= 或 <>

不等于

CLOSE!=OPEN

布尔值

  • 逻辑运算符:AND OR NOT

运算符

说明

示例

结果

AND

逻辑与

CLOSE>OPEN AND VOL>REF(VOL,1)

布尔值

OR

逻辑或

CROSS(MA1,MA2) OR CROSS(MA2,MA1)

布尔值

NOT

逻辑非

NOT(ISLASTBAR)

布尔值

  • 赋值运算符::=

运算符

说明

示例

结果

:=

赋值运算符(公式中)

A:=CLOSE+OPEN

运算符优先级表

优先级

运算符

说明

1

()

括号

2

NOT, -(负号)

逻辑非/取负

3

*, /

乘除模

4

+, –

加减

5

>, <, >=, <=, =

比较运算

6

AND, OR

逻辑运算

7

:=

赋值

3.4 变量命名规则

3.4.1 基本命名规则

  • 长度限制:变量名最长不超过15个字符
  • 有效字符:可以使用字母(A-Z,a-z)、数字(0-9)和下划线(_)
  • 首字符:必须以字母或下划线开头,不能以数字开头
  • 大小写不敏感:通达信不区分大小写,MA5和ma5被视为同一变量
  • 保留字限制:不能使用通达信的保留关键字作为变量名(如OPEN, CLOSE, HIGH等)

3.4.2 变量命名示例

有效命名

MA5 ma10 _VolRatio Day3_Avg 

无效命名

欢迎大家来到IT世界,在知识的湖畔探索吧!5MA {以数字开头} MA-10 {包含非法字符(-)} Close {使用保留关键字} VeryLongVariableName {超过15字符} 

3.4.3 变量命名约定(建议)

3.4.3.1 技术指标变量

  • 常用前缀表示指标类型: MA_ 表示移动平均相关 VOL_ 表示成交量相关 MACD_ 表示MACD指标相关 RSI_ 表示相对强弱指标相关

示例:

MA5:MA(CLOSE,5); VOL_MA5:MA(VOL,5); RSI14:RSI(CLOSE,14); 

3.4.3.2 临时计算变量

  • 使用tmp、temp等前缀表示临时变量
  • 或使用下划线开头表示中间变量

示例:

欢迎大家来到IT世界,在知识的湖畔探索吧!_TMP1:=(HIGH+LOW)/2; TMP_AVG:MA(_TMP1,10); 

3.4.3.3 条件判断变量

  • 使用is、has、can等前缀表示布尔条件
  • 或以问号结尾表示条件变量

示例:

IS_UP:=CLOSE>OPEN; HasVolume?:VOL>REF(VOL,1)*1.5; 

3.4.4 变量作用域规则

  • 全局变量:在公式中定义的变量在整个公式范围内有效
  • 局部变量:通达信没有真正的局部变量概念,所有变量都是全局的
  • 参数变量:通过参数定义的变量具有特殊作用域

3.4.5 变量命名实践建议

  1. 保持一致性:整个公式中使用统一的命名风格
  2. 描述性命名:变量名应反映其含义或用途
  3. 避免混淆:不要与内置函数名过于相似
  4. 适当注释:对复杂变量添加注释说明
  5. 分组相关变量:相关变量使用统一前缀

良好命名的公式片段示例:

欢迎大家来到IT世界,在知识的湖畔探索吧!{双均线交易系统} SHORT_MA:MA(CLOSE,5); {短期均线} LONG_MA:MA(CLOSE,20); {长期均线} IsGoldenCross:CROSS(SHORT_MA,LONG_MA); {金叉信号} IsDeathCross:CROSS(LONG_MA,SHORT_MA); {死叉信号} 

注:遵循良好的变量命名规则可以使公式更易读、易维护,并减少错误发生的可能性。


3.5 赋值语句

3.5.1 基本语法结构

通达信公式编写指南

3.5.1.1 语法原型:

变量名 赋值符 表达式; 

3.5.1.2 两种赋值方式对比

类型

符号

显示特性

内存管理

典型应用场景

临时赋值

:=

不显示在图表

计算后释放

中间结果计算

输出赋值

:

显示在图表

持续占用

最终指标输出

注:冒号和等号中间不能有空格

3.5.2 简单赋值

欢迎大家来到IT世界,在知识的湖畔探索吧!{数值赋值} MA5 := MA(CLOSE,5); {临时变量} MA10:MA(CLOSE,10); {输出变量} {布尔赋值} IS_UP := CLOSE > OPEN; {返回0/1} 

3.5.3 条件赋值

{根据条件动态赋值} TREND := IF(CLOSE > MA(CLOSE,20), 1, -1); 

3.5.4 赋值语句实践举例

成交量加权均价:

欢迎大家来到IT世界,在知识的湖畔探索吧!{临时计算各周期加权值} VOL_WEIGHT := VOL*CLOSE; TOTAL_VOL := SUM(VOL,20); TOTAL_WEIGHT := SUM(VOL_WEIGHT,20); {最终输出} VWAP: TOTAL_WEIGHT/TOTAL_VOL, COLORCYAN; 

3.5.5 常见错误

3.5.5.1 典型错误案例

{错误示例1:赋值符号混淆} MA5 = MA(CLOSE,5); {错误!应使用:=或:} {错误示例2:自我引用} RECURSIVE_VAR := RECURSIVE_VAR + 1; {未开启递归选项} {错误示例3:类型不匹配} TEXT_SIGNAL := 'BUY' + CLOSE; {字符串与数值不能直接运算} 

3.5.5.2 调试方法

通达信公式编写指南

3.5.6 关键总结:

  1. 符号选择原则
  2. 需要显示在图表 → 使用:
  3. 仅中间计算 → 使用:=
  4. 版本差异注意
  5. 尽量使用各个版本都兼容的语法

建议在实际编辑器中通过「公式校验」功能实时检查赋值语句合法性。

3.6 控制结构

  1. IF-THEN-ELSE语句
欢迎大家来到IT世界,在知识的湖畔探索吧!IF 条件 THEN 语句1 ELSE 语句2; 

示例:

VAR1:=IF(CLOSE>OPEN,1,0); 
  1. 循环语句

通达信公式系统不支持传统循环结构,但可通过递归函数或内置函数实现类似功能。

3.7 函数调用

  • 函数调用格式:FUNCTIONNAME(ARG1,ARG2,…);
  • 支持数学函数、统计函数、逻辑函数等多种类型
  • 自定义函数定义和使用
  • 绘制线条、图标、文字等
  • 设置颜色和线型

函数在公式编写中具有非常重要的作用,在公式编辑器中选择插入函数,可以看到里面有许多函数,如下图:

通达信公式编写指南

注:函数清单见 《5. 附录:通达信内置函数表》


4. 通达信函数及公式编程实践

调出公式管理器: 公式公式管理器 或 快捷键:CTRL+F 公式类型分为四大类:技术指标公式、条件选股公式、交易系统公式、五彩K线公式。

对公式编写有问题进行提问,可以点击客户端上方栏财富圈→论坛→公式天堂加入,或者点击公式论坛地址直接进入:
https://sns.tdx.com.cn/site/tdx_sns/page_index.html#/CircleDetail?id=12&systemType=1

4.1 公式编写举例

进入公式管理器,新建一技术指标公式 依次点击菜单“公式公式管理器”,进入公式管理器界面。如下图:

通达信公式编写指南

左边的树型列表中选择技术指标公式下面的“均线型”,点击右边的“新建”,就会进入公式编辑界面,如下图:

通达信公式编写指南

填写公式名称,公式描述; 公式类型:对应的公式可选择加入不同的类型,设定后查看公式时将会在对应的分类项下列出来; 画线方法:选择副图,指标将会在副图区显示,选择主图叠加,指标将会在主图区显示(如常用指标MA就是主图指标),也可选择在副图上叠加K线,美国线,收盘站线。

通达信公式编写指南

坐标线位置:默认的是自动,系统自动根据指标值的范围设定的区间,如下图的 0.60,0.40,0.2,0, -0.2, 0.00 , -0.2 ;可以手动的设置坐标间隔,用分号分开,手动设置后,默认的将会没有。

通达信公式编写指南

额外Y轴分界:在指标上加上一些白色的横线,如上图所示。

在公式编辑界面公式编辑界面输入公式内容,

欢迎大家来到IT世界,在知识的湖畔探索吧!{双均线交易系统} SHORT_MA:MA(CLOSE,5); {短期均线} LONG_MA:MA(CLOSE,20); {长期均线} IsGoldenCross:CROSS(SHORT_MA,LONG_MA); {金叉信号} IsDeathCross:CROSS(LONG_MA,SHORT_MA); {死叉信号} 

如下图:

通达信公式编写指南

点击 “测试公式”,若显示测试通过,点击“确定”按钮保存公式。之后就可以调出公式使用,如图:

通达信公式编写指南


注:

公式编辑时,可以点击“插入函数”,选择要插入的函数,点击“确定”按钮,对应的函数会在公式编辑框内显示出来。如下图所示:

通达信公式编写指南

点击“确定”:

通达信公式编写指南

选择函数后,可以继续填写函数参数,本例MA有两个参数,第一个参数填写收盘价,收盘价在公式函数中用 C 表示,第二个参数填写均线日期,可以直接录入一数字。(注:公式编写涉及到符号时用英文字符)。如下图所示:

通达信公式编写指南

选择其他函数,可以按提示进行填写即可完成。

4.2 官方一些基本公式编写实例

4.2.1 今日比昨日的成交量放大了1倍

VOL/REF(VOL,1)>2; 

4.2.2 今日的五日均量比五天前的五日均量放大了3倍

欢迎大家来到IT世界,在知识的湖畔探索吧!AA:=MA(VOL,5); BB:=REF(AA,5); AA/BB>4; 

4.2.3 今天的成交量达到了整个流通盘的10%以上

VOL/CAPITAL>10/100; 

注意,10%的表达式是10/100,或者0.1

4.2.4 今日比昨日的成交量缩小了1倍

欢迎大家来到IT世界,在知识的湖畔探索吧!VOL/REF(VOL,1)<0.5; 

4.2.5 今日的五日均量比五天前的五日均量缩小了一半

AA:=MA(VOL,5); BB:=REF(AA,5); AA/BB<0.5; 

4.2.6 今天的成交量不足整个流通盘的0.5%

欢迎大家来到IT世界,在知识的湖畔探索吧!VOL/CAPITAL<0.5/100; 

4.2.7 今日涨幅达到了7%以上

CLOSE/REF(CLOSE,1)>1.07; 

4.2.8 十日均价继续上涨

欢迎大家来到IT世界,在知识的湖畔探索吧!AA:=MA(CLOSE,10); BB:=REE(AA,1); AA>BB; 

4.2.9 收阳、收阴:

1、当天收阳:CLOSE>OPEN; 2、当天收阴:CLOSE<OPEN;

4.2.10 高开、低开

1、当天股价高开,即开盘高于昨日收盘:OPEN>REF(CLOSE,1); 2、当天股价低开:OPEN<REF(CLOSE,1);

4.2.11 跳空

跳空亦有向上和向下两种: 当日开盘在昨日最高之上,即为向上跳空:OPEN>REF(HIGH,1); 反之,开盘小于昨日的最高价,为向下跳空:OPEN<REF(LOW,1);

4.2.12 量价齐升

AA:=VOL/REF(VOL,1)>2;{成交量是昨日的两倍} BB:=CLOSE/REF(CLOSE,1)>1.07;{涨幅大于7%} AA AND BB; 

4.2.13 创新高

创新高指当日最高价是最近一段时间的最高价:

欢迎大家来到IT世界,在知识的湖畔探索吧!HIGH=HHV(HIGH,N); 

其中的HIGH为当期最高价,HHV(X,N)是求N周期内X最高值。因此该公式的含义是当日最高价创N日新高时返回值为1,否则为0。

4.2.14 横盘整理

横盘整理指最近一段时期价格在一定幅度之内摆动:

(HHV(CLOSE,10)-LLV(CLOSE,10))/CLOSE<0.05; 

其中的LLV(X,N)是求N周期内X最低值。因此该公式表示10日收盘价振幅振幅在5%以内。

4.2.15 5日,10日,30日均线多头排列

定义:均线多头排列,是指从短周期到长周期均线,从上而下的依次排列

欢迎大家来到IT世界,在知识的湖畔探索吧!AA:=MA(CLOSE,5); BB:=MA(CLOSE,10); CC:=MA(CLOSE,30); T1:AA>BB AND BB>CC; 

以上情况维持一段时间,假设我们这里定为4天以上:

COUNT(T1, 4)=4; 

COUNT(X, N)表示统计在N天内满足条件X的有几天。

最终的结果就是如下所示:

欢迎大家来到IT世界,在知识的湖畔探索吧!AA:=MA(CLOSE,5); BB:=MA(CLOSE,10); CC:=MA(CLOSE,30); T1:=AA>BB AND BB>CC; COUNT(T1,4)=4; 

4.4.16 某绝对时间段最高价

此脚本段求2022年8月3日到2022年12月31日间的最高价:

HH:=IF(YEAR=2022 AND (MONTH>8 OR (MONTH=8 AND DAY>=3) ) AND (MONTH<12 OR (MONTH=12 AND DAY<=31) ),H,0);{HH变量在该时间段内等于H,其他时间为0} HHV(HH,0);{此例求2022年8月3日到2022年12月31日间的最高价} 

4.4.17 在某个时间段内某条件满足

二十个交易日内时候涨停过

欢迎大家来到IT世界,在知识的湖畔探索吧!TT:=C/REF(C,1) > 1.095;{是否涨停} COUNT(TT, 20) > 0;{二十个交易日内时候涨停过} 


#学习# #编程# #在头条记录我的2025#


通达信公式编写指南

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/138627.html

(0)
上一篇 33分钟前
下一篇 8分钟前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信