通达信公式编写基础教程

2020-06-1117:49:17通达信公式编写基础教程已关闭评论

作者:

主角:

APP离线看全本

1.公式类型说明

调出公式管理器: 功能-公式系统-公式管理器 或者在软件界面使用快捷键 Ctrl+F。
公式类型分为四大类:技术指标公式、条件选股公式、交易系统公式、五彩K线公式。
技术指标公式:用于指标图形的绘制。
条件选股公式:用于条件选股。
交易系统公式:用于专家指示及测参、测指。
五彩K线公式:用于K线模式指示。

通达信公式编写基础教程

这四种公式相互独立,名称可以相同,但其内容和作用不同。
每种类型的公式包括四种形式:
系统加密公式:用绿色图标和锁形符号显示,要进行密码确认
系统公式:用绿色图标显示,可进行删改
用户加密公式:用红色图标和锁形符号显示,要进行密码确认
用户公式:用红色图标显示,可进行删改

1.1 技术指标公式
我们在技术分析界面中见到的指标为技术指标公式,比如MA, KDJ , MACD 等;可以通过公式管理器编写技术指标公式,在公式管理器界面选择技术指标公式,点击右边的"新建"就可进入技术指标公式编辑区。如下图:

通达信公式编写基础教程

在指标公式编辑区,可以通过"引入指标公式",在已有指标的基础上修改指标公式,也可以通过插入函数来实现指标公式的编写;编写完后测试公式,测试通过后退出,输入公式名称就可调出指标公式使用。

1.2 条件选股公式
利用条件选股公式可以把符合一定技术形态的个股选出来,首先在公式管理器中建立条件选股公式,再通过"条件选股"调用条件选股公式。
条件选股调出:功能选股器条件选股

通达信公式编写基础教程

1.3交易系统公式
编写好交易系统公式后,可以叠加到K线上,交易系统自动列出买卖操作信号。

交易系统公式调出操作如下:

在K线界面点击鼠标右键,选择交易系统指标,如下图:

通达信公式编写基础教程 通达信公式编写基础教程

选择一交易系统,点击"确定",交易系统就会叠加在K线上面了。如下图:

通达信公式编写基础教程

1.4.五彩K线公式
编写好五彩公式后,可以叠加到K线上,会把特殊的K线形态用不同的颜色标识出来。

五彩K线公式调出操作如下:

在K线界面点击鼠标右键,选择五彩K线指示,如下图:

通达信公式编写基础教程 通达信公式编写基础教程

选择一五彩K线,点击"确定",五彩K线就会叠加在K线上面了。如下图:

通达信公式编写基础教程

2.公式函数的使用
函数在公式编写非常重要,如果作个比喻,我们用一种语言去告诉电脑我的想法,并且让它去帮我做,那么函数就是这种语言的单词。
我们在公式编辑器中选择插入函数,就可以看到里面有许多的函数,我们在附录中有一个简表,大家可以到那里去检索。如下图:

通达信公式编写基础教程

例一:
一根K线有四个价格组成:
最高价:HIGH
收盘价:CLOSE
最低价:LOW
开盘价:OPEN
成交量:VOL
成交额:AMO

例二:
两条均线不断地交叉,就专门设定了一条函数来描述两条线交叉:CROSS(X,Y)
假如下图中的两条均线一条名叫X,另外一条叫Y
CROSS(X,Y)表示X向上穿过了Y
CROSS(Y,X)表示Y向上穿过了X

例三:
前面的CLOSE,还是VOL,都表示当天,或者您使用的不是日线,那就表示本周期的数据,那么前几天的怎么表示呢?
REF(X,M)
例如:
REF(Close,5)表示5天前的收盘价;
REF(Vol,10)表示10天前的成交量;
这里的M就是参数。

什么是参数?
比如讲:10日均线,您可以把10日当作参数,好处在于,您觉得需要修改成5日的时候,就可以使用一些简单的方法,例如参数精灵来很方便的修改和调整。参数需要名字,例如M就不错。还要规定参数的范围,例如1日至260日。这样我们就可以在1到260之间任意调节M的值了,M最常用的数填在"缺省"一栏,例如你最喜欢用10日均线,那就填10吧。

例四:
如果我想把两个条件并列在一起怎么办?
AND
X AND Y就表示条件X和条件Y

3.公式编写举例
3.1 均线指标编写
进入公式管理器,新建一技术指标公式

依次点击菜单"功能-公式系统-公式管理器",进入公式管理器界面。如下图:

通达信公式编写基础教程

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

 

通达信公式编写基础教程

填写完公式名称,公式描述,点击"插入函数",选择"简单移动平均",简单移动平均函数的用法会在对话框下边列出来,点击"确定"按钮,对应的函数会在公式编辑框内显示出来。如下图所示:

通达信公式编写基础教程通达信公式编写基础教程

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

通达信公式编写基础教程

录入后,下面的动态翻译区会自动翻译公式的意义,"收盘价的10日简单移动平均",这样一条10日均线的指标就形成了。

编辑器区的相关说明如下:

公式类型:对应的公式可选择加入不同的类型,设定后查看公式时将会在对应的分类项下列出来;

画线方法:通达信公式编写基础教程

选择副图,指标将会在副图区显示,选择主图叠加,指标将会在主图区显示(如常用指标MA就是主图指标),也可选择在副图上叠加K线,美国线,收盘站线。

通达信公式编写基础教程

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

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

点击 "测试公式",若显示测试通过,点击"确定"按钮保存公式。

调出公式时,键盘输入公式名字 JX1 回车,如下图所示:

通达信公式编写基础教程

3.2简单条件选股公式编写
下面编写一选股公式,要求选出"股价小于每股净资产"的个股。

进入公式管理器,新建一条件选股公式

依次点击菜单"功能-公式系统-公式管理器",进入公式管理器界面。如下图:

通达信公式编写基础教程

选择左边树型列表中条件选股公式下面的其它类型,点击"新建",如下图:

通达信公式编写基础教程

输入公式名称,公式描述, 如下图所示:

通达信公式编写基础教程

点"插入函数",选择"收盘价",点击"确定",对应的函数就到了编辑区,如下图所示:

通达信公式编写基础教程通达信公式编写基础教程

录入空格 ,输入 小于号, 再点"插入函数",在财务函数中找到每股净资产放到后面,以分号结尾,如下图所示:

通达信公式编写基础教程

通达信公式编写基础教程

点击 "测试公式",若显示测试通过,点击"确定"按钮保存公式。

4.基础语法

{ } 是解释,不输出,为了提示自己和别人,便于看懂公式

:= 赋值符,意为“相当于”,上图它前面的a1,a2,a3都是随便输的名称。

: 输出符 先定义条件,这是告诉软件要做的事

; 分段符,表示一段完成

, 分节符

4.1、close 是收盘价的意思。CLOSE<10 意思是收盘价小于10元

4.2、vol是成交量的意思。capital是流通股本 VOL/CAPITAL*100>5 意思是成交量除以流通股本,再乘以100.(因为成交量是按手计算,而股本是按股算。)也就是换手率小于5.

4.3、every 是一直存在的意思,open 是开盘价的意思。 使用方法是 EVERY(条件,N) 本公式条件是close>open 阳线。N 是满足的天数。EVERY(CLOSE>OPEN,3) 表示3日内一直阳线。

4.4、and 是并且的意思。有时有好几个条件,中间用 and 连接。

5.附公式函数列表
5.1行情函数

HIGH 最高价

返回该周期最高价。

用法: HIGH

H 最高价

返回该周期最高价。

用法: H

LOW 最低价

返回该周期最低价。

用法: LOW

L 最低价

返回该周期最低价。

用法: L

CLOSE 收盘价

返回该周期收盘价。

用法: CLOSE

C 收盘价

返回该周期收盘价。

用法: C

VOL 成交量

返回该周期成交量。

用法: VOL

V 成交量

返回该周期成交量。

用法: V

OPEN 开盘价

返回该周期开盘价。

用法: OPEN

O: 开盘价

返回该周期开盘价。

用法: O

ADVANCE 上涨家数

返回该周期上涨家数。

用法: ADVANCE (本函数仅对大盘有效)

DECLINE 下跌家数

返回该周期下跌家数。

用法: DECLINE (本函数仅对大盘有效)

AMOUNT 成交额

返回该周期成交额。

用法: AMOUNT

ASKPRICE 委卖价

返回委卖1--委卖3价格。

用法: ASKPRICE(N) N取1—3。

(本函数仅个股在分笔成交分析周期有效)

ASKVOL 委卖量

返回委卖1--委卖3量。

用法: ASKVOL(N) N取1—3。

(本函数仅个股在分笔成交分析周期有效)

BIDPRICE 委买价

返回委买1--委买3价格。

用法: BIDPRICE(N) N取1—3。

(本函数仅个股在分笔成交分析周期有效)

BIDVOL 委买量

返回委买1--委买3量。

用法: BIDVOL(N) N取1—3。

(本函数仅个股在分笔成交分析周期有效)

BUYVOL 主动性买盘

返回主动性买单量。

用法: BUYVOL 当本笔成交为主动性买盘时,其数值等于成交量,否则为0。

(本函数仅个股在分笔成交分析周期有效)

SELLVOL 主动性卖盘

返回主动性卖单量。

用法: SELLVOL 当本笔成交为主动性卖盘时,其数值等于成交量,否则为0。

(本函数仅个股在分笔成交分析周期有效)

ISBUYORDER 主动性买单

返回该成交是否为主动性买单。

用法: ISBUYORDER 当本笔成交为主动性买盘时,返回1,否则为0。

(本函数仅个股在分笔成交分析周期有效)

ISSELLORDER 主动性卖单

返回该成交是否为主动性卖单。

用法: ISSELLORDER 当本笔成交为主动性卖盘时,返回1,否则为0。

(本函数仅个股在分笔成交分析周期有效)]

4.2时间函数

DATE 日期

取得该周期从1900以来的年月日。

用法: DATE 例如函数返回1000101,表示2000年1月1日。

TIME 时间

取得该周期的时分秒。

用法: TIME 函数返回有效值范围为(000000-235959)。

YEAR 年份

取得该周期的年份。

用法:YEAR

MONTH 月份

取得该周期的月份。

用法:MONTH 函数返回有效值范围为(1-12)。

WEEK 星期

取得该周期的星期数。

用法: WEEK 函数返回有效值范围为(0-6),0表示星期天。

DAY 日期

取得该周期的日期。

用法: DAY 函数返回有效值范围为(1-31)。

HOUR 小时

取得该周期的小时数。

用法: HOUR 函数返回有效值范围为(0-23),对于日线及更长的分析周期值为0。

MINUTE 分钟

取得该周期的分钟数。

用法: MINUTE 函数返回有效值范围为(0-59),对于日线及更长的分析周期值为0。

FROMOPEN 分钟

求当前时刻距开盘有多长时间。

用法: FROMOPEN 返回当前时刻距开盘有多长时间,单位为分钟。

例如:  FROMOPEN 当前时刻为早上十点,则返回31。

4.3引用函数

DRAWNULL 无效数

返回无效数。

用法: DRAWNULL

例如: IF(CLOSE>REF(CLOSE,1),CLOSE,DRAWNULL) 表示下跌时分析图上不画线。

BACKSET 向前赋值

将当前位置到若干周期前的数据设为1。

用法: BACKSET(X,N) 若X非0,则将当前位置到N周期前的数值设为1。

例如: BACKSET(CLOSE>OPEN,2) 若收阳则将该周期及前一周期数值设为1,否则为0。

BARSCOUNT 有效数据周期数

求总的周期数。

用法: BARSCOUNT(X) 第一个有效数据到当前的天数。

例如: BARSCOUNT(CLOSE) 对于日线数据取得上市以来总交易日数,对于分笔成交取得当日成交笔数,对于1分钟线取得当日交易分钟数。

CURRBARSCOUNT 到最后交易日的周期数

求到最后交易日的周期数.

用法:

CURRBARSCOUNT 求到最后交易日的周期数

TOTALBARSCOUNT 总的周期数

求总的周期数.

用法:

TOTALBARSCOUNT 求总的周期数

BARSLAST 上一次条件成立位置

上一次条件成立到当前的周期数。

用法: BARSLAST(X) 上一次X不为0到现在的天数。

例如: BARSLAST(CLOSE/REF(CLOSE,1)>=1.1) 表示上一个涨停板到当前的周期数。

BARSSINCE 第一个条件成立位置

第一个条件成立到当前的周期数。

用法: BARSSINCE(X) 第一次X不为0到现在的天数。

例如: BARSSINCE(HIGH>10) 表示股价超过10元时到当前的周期数。

COUNT 统计

统计满足条件的周期数。

用法: COUNT(X,N) 统计N周期中满足X条件的周期数,若N=0则从第一个有效值开始。

例如: COUNT(CLOSE>OPEN,20) 表示统计20周期内收阳的周期数。

HHV 最高值

求最高值。

用法: HHV(X,N) 求N周期内X最高值,N=0则从第一个有效值开始。

例如: HHV(HIGH,30) 表示求30日最高价。

HHVBARS 上一高点位置

求上一高点到当前的周期数。

用法: HHVBARS(X,N) 求N周期内X最高值到当前周期数,N=0表示从第一个有效值开始统计。

例如: HHVBARS(HIGH,0) 求得历史新高到到当前的周期数。

LLV 最低值

求最低值。

用法: LLV(X,N) 求N周期内X最低值,N=0则从第一个有效值开始。

例如: LLV(LOW,0) 表示求历史最低价。

LLVBARS 上一低点位置

求上一低点到当前的周期数。

用法: LLVBARS(X,N) 求N周期内X最低值到当前周期数,N=0表示从第一个有效值开始统计。

例如: LLVBARS(HIGH,20) 求得20日最低点到当前的周期数。

REVERSE 求相反数

求相反数。

用法: REVERSE(X) 返回-X。

例如: REVERSE(CLOSE) 返回-CLOSE。

REF 向前引用

引用若干周期前的数据。

用法: REF(X,A) 引用A周期前的X值。

例如: REF(CLOSE,1) 表示上一周期的收盘价,在日线上就是昨收。

REFDATE 指定引用

引用指定日期的数据。

用法: REFDATE(X,A) 引用A日期的X值。

例如: REF(CLOSE,20011208) 表示2001年12月08日的收盘价。

SUM 总和

求总和。

用法: SUM(X,N) 统计N周期中X的总和,N=0则从第一个有效值开始。

例如: SUM(VOL,0) 表示统计从上市第一天以来的成交量总和。

FILTER 过滤

过滤连续出现的信号。

用法: FILTER(X,N) X满足条件后,删除其后N周期内的数据置为0。

例如: FILTER(CLOSE>OPEN,5) 查找阳线,5天内再次出现的阳线不被记录在内。

SUMBARS 累加到指定值的周期数

向前累加到指定值到现在的周期数。

用法: SUMBARS(X,A) 将X向前累加直到大于等于A,返回这个区间的周期数。

例如: SUMBARS(VOL,CAPITAL) 求完全换手到现在的周期数。

SMA 移动平均

返回移动平均。

用法: SMA(X,N,M) X的M日移动平均,M为权重,如Y=(X*M+Y'*(N-M))/N

MA 简单移动平均

返回简单移动平均。

用法: MA(X,M) X的M日简单移动平均。

DMA 动态移动平均

求动态移动平均。

用法: DMA(X,A) 求X的动态移动平均。

算法: 若Y=DMA(X,A)则 Y=A*X+(1-A)*Y',其中Y'表示上一周期Y值,A必须小于1。

例如: DMA(CLOSE,VOL/CAPITAL) 表示求以换手率作平滑因子的平均价。

EMA(或EXPMA) 指数移动平均

返回指数移动平均。

用法: EMA(X,M) X的M日指数移动平均。

MEMA 平滑移动平均

返回平滑移动平均

用法: MEMA(X,M) X的M日平滑移动平均。

MEMA(X,N)与MA的差别在于起始值为一平滑值,而不是初始值

EXPMEMA 指数平滑移动平均

返回指数平滑移动平均。

用法: EXPMEMA(X,M) X的M日指数平滑移动平均。

EXPMEMA同EMA(即EXPMA)的差别在于他的起始值为一平滑值

RANGE 介于某个范围之间

用法: RANGE(A,B,C) A在B和C。

例如: RANGE(A,B,C)表示A大于B同时小于C时返回1,否则返回0。

CONST 取值设为常数

用法:  CONST(A) 取A最后的值为常量.

例如: CONST(INDEXC)表示取大盘现价。

4.4逻辑函数

CROSS 上穿

两条线交叉。

用法: CROSS(A,B) 表示当A从下方向上穿过B时返回1,否则返回0。

例如: CROSS(MA(CLOSE,5),MA(CLOSE,10)) 表示5日均线与10日均线交金叉。

LONGCROSS 维持一定周期后上穿

两条线维持一定周期后交叉。

用法: LONGCROSS(A,B,N) 表示A在N周期内都小于B,本周期从下方向上穿过B时返回1,否则返回0。

UPNDAY 连涨

返回是否连涨周期数。

用法: UPNDAY(CLOSE,M) 表示连涨M个周期。

DOWNNDAY 连跌

返回是否连跌周期。

用法: DOWNNDAY(CLOSE,M) 表示连跌M个周期。

NDAY 连大

返回是否持续存在X>Y。

用法: NDAY(CLOSE,OPEN,3) 表示连续3日收阳线。

EXIST 存在

是否存在。

用法: EXIST(CLOSE>OPEN,10) 表示前10日内存在着阳线。

EVERY 一直存在

一直存在。

用法: EVERY(CLOSE>OPEN,10) 表示前10日内一直阳线。

LAST 持续存在

用法: LAST(X,A,B)  A>B,表示从前A日到前B日一直满足X条件。若A为0,表示从第一天开始,B为0,表示到最后日止。

例如: LAST(CLOSE>OPEN,10,5) 表示从前10日到前5日内一直阳线。

4.5算术函数

NOT 取反

求逻辑非。

用法: NOT(X) 返回非X,即当X=0时返回1,否则返回0。

例如: NOT(ISUP) 表示平盘或收阴。

IF 逻辑判断

根据条件求不同的值。

用法: IF(X,A,B) 若X不为0则返回A,否则返回B。

例如: IF(CLOSE>OPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返回最低值。

IFF 逻辑判断

根据条件求不同的值。

用法: IFF(X,A,B) 若X不为0则返回A,否则返回B。

例如: IFF(CLOSE>OPEN,HIGH,LOW) 表示该周期收阳则返回最高值,否则返回最低值。

IFN 逻辑判断

根据条件求不同的值。

用法: IFN(X,A,B) 若X不为0则返回B,否则返回A。

例如: IFN(CLOSE>OPEN,HIGH,LOW) 表示该周期收阴则返回最高值,否则返回最低值。

MAX 较大值

求最大值。

用法: MAX(A,B) 返回A和B中的较大值。

例如: MAX(CLOSE-OPEN,0) 表示若收盘价大于开盘价返回它们的差值,否则返回0。

MIN 较小值

求最小值。

用法: MIN(A,B) 返回A和B中的较小值。

例如: MIN(CLOSE,OPEN) 返回开盘价和收盘价中的较小值。

4.6数学函数

ACOS 反余弦

反余弦值。

用法: ACOS(X) 返回X的反余弦值。

ASIN 反正弦

反正弦值。

用法: ASIN(X) 返回X的反正弦值。

ATAN 反正切

反正切值。

用法: ATAN(X) 返回X的反正切值。

COS 余弦

余弦值。

用法: COS(X) 返回X的余弦值。

SIN 正弦

正弦值。

用法: SIN(X) 返回X的正弦值。

TAN 正切

正切值。

用法: TAN(X) 返回X的正切值。

EXP 指数

指数。

用法: EXP(X) e的X次幂。

例如: EXP(CLOSE) 返回e的CLOSE次幂。

LN 自然对数

求自然对数。

用法: LN(X) 以e为底的对数。

例如: LN(CLOSE) 求收盘价的对数。

LOG 对数

求10为底的对数。

用法: LOG(X) 取得X的对数。

例如: LOG(100) 等于2。

SQRT 开方

开平方。

用法: SQRT(X)  求X的平方根。

例如: SQRT(CLOSE) 收盘价的平方根。

ABS 绝对值

求绝对值。

用法: ABS(X) 返回X的绝对值。

例如: ABS(-34) 返回34。

POW 乘幂

乘幂。

用法: POW(A,B) 返回A的B次幂。

例如: POW(CLOSE,3) 求得收盘价的3次方。

CEILING 向上舍入

向上舍入。

用法: CEILING(A) 返回沿A数值增大方向最接近的整数。

例如: CEILING(12.3) 求得13,CEILING(-3.5)求得-3。

FLOOR 向下舍入

向下舍入。

用法: FLOOR(A) 返回沿A数值减小方向最接近的整数。

例如: FLOOR(12.3) 求得12,FLOOR(-3.5)求得-4。

INTPART 取整

用法: INTPART(A) 返回沿A绝对值减小方向最接近的整数。

例如: INTPART(12.3) 求得12,INTPART(-3.5)求得-3。

BETWEEN: 介于

介于。

用法: BETWEEN(A,B,C) 表示A处于B和C之间时返回1,否则返回0。

例如: BETWEEN(CLOSE,MA(CLOSE,10),MA(CLOSE,5))表示收盘价介于5日均线和10日均线之间。

4.7统计函数
AVEDEV 平均绝对方差

AVEDEV(X,N)  返回平均绝对方差。

DEVSQ 数据偏差平方和

DEVSQ(X,N)  返回数据偏差平方和。

FORCAST 线性回归预测值

FORCAST(X,N)  返回线性回归预测值。

SLOPE 线性回归斜率

SLOPE(X,N)  返回线性回归斜率。

STD 估算标准差

STD(X,N)  返回估算标准差。

STDP 总体标准差

STDP(X,N)  返回总体标准差。

VAR 估算样本方差

VAR(X,N)  返回估算样本方差。

VARP 总体样本方差

VARP(X,N)  返回总体样本方差 。

4.8横向统计
BLOCKSETNUM 板块股票个数

用法: BLOCKSETNUM(板块名称) 返回该板块股票个数。

HORCALC 多股统计

用法: HORCALC(板块名称,数据项,计算方式,权重)

数据项:100-HIGH,101-OPEN,102-LOW,103-CLOSE,104-VOL,105-涨幅

计算方式: 0-累加,1-排名次

权重: 0-总股本,1-流通股本,2-等同权重,3-流通市值

4.9形态函数

COST 成本分布

成本分布情况。

用法: COST(10),表示10%获利盘的价格是多少,即有10%的持仓量在该价格以下,其余90%在该价格以上,为套牢盘。

该函数仅对日线分析周期有效。

PEAK 波峰值

前M个ZIG转向波峰值。

用法: PEAK(K,N,M) 表示之字转向ZIG(K,N)的前M个波峰的数值,M必须大于等于1。

例如: PEAK(1,5,1) 表示%5最高价ZIG转向的上一个波峰的数值。

PEAKBARS 波峰位置

前M个ZIG转向波峰到当前距离。

用法: PEAKBARS(K,N,M) 表示之字转向ZIG(K,N)的前M个波峰到当前的周期数,M必须大于等于1。

例如: PEAKBARS (0,5,1) 表示%5开盘价ZIG转向的上一个波峰到当前的周期数。

SAR 抛物转向

抛物转向。

用法:  SAR(N,S,M),N为计算周期,S为步长,M为极值。

例如: SAR(10,2,20) 表示计算10日抛物转向,步长为2%,极限值为20%。

SARTURN 抛物转向点

抛物转向点。

用法: SARTURN(N,S,M) N为计算周期,S为步长,M为极值,若发生向上转向则返回1,若发生向下转向则返回-1,否则为0。

其用法与SAR函数相同。

TROUGH 波谷值

前M个ZIG转向波谷值。

用法: TROUGH(K,N,M) 表示之字转向ZIG(K,N)的前M个波谷的数值,M必须大于等于1。

例如: TROUGH(2,5,2) 表示%5最低价ZIG转向的前2个波谷的数值。

TROUGHBARS 波谷位置

前M个ZIG转向波谷到当前距离。

用法: TROUGHBARS(K,N,M) 表示之字转向ZIG(K,N)的前M个波谷到当前的周期数,M必须大于等于1。

例如: TROUGH(2,5,2) 表示%5最低价ZIG转向的前2个波谷到当前的周期数。

WINNER 获利盘比例

获利盘比例。

用法: WINNER(CLOSE) 表示以当前收市价卖出的获利盘比例。

例如: 返回0.1表示10%获利盘,WINNER(10.5)表示10.5元价格的获利盘比例。

该函数仅对日线分析周期有效。

LWINNER 近期获利盘比例

近期获利盘比例。

用法: LWINNER(5,CLOSE) 表示最近5天的那部分成本以当前收市价卖出的获利盘比例。例如返回0.1表示10%获利盘。

PWINNER 远期获利盘比例

远期获利盘比例。

用法: PWINNER(5,CLOSE) 表示5天前的那部分成本以当前收市价卖出的获利盘比例。例如返回0.1表示10%获利盘。

COSTEX 区间成本

区间成本。

用法: COSTEX(CLOSE,REF(CLOSE)),表示近两日收盘价格间筹码的成本,例如返回10表示区间成本为20元。

该函数仅对日线分析周期有效。

PPART 远期成本分布比例

远期成本分布比例。

用法: PPART(10),表示10前的成本占总成本的比例,0.2表示20%。

ZIG 之字转向

之字转向。

用法: ZIG(K,N) 当价格变化量超过N%时转向,K表示0:开盘价,1:最高价,2:最低价,3:收盘价,其余:数组信息

例如: ZIG(3,5) 表示收盘价的5%的ZIG转向。

4.10 大盘函数

INDEXA  返回大盘成交额

INDEXADV 返回上涨家数

INDEXDEC 返回下跌家数

INDEXC  返回大盘收盘价

INDEXH  返回大盘最高价

INDEXL  返回大盘最低价

INDEXO  返回大盘开盘价

INDEXV  返回大盘成交量

4.11绘图函数
PLOYLINE 折线段

在图形上绘制折线段。

用法: PLOYLINE(COND,PRICE),当COND条件满足时,以PRICE位置为顶点画折线连接。

例如: PLOYLINE(HIGH>=HHV(HIGH,20),HIGH)表示在创20天新高点之间画折线。

DRAWLINE 绘制直线段

在图形上绘制直线段。

用法: DRAWLINE(COND1,PRICE1,COND2,PRICE2,EXPAND)

当COND1条件满足时,在PRICE1位置画直线起点,当COND2条件满足时,在PRICE2位置画直线终点,EXPAND为延长类型。

例如: DRAWLINE(HIGH>=HHV(HIGH,20),HIGH,LOW<=LLV(LOW,20),LOW,1) 表示在创20天新高与创20天新低之间画直线并且向右延长。

DRAWKLINE 绘制K线

用法: DRAWKLINE(HIGH,OPEN,LOW,CLOSE) 以HIGH为最高价,OPEN为开盘价,LOW为最低,CLOSE收盘画K线。

STICKLINE 绘制柱线

在图形上绘制柱线。

用法: STICKLINE(COND,PRICE1,PRICE2,WIDTH,EMPTY),当COND条件满足时,在PRICE1和PRICE2位置之间画柱状线,宽度为WIDTH(10为标准间距),EMPTH不为0则画空心柱。

例如: STICKLINE(CLOSE>OPEN,CLOSE,OPEN,0.8,1)表示画K线中阳线的空心柱体部分。

DRAWICON 绘制图标

在图形上绘制小图标。

用法: DRAWICON(COND,PRICE,TYPE),当COND条件满足时,在PRICE位置画TYPE号图标。

例如: DRAWICON(CLOSE>OPEN,LOW,1) 表示当收阳时在最低价位置画1号图标。图标一共有九个,图形如附图。序号,最下面的是"1"号,最上面的是"9"号。

DRAWTEXT 显示文字

在图形上显示文字。

用法: DRAWTEXT(COND,PRICE,TEXT),当COND条件满足时,在PRICE位置书写文字TEXT。

例如: DRAWTEXT(CLOSE/OPEN>1.08,LOW,'大阳线')表示当日涨幅大于8%时在最低价位置显示'大阳线'字样。

4.12财务函数
FINANCE(1)   总股本(股)

FINANCE(2)   国家股(股)

FINANCE(3)   发起人法人股(万股)

FINANCE(4)   法人股(股)

FINANCE(5)   B股(股)

FINANCE(6)   H股(股)

FINANCE(7)   流通股本(股)

CAPITAL     流通股本(手)

FINANCE(8)    职工股(股)

FINANCE(10)   总资产

FINANCE(11)   流动资产

FINANCE(12)   固定资产

FINANCE(13)   无形资产

FINANCE(14)   长期投资

FINANCE(15)   流动负债

FINANCE(16)   长期负债

FINANCE(17)   资本公积金

FINANCE(18)   每股公积金

FINANCE(19)   股东权益

FINANCE(20)   主营收入

FINANCE(21)   主营利益

FINANCE(22)   其它利益

FINANCE(23)   营业利益

FINANCE(24)   投资收益

FINANCE(25)   补贴收入

FINANCE(26)   营业外收支

FINANCE(27)   上年损益调整

FINANCE(28)   利益总额

FINANCE(29)   税后利益

FINANCE(30)   净利益

FINANCE(31)   未分配利益

FINANCE(32)   每股未分配利润

FINANCE(33)   每股收益

FINANCE(34)   每股净资产

FINANCE(35)   调整每股净资产

FINANCE(36)   股东权益比

FINANCE(40)   流通市值

FINANCE(41)   总市值

FINANCE(42)   上市日期

4.13动态行情函数
DYNAINFO(3) 前收盘价

DYNAINFO(4) 今开

DYNAINFO(5) 最高

DYNAINFO(6) 最低

DYNAINFO(7) 现价

DYNAINFO(8) 总手

DYNAINFO(9) 现手

DYNAINFO(10) 总成交金额

DYNAINFO(11) 均价

DYNAINFO(12) 日升跌

DYNAINFO(13) 振幅度

DYNAINFO(14) 涨幅度

DYNAINFO(15) 委托比

DYNAINFO(16) 委量差

DYNAINFO(17) 量比

DYNAINFO(20) 最新叫买价

DYNAINFO(21) 最新叫卖价

DYNAINFO(22) 内盘

DYNAINFO(23) 外盘

DYNAINFO(25) 买一量

DYNAINFO(26) 买二量

DYNAINFO(27) 买三量

DYNAINFO(28) 买一价

DYNAINFO(29) 买二价

DYNAINFO(30) 买三价

DYNAINFO(31) 卖一量

DYNAINFO(32) 卖二量

DYNAINFO(33) 卖三量

DYNAINFO(34) 卖一价

DYNAINFO(35) 卖二价

DYNAINFO(36) 卖三价

DYNAINFO(37) 换手率

DYNAINFO(39) 市盈率

DYNAINFO(40) 成交方向

DYNAINFO(50) 采样点数

DYNAINFO(51) 内外比

DYNAINFO(52) 多空平衡

DYNAINFO(53) 多头获利

DYNAINFO(54) 空头回补

DYNAINFO(55) 多头止损

DYNAINFO(56) 空头止损

DYNAINFO(57) 笔升跌

4.14线形和颜色属性
COLOR 自定义色

格式为COLOR+"RRGGBB":RR、GG、BB表示红色、绿色和蓝色的分量,每种颜色的取值范围是00-FF,采用了16进制。

例如:MA5:MA(CLOSE,5),COLOR00FFFF 表示纯红色与纯绿色的混合色:COLOR808000表示淡蓝色和淡绿色的混合色。

COLORBLACK 画黑色

COLORBLUE 画蓝色 COLORff0000

COLORGREEN 画绿色 COLOR00FF00

COLORCYAN 画青色

COLORRED 画红色 COLOR0000FF

COLORMAGENTA 画洋红色

COLORBROWN 画棕色

COLORLIGRAY 画淡灰色

COLORGRAY  画深灰色

COLORLIBLUE 画淡蓝色

COLORLIGREEN 画淡绿色

COLORLICYAN 画淡青色

COLORLIRED 画淡红色

COLORLIMAGENTA 画淡洋红色

COLORYELLOW 画黄色

COLORWHITE 画白色

LINETHICK 线型粗细

格式:"LINETHICK+(1-9)" 参数的取值范围在1—9之间,"LINETHICK1"表示最细的线,而"LINETHICK9"表示最粗的线。

STICK 画柱状线

COLORSTICK 画彩色柱状线

VOLSTICK 画彩色柱状线

成交量柱状线,当股价上涨时显示红色空心柱,则显示绿色实心柱

LINESTICK 同时画出柱状线和指标线

CROSSDOT 画小叉线

CIRCLEDOT 画小圆圈线

POINTDOT 画小圆点线

公式系统(中级)

1.基本公式编写实例
在前面的学习当中,我们见到了一些基本的表达方法、方式,今天我们的任务是学习一些常见的概念如何编写,例如上面所列出来的放量、上涨等等,因为这些都是在公式编写过程当中要用到的基本形态特征,许多的技术指标的选股条件都是由它们组成的。

1.1放量
1、 今日比昨日的成交量放大了1倍:
VOL/REF(VOL,1)>2;

2、今日的五日均量比五天前的五日均量放大了3倍:
AA:=MA(VOL,5);
BB:=REF(AA,5);
AA/BB>4;

3、今天的成交量达到了整个流通盘的10%以上:
VOL/CAPITAL>10/100;
(注意,10%的表达式是10/100,或者0.1)

1.2 缩量
今日比昨日的成交量缩小了1倍:
VOL/REF(VOL,1)<0.5;

今日的五日均量比五天前的五日均量缩小了一半:
AA:=MA(VOL,5);
BB:=REF(AA,5);
AA/BB<0.5;

今天的成交量不足整个流通盘的0.5%:
VOL/CAPITAL<0.5/100;

1.3上涨

1、今日涨幅达到了7%以上:
CLOSE/REF(CLOSE,1)>1.07;

2、十日均价继续上涨:
AA:=MA(CLOSE,10);
BB:=REE(AA,1);
AA>BB;

1.4下跌

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

1.5高开、低开

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

2、当天股价低开:OPEN<REF(CLOSE,1);

1.6跳空

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

1.7
放量上攻

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

1.8
高开高走

AA:=OPEN>REF(CLOSE,1);{开盘价大于昨收}
BB:=CLOSE>OPEN;{当日收阳线}
AA AND BB;

1.9
创新高

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

1.10横盘整理
横盘整理指最近一段时期价格在一定幅度之内摆动:
(HHV(CLOSE,10)-LLV(CLOSE,10))/CLOSE<0.05;
其中的LLV(X,N)是求N周期内X最低值。因此该公式表示10日收盘价振幅振幅在5%以内。

2. 公式组合实例
下面介绍如何对基本公式进行组合,描述一些简单的K线形态。在编写公示前,需要准确对K线形态进行定义。

2.1 向上跳空之后两天内并未回补

定义:实际上就是昨天发生了跳空缺口,这两天的最低价一直在两天前的最高价之上。

AA:=REF(OPEN,1)>REF(HIGH,2);
BB:=REF(LOW,1)>REF(HIGH,2);
CC:=LOW>REF(HIGH,2);
AA AND BB AND CC;
仔细一想,若BB成立,AA一定成立,AA实际上没有存在的必要。
更简单的方法,下面的一句话可以的上面的四句:
COUNT(LOW>REF(HIGH,2),2)=2;

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

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

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的有几天。
最终的结果就是如下所示:
AA:=MA(CLOSE,5);
BB:=MA(CLOSE,10);
CC:=MA(CLOSE,30);
T1:=AA>BB AND BB>CC;
COUNT(T1,4 )=4;

2.3逃顶K线形态之--黄昏之星

定义:当市场出现一条大阳线后,通常会产生跳空高开的情况,有时便会出现十字星或类似十字星的小阴线(小阳线),当该形态出现在一段上升行情的当中,就很容易形成经典K线形态--黄昏之星。

为了结构简单起见,首先将二天的高开低收用中间表达式表达出来,因为我们在后面的编写过程中会分别使用到这些数据。
1、今日K线的:

开-a1, a1:=open;
收-a2, a2:=close;
高-a3, a3:=high;

2、昨天K线的:

开-b1, b1:=ref(open,1);
收-b2, b2:=ref(close,1);
高-b3, b3:=ref(high,1);
低-b4, b4:=ref(low,1);

3、前天K线的:

开-c1, c1:=ref(open,2);
收-c2, c2:=ref(close,2);
高-c3, c3:=ref(high,2);
低-c4, c4:=ref(low,2);

4、我们将会分别描述出三天的K线形态,然后汇总,首先我们观察今日K线的特征,今天

是一根低开低走的大阴线,我们给它一些数字上的定义:
a、今日开盘价小于昨日收盘价: aa:=a1<b2 and
b、今日的阴线实体较长,我们用开盘价和收盘价相比,长度大于4%:a1/a2>1.04;
5、昨日K线的特征,是一根十字形态的K线,并且在左右两根K线之上,分别表达为:
a、昨日跳开,高于前天的收盘: bb:=b1>c3
b、昨日收盘同样在缺口之上: and b2>c3
c、线形实体长度很小,也就是昨日开盘和收盘之差比昨日开盘的值小于0.01:

and abs(b1-b2)/b1<0.01
d、K线有上下影线,可以表示为最高价和最低价不等于收盘价也不等于开盘价:

and b3>b1 and b3>b2 and b4<b1 and b4<b2
e、当日的最高价为20天以来的最高价: and b3=hhv(high,20);

6、前日K线的特征:股价大幅上扬,幅度较前一日收盘高出4%并且收盘大于开盘:cc:=c2/ref(close,3)>1.04 and c2>c1;

综合选股条件:最后我们将三天的K线特征结合起来,合成一个最后的条件就是由图所示内容: aa and bb and cc

最终结果就是(可以直接加进通达信公式编辑器):

a1:=open;
a2:=close;
a3:=high;

b1:=ref(open,1);
b2:=ref(close,1);
b3:=ref(high,1);
b4:=ref(low,1);

c1:=ref(open,2);
c2:=ref(close,2);
c3:=ref(high,2);
c4:=ref(low,2);

aa:=a11.04;

bb:=b1>c3 and b2>c3 and abs(b1-b2)/b1<0.01 and b3>b1 and b3>b2 and b4

cc:=c2/ref(close,3)>1.04 and c2>c1;

aa and bb and cc;

如果我们想把这个选股公式改为指标公式,修改最后一个语句就可以了。

将aa and bb and cc; 改为DRAWICON((AA AND BB AND CC),HIGH*1.02,2);

这时在符合条件的K线上方出现了一个绿色的向下箭头,提示卖出。效果如下:

黄昏之星是一个卖出信号,与之相对应的是一个买入信号,称为早晨之星,如下图:

指标源码请参考通达信中的相关选股公式。

2.4突破底部横盘整理创新高

定义:股价突破长期盘整区间,之后放量上攻进入主升段。"长期"设定为150天;"横盘"设定股价在150日均线上下15%波动;放量;并且股价创下150天以来的历史新高。

首先用公式描述放量
a、将会使用5日均量来进行比较,成交量比昨日成交量放大两倍;
b、V1是五日均量,REF(V1,1)就是昨日的均量;
V1:=MA(VOL,5);

V2:=VOL/REF(V1,1)>2;

长期横盘
a、PZ1是当天150日均价: PZ1:=MA(CLOSE,M);
b、PZ2是150日的最高价; PZ2:=HHV(HIGH,M);
c、PZ3是150日的最低价; PZ3:=LLV(LOW,M);
d、PZ4是150日的最高价和150日均价的距离的百分比,PZ5刚好相反是最低价和均价的差的百分比; PZ4:=(PZ2-PZ1)/PZ1; PZ5:=(PZ1-PZ3)/PZ1;
e、设为股价在150日均线上下15%波动,也就是PZ4、PZ5都小于0.15;
PZ:=REF(PZ4,1)<0.15 AND REF(PZ5,1)<0.15;

3、今天创下历史新高,也就是今天的最高价是150天内的最高价!

TP1:HHV(HIGH,M); TP:=HIGH=TP1;

综合三个条件的最后的逻辑判断式就是我们的最后结论:

V2 AND PZ AND TP(参数M=150天)

最终结果就是:

(参数M=150天)

V1:=MA(VOL,5);

V2:=VOL/REF(V1,1)>2;

PZ1:=MA(CLOSE,M);

PZ2:=HHV(HIGH,M);

PZ3:=LLV(LOW,M);

PZ4:=(PZ2-PZ1)/PZ1;

PZ5:=(PZ1-PZ3)/PZ1;

PZ:=REF(PZ4,1)<0.15 AND REF(PZ5,1)<0.15;

TP1:HHV(HIGH,M);

TP:=HIGH=TP1;

V2 AND PZ AND TP;

注意:如果源码加入到公式编辑器后显示错误,请多注意标点符号,需要将中文模式下的标点改成英文模式下的标点,例如:":"改成":", ","改成","以及括号等等。

3. 各种指标公式编辑器的详细区别
公式管理器可管理四种类型的公式:指 标 公 式: 用于指标图形的绘制。条件选股公式:用于条件选股。交易系统公式:用于专家指示及测参、测指。五彩K线公式:用于K线模式指示。这四种公式相互独立,名称可以相同,但其内容和作用不同。每种类型的公式包括四种形式: 系统加密公式:用绿色图标和锁形符号显示,要进行密码确认 系统公式:用绿色图标显示,可进行删改 用户加密公式:用红色图标和锁形符号显示,要进行密码确认 用户公式:用红色图标显示,可进行删改指标公式附加买卖逻辑判断式,得到交易系统公式;指标公式附加选股条件逻辑判断式,得到条件选股公式。指标公式附加色彩逻辑判断,得到五彩K线公式。

3.1 技术指标公式编辑器
技术指标公式即通常所说画线指标,此类公式的主要目的是通过对数据采取一定的运算,将输出结果直观的显现在分析图上,为投资者提供研判行情的基本依据。此类指标至少要有一条输出线,输出包括文字,图标等,本系统老版本允许最多6条的输出线,新版本可以输出50条输出线。技术指标公式编辑器实现对技术图表分析中各类技术指标和自我定义的技术分析指标的编写,并且通过TDX的分析界面形成图表、曲线,以方便和寻找有意义的技术图形和技术特征。

3.2 条件选股公式编辑器
也就是通常意义上解释的智能选股。但我们的目的在于建立一个完全开放、自由的选股平台,可以通过对该平台的熟练使用,借助计算机的高速和准确的检索功能寻找满足您的理解的股票形态和技术特征,如果和预警系统结合起来用,将可以在盘中实时提示符合条件的股票。条件选股公式有且仅有一个输出,这是它和技术指标不同的地方。

3.3 五彩K线公式编辑器
准确讲,该编辑器的功能是附属于条件选股功能之上的,我们可以通过该功能将满足条件的连续K线形态赋予颜色,区别了其它的K线。 条件选股公式与五彩K线公式的区别:条件选股公式和五彩K线公式都有且仅有一个输出,其目的都是为投资者提供买入或卖出点的指示,不同之处在于:条件选股公式仅对最近数据提示买入或卖出,而五彩K线公式则对输入的所有历史数据进行提示。另外,五彩K线公式的输出是在K线图上,通过各种颜色对提示数据进行标识,条件选股公式的输出是找出符合最近条件的所有股票。

3.4 交易系统公式编辑器
交易系统公式是通过设定买入和卖出点(有且仅有这两个输出),由计算机进行模拟操作。以此为依据,系统一方面可以进行五彩K线公式的功能,同时提示买入和卖出;另一方面可以通过模拟操作,对指标买卖的收益、指标的最佳参数及最佳指标等各情形进行测试。交易系统是在条件选股功能上的一次大的延伸,旨在建立一套完整的交易规则体系,通过该编辑器对各个相关的交易环节,包括买入的切入、卖出、止损以及整体的交易性能检验等等作出定量的规定,帮助投资者建立一套属于自己的买卖规则和理论。

公式系统(高级)

1. 特殊公式脚本编写
要编写一个公式,必须要明确这个公式对应的理论知识。一套完整的理论知识且能在通达信的公式平台上做成公式还要满足如下要求:

从该理论应能分析出公式启动的起始数据。如股票的开高低收价格、成交量、各财务数据、各即时数据、时间数据、一些常见的技术分析概念、其他理论的结果等,这些数据大部分是系统提供的,而最后两项则要从其他公式中得来也就是对应于公式编写中的指标引用操作(当然在这公式编写前要确保该要引用的指标已实现)。
从理论中应能分析出起始数据到结果的明确运算过程。在公式平台中提供了一些系统函数,这些函数包含了部分常用的运算过程(如HHV(X,N) 可求N周期内X最高值)。如果理论中的运算过程拆解完全后,能由公式平台中的函数及允许的基本运算全部组成就可以编写成公式了。

在之前的学习当中,我们已经对公式系统、公式脚本编辑有了基本的认识。公式系统提供给我们的基本函数、系统公式,就是我们运用公式系统编写自己的公式时的基本元素。对于一些常见的技术分析概念的编写在上一章节已经给出了介绍和示例,本章节主要来介绍一下在公式脚本编写如果用系统函数及基本运算来解决一些特殊难题。

1.1在分钟周期下划分交易日

1. 均线(分钟):

指标名称:均线(分钟)

指标原理:均价=累加自当日开市到当前K线时间内的成交金额/累加自当日开市到当前K线时间内的成交量。

编写分析:

1.确定交易日内第一根K线的位置(难点);

2.自1中确定的位置累加成交金额、成交量(由系统函数SUM实现);

3.由成交金额、成交量求均价(由除法操作符实现)。

公式脚本:
FIRST:=IF(PERIOD=0,HOUR=9 AND MINUTE=31,

IF(PERIOD=1,HOUR=9 AND MINUTE=35,

IF(PERIOD=2,HOUR=9 AND MINUTE=45,

IF(PERIOD=3,HOUR=10 AND MINUTE=0,

IF(PERIOD=4,HOUR=10 AND MINUTE=30,0)))));

SUM(AMO,BARSLAST(FIRST)+1)/SUM(VOL,BARSLAST(FIRST)+1);

上面的公式适用于1分钟,5分钟,15分钟,30分钟,60分钟等五个周期下。将给出每个交易日中各周期下均线的走势。公式脚本编写中的重点就是First变量的确定,这也是这段脚本的亮点。First变量表示的是当日当前周期的第一根K线位置,是通过IF函数的嵌套使用结合各分钟周期的第一根K线的时间得来的。

1.2 跨周期引用数据
在同一个公式脚本中,所有变量的数据周期都是相同的,就是调用公式时设置的周期。在公式脚本中要用其它周期的数据,共有两种方式:

对变量用变周期符号(#),改变其周期。这种方式有局限性,只能在小周期公式中得到大周期数据,且仅适用于一些基本数据,如close,high,low,open等。
示例脚本:

日最高价:H;

周最高价:H#WEEK;

运行示例:

在公式脚本中调用其它公式以取得其它周期的数据。调用其它公式,并用#设置其周期。如,公式脚本在日线下运行时,可用Kdj.k#week;来获得kdj在周线下的k值,另属于于同一周线的日线将获得相同的K值。
示例脚本:

公式1:

公式名称:JBSJ

公式描述:基本数据

公式脚本:

JC:C;{当前周期收盘价}

JH:H;{当前周期最高价}

JL:L;{当前周期最低价}

JO:O;{当前周期开盘价}

JYC:REF(C,1);{前一个周期收盘价}

公式2:

公式名称:TEST049

公式脚本:

日线开盘价:JBSJ.JO#DAY;

周线开盘价:O;

月线开盘价:JBSJ.JO#MONTH;

运行示例:

使用跨周期引用数据时要注意:

1.可供引用的周期类型有:

MIN1,MIN5,MIN15,MIN30,MIN60,DAY,WEEK,MONTH

分别表示将1,5,15,30,60分钟K线数据,以及日,周,月K线数据,代入被引用的公式,进行运算。

2.意义:

可将大周期内跑的数据,引用到小周期内来跑;也可将小周期内跑的数据,引用到大周期内来跑。

3.切勿对开高低收以外的数据直接使用变周期转换!

4.切勿对大周期内跑的数据使用小周期转换!无论是开高低收等基本数据、还是自定义变量,都无法从大周期数据直接转换成小周期数据,只能通过公式引用来获得小周期数据。

1.3 对某个时间段统计
1)某绝对时间段最高价

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

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

2)某相对时间段最高价

60天前到40天前之间的最高价
REF(HHV(H,60-40),40);

1.4 在某个时间段内某条件满足
TT:=C/REF(C,1)>1.095;{是否涨停}
COUNT(TT,20)>0;{二十个交易日内时候涨停过}

上面的脚本配合1.3中示例可以写出历史某绝对时间段,或相对时间内是否涨停过的选股公式。

上图中的效果还可以借助Filter这个函数来实现。

1.5 K线绘制
示例公式:博弈K线

公式名称:博弈K线

公式脚本:

BKO:WINNER(O),NODRAW;

BKH:WINNER(H),NODRAW;

BKL:WINNER(L),NODRAW;

BKC:WINNER(C),NODRAW;

DRAWKLINE(BKH,BKO,BKL,BKC);

运行示例:

1.6 创新高周期数
成交量创新高周期数脚本:

FV:=IF(BARSCOUNT(C)=0,9999999999,VOL);

量创新高周期数:SUMBARS(REF(FV,1)-FV,0);

{这里的关键是 REF(FV,1)-FV ,想想看写成 FV-REF(FV,1) 行不行?};

1.7脚本控制
在通达信的公式脚本中没有专门的控制语句,一切都是变量(仅有输出与不输出的区别),所以要实现应用于多种情况的脚本也要依靠变量来控制。

系统函数中有几个重要的函数就是IF,IFF,IFN,TESTSKIP.请大家注意的是通达信的函数的参数都是先计算出结果然后将参数传给函数的。因此对于TESTSKIP,最好作为一条单独的语句来使用。

公式脚本1:同1.2中的JBSJ公式。

{用于引用股票的基本数据。}

公式脚本2:FZMN分钟模拟

{用于通过几种分钟周期的数据模拟出当天对应于改周期的各项数据}

N:=IF(PERIOD=0,1,

IF(PERIOD=1,5,

IF(PERIOD=2,15,

IF(PERIOD=3,30,

IF(PERIOD=4,60,0)))));

CTRL:=TESTSKIP(N=0);{仅用于分钟周期}

TTIME1:=(TIME/100);

TTIME2:=IF(TTIME1<1000,TTIME1-930,

IF(TTIME1<1100,TTIME1-1000+30,

IF(TTIME1<1131,TTIME1-1100+90,

IF(TTIME1<1300,120,

IF(TTIME1<1400,TTIME1-1300+120,

IF(TTIME1<1500,TTIME1-1400+180,

240))))));

TTIME:=TTIME2/N;

YTC:="JBSJ.JYC#DAY";

YTDPC:="399300$CLOSE#DAY";

ZFS:=(C*1000/YTC)-1000;

AC:="399300$CLOSE";

ZFA:=(AC*1000/YTDPC)-1000;

DJC:(ZFS-ZFA)*YTC/1000+YTC;

DJH:IF(TTIME<2,DJC,HHV(DJC,TTIME-1));

DJL:IF(TTIME<2,DJC,LLV(DJC,TTIME-1));

DJO:REFV(DJC,TTIME-1);

{DRAWKLINE(DJH,DJO,DJL,DJC);};

公式脚本3:

在日线周期下,引用公式2中的数据(通过引用指标设置周期的方法来获得分钟周期的数据),通过K线绘制的函数就可以画出模拟 的K线了。

JH:="FZMN.DJH#MIN5";

JO:=" FZMN.DJO#MIN5";

JLC:=" FZMN.DJL#MIN5";

JC:=" FZMN.DJC#MIN5";

DRAWKLINE(JH,JO,JLC,JC);

附录:全部指标函数

行情函数

HIGH 最高价

H 最高价

LOW 最低价

L 最低价

CLOSE 收盘价

C 收盘价

VOL 成交量(手)

V 成交量(手)

OPEN 开盘价

O 开盘价

ADVANCE 上涨家数

DECLINE 下跌家数

AMOUNT 成交额(元)

VOLINSTK 期货持仓量

QHJSJ 期货结算价

BUYVOL 外盘(手)

SELLVOL 内盘(手)

ISBUYORDER 主动性买单

DHIGH 不定周期最高价

DOPEN 不定周期开盘价

DLOW 不定周期最低价

DCLOSE 不定周期收盘价

DVOL 不定周期成交量

SETCODE 深沪市场类型

时间函数

PERIOD 周期

DATE 日期

TIME 时间

YEAR 年份

MONTH 月份

WEEKOFYEAR 年内星期

WEEKDAY 星期

DAY 日

HOUR 小时

MINUTE 分钟

FROMOPEN 开盘分钟数

TOTALFZNUM 总分钟数

DATETODAY 转换天数

DAYTODATE 转换日期

TIMETOSEC 当日秒数

SECTOTIME 转换时间

引用函数

DRAWNULL 无效数

BACKSET 向前赋值

ALIGNRIGHT 有效数据右对齐

BARSCOUNT 有效数据周期数

BARSTATUS 数据位置状态

CURRBARSCOUNT 到最后交易的周期

TOTALBARSCOUNT 总的周期数

ISLASTBAR 是否最后一个周期

BARSLAST 上一条件成立位置

BARSNEXT 下一条件成立位置

BARSSINCEN N周期内首个条件成立位置

BARSSINCE 首个条件成立位置

COUNT 统计

BARSLASTCOUNT 条件连续成立次数

DMA 动态移动平均

HHV 最高值

HHVBARS 上一高点位置

HOD 高值名次

LLV 最低值

LLVBARS 上一低点位置

LOD 低值名次

REVERSE 求相反数

REF 日前的

REFV 日前的

REFX 日后的

REFXV 日后的

REFDATE 日

CALCSTOCKINDEX 指标引用

SUM 累和

MULAR 累乘

FILTER 过滤

FILTERX 反向过滤

TFILT 区间过滤

TFILTER 交易信号过滤

TTFILTER 交易信号过滤

TR 真实波幅

SUMBARS 累加到指定值的周期数

SMA 移动平均

TMA 移动平均

MA 简单移动平均

WMA 加权移动平均

EMA 指数移动平均

MEMA 平滑移动平均

EXPMA 指数移动平均

EXPMEMA 指数平滑移动平均

XMA 偏移移动平均

RANGE 介于某个范围之间

CONST 取值设为常数

TOPRANGE 当前值是近多少周期内...

LOWRANGE 当前值是近多少周期内...

FINDHIGH 寻找指定周期内的特定...

FINDHIGHBARS 寻找指定周期内的特定...

FINDLOW 寻找指定周期内的特定...

FINDLOWBARS 寻找指定周期内的特定...

SIGNALS_SYS 系统信号读取函数

SIGNALS_USER 引用自定义序列数据

EXTERNSTR 引用自定义外部字符串...

EXTERNVALUE 引用自定义外部数值数据

字串和板块函数

CODE 股票代码

STKNAME 股票名称

HYBLOCK 所属行业(字串)

DYBLOCK 所属地域(字串)

GNBLOCK 所属概念板块(字串)

FGBLOCK 所属风格板块(字串)

ZSBLOCK 所属指数板块(字串)

ZHBLOCK 所属组合板块(字串)

ZDBLOCK 所属自定义板块(字串)

GNBLOCKNUM 所属概念板块(个数)

FGBLOCKNUM 所属风格板块(个数)

ZSBLOCKNUM 所属指数板块(个数)

ZHBLOCKNUM 所属组合板块(个数)

ZDBLOCKNUM 所属自定义板块(个数)

INBLOCK 属于某板块

NAMELIKE 模糊股票名称

CODELIKE 模糊股票代码

CON2STR 取值转为字符串

VAR2STR 取值转为字符串

STR2CON 字符串转为数字

STRCAT 字符串相加

STRCMP 字符串比较

FINDSTR 字符串查找

CROSS 上穿

LONGCROSS 持续周期后上穿

UPNDAY 连涨

DOWNNDAY 连跌

NDAY 连大

EXIST 存在

EVERY 一直存在

LAST 持续存在

TESTSKIP 是否就此返回

算术函数

NOT 取反

IFC 逻辑判断

IF 逻辑判断

IFF 逻辑判断

IFN 逻辑判断

MAX 较大值

MIN 较小值

数学函数

ACOS 反余弦

ASIN 反正弦

ATAN 反正切

COS 余弦

SIN 正弦

TAN 正切

EXP 指数

LN 自然对数

LOG 对数

SQRT 开方

ABS 绝对值

POW 乘幂

CEILING 向上舍入

FLOOR 向下舍入

INTPART 整数部分

BETWEEN 介于

FRACPART 小数部分

ROUND 四舍五入

SIGN 符号

MOD 模

RAND 随机正整数

统计函数

AVEDEV 平均绝对偏差

DEVSQ 数据偏差平方和

FORCAST 线性回归预测值

SLOPE 线性回归斜率

STD 估算标准差

STDP 总体标准差

VAR 估算样本方差

VARP 总体样本方差

COVAR 协方差

RELATE 相关系数

BETA β(Beta)系数

BETAEX 相关放大系数

横向统计

BLOCKSETNUM 板块股个数

HORCALC 多股统计

INSORT 板块排序选股

INSUM 板块指标统计

形态函数

COST 成本分布

PEAK 波峰值

PEAKBARS 波峰位置

SAR 抛物转向

SARTURN 抛物转向点

TROUGH 波谷值

TROUGHBARS 波谷位置

WINNER 获利盘比例

LWINNER 近期获利盘比例

PWINNER 远期获利盘比例

COSTEX 区域成本

PPART 远期成本分布比例

ZIG 之字转向

NEWSAR 新抛物转向

LFS 锁定因子

指数函数

INDEXA 大盘的成交额

INDEXADV 大盘的上涨家数

INDEXDEC 大盘的下跌家数

INDEXC 大盘的收盘价

INDEXH 大盘的最高价

INDEXL 大盘的最低价

INDEXO 大盘的开盘价

INDEXV 大盘的成交量

HY_INDEXA 行业指数的成交额

HY_INDEXADV 行业指数的上涨家数

HY_INDEXDEC 行业指数的下跌家数

HY_INDEXC 行业指数的收盘价

HY_INDEXH 行业指数的最高价

HY_INDEXL 行业指数的最低价

HY_INDEXO 行业指数的开盘价

HY_INDEXV 行业指数的成交量

日线统计函数

TRADENUM 总成交单数

TRADEINNUM 逐笔买入成交单数

TRADEOUTNUM 逐笔卖出成交单数

LARGETRDINNUM 逐笔买入大单成交单数

LARGETRDOUTNUM 逐笔卖出大单成交单数

L2_VOLNUM 单数分档

L2_VOL 成交量分档

L2_AMO 成交额分档

CUR_BUYORDER 当前总委买量

CUR_SELLORDER 当前总委卖量

ACTINVOL 主动买成交量

ACTOUTVOL 主动卖成交量

LARGEINTRDVOL 逐笔买入大单成交量

LARGEOUTTRDVOL 逐笔卖出大单成交量

BIDORDERVOL 累计总有效委买量

BIDCANCELVOL 累计总有效撤买量

AVGBIDPX 最新委买均价

OFFERORDERVOL 累计总有效委卖量

OFFERCANCELVOL 累计总有效撤卖量

AVGOFFERPX 最新委卖均价

绘图函数

PLOYLINE 折线段

DRAWLINE 直线段

DRAWKLINE K线

STICKLINE 柱状线

DRAWICON 图标

DRAWTEXT 文字

DRAWTEXT_FIX 定点文字

DRAWNUMBER 画数字

DRAWNUMBER_FIX 画定点数字

RGB 自定色

DRAWBAND 画带状线

DRAWBMP 画图片

DRAWGBK 填充背景

DRAWRECTREL 相对位置上画矩形

财务和关联函数

FINANCE(1) 总股本(股)

TOTALCAPITAL 当前总股本(手)

FINANCE(2) 市场类型

FINANCE(3) 深沪品种类型

FINANCE(5) B股

FINANCE(6) H股

FINANCE(7) 流通股本(股)

FINANCE(8) 股东人数

CAPITAL 当前流通股本(手)

FINANCE(10) 总资产

FINANCE(11) 流动资产

FINANCE(12) 固定资产

FINANCE(13) 无形资产

FINANCE(15) 流动负债

FINANCE(16) 少数股东权益

FINANCE(17) 资本公积金

FINANCE(18) 每股公积金

FINANCE(19) 股东权益(净资产)

FINANCE(20) 营业收入

FINANCE(21) 营业成本

FINANCE(22) 应收帐款

FINANCE(23) 营业利润

FINANCE(24) 投资收益

FINANCE(25) 经营现金流量

FINANCE(26) 总现金流量

FINANCE(27) 存货

FINANCE(28) 利润总额

FINANCE(29) 税后利润

FINANCE(30) 净利润

FINANCE(31) 未分配利润

FINANCE(32) 每股未分配利润

FINANCE(33) 每股收益(全年折算)

FINANCE(34) 每股净资产

FINANCE(35) 季报调整净资产

FINANCE(36) 股东权益比

FINANCE(37) 第几季报

FINANCE(40) 流通市值

FINANCE(41) 总市值

FINANCE(42) 上市的天数

FINANCE(43) 利润同比%

FINANCE(44) 收入同比%

FINANCE(50) 是否属于沪深300

FINANCE(51) 是否含可转债

FINANCE(52) 是否为融资融券标的

FINANCE(60) 行权比例(权证)

FINANCE(61) 行权价(权证)

FINANCE(62) 杠杆比例(权证)

FINANCE(63) 内在价值(权证)

FINANCE(64) 溢价率(权证)

即时行情函数

DYNAINFO(3) 前收盘价

DYNAINFO(4) 今开

DYNAINFO(5) 最高

DYNAINFO(6) 最低

DYNAINFO(7) 现价

DYNAINFO(8) 总手

DYNAINFO(9) 现手

DYNAINFO(10) 成交金额

DYNAINFO(11) 均价

DYNAINFO(12) 日涨跌

DYNAINFO(13) 振幅度

DYNAINFO(14) 涨幅度

DYNAINFO(16) 前5日每分钟均量

DYNAINFO(17) 量比

DYNAINFO(18) 上涨家数

DYNAINFO(19) 下跌家数

DYNAINFO(20) 买入价(即买价一)

DYNAINFO(21) 卖出价(即卖价一)

DYNAINFO(22) 内盘

DYNAINFO(23) 外盘

DYNAINFO(37) 换手率

DYNAINFO(39) 市盈率(动)

DYNAINFO(40) 成交方向

DYNAINFO(50) 采样点数

DYNAINFO(51) 内外比

DYNAINFO(57) 笔涨跌

DYNAINFO(58) 叫买量(即买一量)

DYNAINFO(59) 叫卖量(即卖一量)

DYNAINFO(60) 深沪总上涨家数

DYNAINFO(61) 深沪总下跌家数

DYNAINFO(62) 深沪总成交金额

线形和颜色

COLOR 自定义色

COLORBLACK 黑色

COLORBLUE 蓝色

COLORGREEN 绿色

COLORCYAN 青色

COLORRED 红色

COLORMAGENTA 洋红色

COLORBROWN 棕色

COLORLIGRAY 淡灰色

COLORGRAY 深灰色

COLORLIBLUE 淡蓝色

COLORLIGREEN 淡绿色

COLORLICYAN 淡青色

COLORLIRED 淡红色

COLORLIMAGENTA 淡洋红色

COLORYELLOW 黄色

COLORWHITE 白色

LINETHICK 线型粗细

DRAWABOVE 显示在位置之上

STICK 柱状线

COLORSTICK 彩色柱状线

VOLSTICK 彩色柱状线

LINESTICK 同时画出柱状线和指标线

CROSSDOT 小叉线

CIRCLEDOT 小圆圈线

POINTDOT 小圆点线

DOTLINE 虚线

NODRAW 空线条

操作符函数

+ 加

- 减

* 乘

/ 除

< 小于

> 大于

<= 小于等于

>= 大于等于

= 等于

!= 不等于

{ 注释符号

AND 并且

OR 或者

&& 并且

|| 或者

$ 引用特定数据

( 括号

) 反括号

, 逗号

: 输出

:= 赋值

" 引号

. 点号

; 分号

# 变周期符号

交易和帐户函数

BUY 多头建仓

SELL 多头平仓

SELLSHORT 空头建仓

BUYSHORT 空头平仓

股票前复权、不复权和后复权之间的区别 投资

股票前复权、不复权和后复权之间的区别

理解这三者区别之前,首先我们要简单了解 除权和复权 除权:假设某公司的总股本100股,每股10元,总权益就是1000元。当公司进行送股,每10股转送10股,总股本就变成了200股,而公司的总权益并没有...
股票前复权、不复权和后复权之间的区别 投资

股票前复权、不复权和后复权之间的区别

理解这三者区别之前,首先我们要简单了解 除权和复权 除权:假设某公司的总股本100股,每股10元,总权益就是1000元。当公司进行送股,每10股转送10股,总股本就变成了200股,而公司的总权益并没有...
ENE指标 投资

ENE指标

轨道线(ENE)由上轨线(UPPER)和下轨线(LOWER)及中轨线(ENE)组成,轨道线的优势在于其不仅具有趋势轨道的研判分析作用,也可以敏锐的觉察股价运行过程中方向的改变。 1.计算公式编辑 1....
13日均线与MACD判断买入卖出点 投资

13日均线与MACD判断买入卖出点

MACD指标与13日线的妙用 方法一:炒股前先判断大盘MACD指标的走势,MACD与股指运行轨迹为同一方向,即股指在上涨,MACD也在上升,大盘走的很健康,可放心持股待涨;如果股指在上涨,MACD在下...