《通达信公式编写教学教程.doc》由会员分享,可在线阅读,更多相关《通达信公式编写教学教程.doc(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、.第一章 公式编写教程简介公式编写规则公式编写实例系统函数说明常用技术指标选股第 4 节 系统函数说明 TDX 的公式编写系统用了多类的函数,以达到快速提取数据和提高运算能力,同时简化计算过程的要求。因此在不同类型的函数我们赋予了相当精确的含义。有的函数定义为行情数据提取函数,那么它的功能就是从静态历史上的行情数据或者动态及时盘中数据提取我们所需要的数据以方便以后的分析和计算。有的函数定义为运算函数,是考虑到一些复杂的数学计算过程过于冗长,从而设计的简化运算函数等等。在以下的几节当中,我们将会分别介绍一共 10 类的函数。 一、行情函数 (OPEN、CLOSE、HIGH、LOW、VOL 等)二
2、、大盘函数(INDEXA、INDEXC、INDEXH 等)三、常数函数(包括财务函数和动态行情函数)四、时间函数 (DATE、DAY、TIME 等) 五、引用函数(MA、HHV、COUNT、REF、SUM、SMA 等)六、逻辑算术函数(IF、CROSS、NOT 等)七、数学函数(MAX、MIN、LN、三角函数等)八、统计函数(STD、VAR、AVEDEV 等)九、指标函数(PEAK、SAR、COSET、WINNER、ZIG 等)十、绘图函数(DRAWLINE、DRAWTEXT 等)十一、横向统计函数4.1行情函数.名称 解释 用法举例ADVANCE 上涨家数 本函数仅对大盘有效AMOUNT 成
3、交额 取得该周期成交额。ASKPRICE 委卖价 ASKPRIC(N), N 取 1-3ASKVOL 委卖量 ASKVOL(N),N 取 1-3BIDPRICE 委买价 BIDPRICE(N),N 取 1-3BIDVOL 委买量 BIDVOL(N),N 取 1-3BUYVOL 主动性买单 BUYVOLCLOSE 收盘价 CLOSEDECLINE 下跌家数 DECLINEHIGH 最高价 HIGHISBUYORDER 是否为主动性买单 ISBUYORDERLOW 最低价 LOWOPEN 开盘价 OPENSELLVOL 主动性卖单 SELLVOLVOL 成交量 VOL4.2大盘函数名称 解释1 I
4、NDEXA 表示同期大盘的成交额2 INDEXADV 表示同期大盘的上涨家数3 INDEXC 表示同期大盘的收盘价4 INDEXDEC 表示同期大盘的下跌家数5 INDEXH 表示同期大盘的最高价6 INDEXL 表示同期大盘的最低价7 INDEXO 表示同期大盘的开盘价8 INDEXV 表示同期大盘的成交量4.3常数函数4.3.1 流通盘函数: CAPITAL说明: 流通盘大小用法: CAPITAL,返回流通盘大小,单位为手。对于 A 股得到流通 A 股,B 股得到 B 股总股本,指数为 0 .注意:该函数返回常数 例如: 换手率公式:100*VOL/(CAPITAL),VOLSTICK;4
5、.3.2 财务数据函教 FINANCE(N) 返回财务数据.N 定义 单位 N 定义 单位 N 定义 单位1 总股本 万股 14 长期投资 千元 27 存货 千元2 国家股 万股 15 流动负债 千元 28 利润总额 千元3 发起人法人股 万股 16 少数股东权益千元 29 税后利润 千元4 法人股 万股 17 资本公积金 千元 30 净利润 千元5 B 股 万股 18 每股公积金 千元 31 未分配利润 千元6 H 股 万股 19 股东权益 千元 32 每股未分配 元7 流通 A 股 万股 20 主营收入 千元 38 每股收益(最近一期季报)元8 股东人数 万股 21 营业成本 千元 34
6、每股净资产 元9 资产负债率 万股 22 应收帐款 千元 35 调每股净资 元10 总资产 千元 23 营业利润 千元 36 股东权益比11 流动资产 千元 24 投资收益 千元 40 流通市值 元12 固定资产 千元 25 经营现金流量千元 41 总市值 元13 无形资产 千元 26 总现金流量 千元 42 上市的天数33 每股收益(折算为全年收益)37 第几季度报告(1 为 1季度 2 为中报 3 为 3 季度 4 为年报)43 净利润增长率44 主营收入同比增长率毛利率:(FINANCE(20)-FINANCE(21)/FINANCE(20)*100;每股经营现金流:=FINANCE(2
7、5)/FINANCE(1);4.3.3 动态行情函数 DYNAINFO(N) 返回动态行情.N 含义 N 含义 N 含义 N 含义3 昨收 16 委差 29 买二价 51 内外比4 今开 17 量比 30 买三价 52 多空平衡5 最高 18 上涨家数 59 卖一量 53 多头获利6 最低 19 下跌家数 32 卖二量 54 空头回补7 最新 20 委买价 33 卖三量 55 多头止损8 总手 21 委卖价 34 卖一价 56 空头止损9 现价 22 内盘 35 卖二价 57 笔升跌10 总额 23 外盘 36 卖三价11 均价 24 涨速 37 换手率 60 沪深总上涨家数12 涨跌 58
8、买一量 38 5 日均量 61 沪深总下跌家数13 振幅 26 买二量 39 市盈率14 涨幅 27 买三量 40 笔升跌15 委比 28 买一价 50 采样点数4.4时间函数名称 中文名 说明DATE 年月日 函数返回有效值范围为(700101-1341231), 取得该周期从1900 以来的的年月日。DAY 日期 函数返回有效值范围为(1-31)取得该周期的日期。HOUR 小时 函数返回有效值范围为(0-23),对于日线及更长的分析周期值为 0 取得该周期的小时数。MINUTE 分钟 函数返回有效值范围为(0-59),对于日线及更长的分析周期值为 0 取得该周期的分钟数。MONTH 月份
9、函数返回有效值范围为(1-12)取得该周期的月份。TIME 时分秒 函数返回有效值范围为(000000-235959) 取得该周期的时分秒。WEEK 星期 函数返回有效值范围为(0-6), 0 表示星期天取得该周期的星期数。YEAR 年份 函数返回有效值范围为(1970-2038)取得该周期的年份。FROMOPEN 求距开盘有多长时间FROMOPEN 返回当前时刻距开盘有多长时间,单位为分钟。注意:引用固定日期的函数为引用函数 REFDATE(X,A)作用:引用指定日期的数据.用法:REFDATE(X,A),引用 A 日期的 X 值.例如:REF(CLOSE,20011208)表示 2001
10、年 12 月 08 日的收盘价4.5引用函数.函数: DRAWNULL说明: 当前值不画线返回无效数。用法: DRAWNULL 不画线。例如: IF(CLOSEREF(CLOSE,1),CLOSE,DRAWNULL)表示下跌时分析图上不画线。-函数: BACKSET (X,N)说明: 向前赋值将当前位置到若干周期前的数据设为 1。用法: BACKSET(X,N),X 非 0,则将当前位置到 N 周期前的数值设为 1。例如: BACKSET(CLOSEOPEN,2)若收阳则将该周期及前一周期数值设为 1,否则为 0-函数: BARSCOUNT(X)说明: 有效值周期数 求总的周期数。用法: BA
11、RSCOUNT(X)第一个有效数据到当前的天数。例如: BARSCOUNT(CLOSE)对于日线数据取得上市以来总交易日数,对于分笔成交取得当日成交笔数,对于 1 分钟线取得当日交易分钟数-函数: BARSLAST(X)说明: 上一次条件成立位置 上一次条件成立到当前的周期数。用法: BARSLAST(X):上一次 X 不为 0 到现在的天数 。例如: BARSLAST(CLOSE/REF(CLOSE,1)=1.1)表示上一个涨停板到当前的周期数-函数: BARSSINCE(X)说明: 第一个条件成立位置到当前的周期数。用法: BARSSINCE(X):第一次 X 不为 0 到现在的天数。例如
12、: BARSSINCE(HIGH10)表示股价超过 10 元时到当前的周期数-函数: COUNT(X,N)说明: 统计总数 统计满足条件的周期数。用法: COUNT(X,N),统计 N 周期中满足 X 条件的周期数,若 N=0 则从第一个有效值开始。例如: COUNT(CLOSEOPEN,20)表示统计 20 周期内收阳的周期数-函数: DMA(X,N)说明: 动态移动平均 求动态移动平均。用法: DMA(X,A),求 X 的动态移动平均。算法: 若 Y=DMA(X,A) 则 Y=A*X+(1-A)*Y,其中 Y表示上一周期 Y 值,A 必须小于 1。例如: DMA(CLOSE,VOL/CAP
13、ITAL)表示求以换手率作平滑因子的平均价-函数: EMA(X,N)说明: 指数平滑移动平均 卖一价求指数平滑移动平均。.用法: EMA(X,N),求 X 的 N 日指数平滑移动平均。算法: 若 Y=EMA(X,N) 则 Y=2*X+(N-1)*Y/(N+1),其中 Y表示上一周期 Y 值。例如: EMA(CLOSE,30)表示求 30 日指数平滑均价-函数: FILTER(X,N)说明: 信号过滤 过滤连续出现的信号。用法: FILTER(X,N):X 满足条件后,删除其后 N 周期内的数据置为 0 。例如: FILTER(CLOSEOPEN,5)查找阳线,5 天内再次出现的阳线不被记录在内
14、-函数: HHV(X,N)说明: 求最高值用法: HHV(X,N),求 N 周期内 X 最高值,N=0 则从第一个有效值开始。例如: HHV(HIGH,30)表示求 30 日最高价-函数: HHVBARS(X,N)说明: 上一高点位置 求上一高点到当前的周期数。用法: HHVBARS(X,N):求 N 周期内 X 最高值到当前周期数 N=0 表示从第一个有效值开始统计例如: HHVBARS(HIGH,0)求得历史新高到到当前的周期数-函数: LLV(X,N)说明: 求最低值用法: LLV(X,N),求 N 周期内 X 最低值,N=0 则从第一个有效值开始。例如: LLV(LOW,0)表示求历史
15、最低价-函数: LLVBARS(X,N)说明: 上一低点位置 求上一低点到当前的周期数。用法: LLVBARS(X,N):求 N 周期内 X 最低值到当前周期数 N=0 表示从第一个有效值开始统计 例如: LLVBARS(HIGH,20)求得 20 日最低点到当前的周期数-函数: MA(X,N)说明: 简单移动平均 求简单移动平均。用法: MA(X,N),求 X 的 N 日移动平均值。算法: (X1+X2+X3+.+Xn)/N例如: MA(CLOSE,10)表示求 10 日均价-函数: REF(X,A)说明: 向前引用 引用若干周期前的数据用法: REF(X,A),引用 A 周期前的 X 值。
16、例如: REF(CLOSE,1)表示上一周期的收盘价,在日线上就是昨收 。-函数: REFDATE(X,A)说明: 向前引用 引用指定日期的数据。.用法: REFDATE(X,A),引用 A 日期的 X 值。例如: REF(CLOSE,20011208)表示 2001 年 12 月 08 日的收盘价-函数: SMA(X,N,M)说明: 求移动平均用法: 若 Y=SMA(X,N,M) 则 Y=M*X+(N-M)*Y)/N,其中 Y表示上一周期 Y 值,N必须大于 M。算法: (X1+X2+X3+.+Xn)/N例如: SMA(CLOSE,30,1)表示求 30 日移动平均价-函数: SUM(X,N
17、)说明: 求总和用法: SUM(X,N),统计 N 周期中 X 的总和,N=0 则从第一个有效值开始。例如: SUM(VOL,0)表示统计从上市第一天以来的成交量总和-函数: SUMBARS(X,A)说明: 累加到指定周期数 向前累加到指定值到现在的周期数用法: SUMBARS(X,A):将 X 向前累加直到大于等于 A,返回这个区间的周期数例如: SUMBARS(VOL,CAPITAL)求完全换手到现在的周期数4.6逻辑算术函数函数: NOT(X)说明: 求逻辑非 用法: NOT( X)求逻辑非,返回非 X,即当 X=0 时返回 1,否则返回 0。例如: NOT( ISUP):是否平盘或收阴
18、 -函数: IF(X,A,B)说明: 条件函数 根据条件求不同的值用法: IF(X,A,B)若 X 不为 0 则返回 A,否则返回 B例如: IF(CLOSEOPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返回最低值-函数: IFF(X,A,B)说明: 根据条件求不同的值用法: IFF(X,A,B)若 X 不为 0 则返回 A,否则返回 B例如: IFF(CLOSEOPEN,HIGH,LOW)表示该周期收阳则返回最高值 ,否则返回最低值-函数: IFN(X,A,B)说明: 根据条件求不同的值用法: IFN(X,A,B)若 X 不为 0 则返回 B,否则返回 A例如: IFN(CLO
19、SEOPEN,HIGH,LOW)表示该周期收阳则返回最高值 ,否则返回最低值-.函数: CROSS(A,B)说明: 交叉函数用法: A:变量或常量,判断交叉的第一条线 B:变量或常量,判断交叉的第二条线例如: CROSS(MA (CLOSE,5) , MA(CLOSE,10) )5 日均线与 10 日均线金叉;CROSS(CLOSE,12):价格由下向上突破 12 元-函数: LONGCROSS(A,B,N)说明: 两条线维持一定周期后交叉用法: LONGCROSS(A,B,N)表示 A 在 N 周期内都小于 B,本周期从下方向上穿过B 时返 回 1,否则返回 0例如: LONGCROSS(M
20、A(CLOSE,5),MA(CLOSE,10),5)表示 5 日均线维持 5 周期后与 10 日均线交金叉-函数: UPNDAY(CLOSE,M)说明: 连涨周期数用法: UPNDAY(CLOSE,M)表示连涨 M 个周期例如: UPNDAY(CLOSEOPEN,7)表示连涨 7 天-函数: DOWNNDAY(CLOSE,M)说明: 连跌周期用法: DOWNNDAY(CLOSE,M)表示连跌 M 个周期例如: DOWNNDAY(CLOSE,5) 表示连跌 5 天-函数: NDAY(X,Y,N)说明: 连大用法: NDAY(X,Y,N)表示条件 XY 持续存在 N 个周期例如: NDAY(CLO
21、SEOPEN,3)表示连续 3 日收阳线-函数: EXIST(X,N)说明: 存在用法: EXIST(X,N) 表示条件 X 在 N 周期有存在例如: EXIST(CLOSEOPEN,10) 表示前 10 日内存在着阳线-函数: EVERY (X,N)说明: 一直存在用法: EVERY (X,N) 表示条件 X 在 N 周期一直存在例如: EVERY(CLOSEOPEN,10) 表示前 10 日内一直是阳线-函数: LAST (X,A,B)说明: 区间存在用法: LAST (X,A,B) 表示条件 X 在前 M 周期到前 N 周期存在.例如: LAST(CLOSEOPEN,10,5) 表示从前
22、 10 日到前 5 日内一直阳线。若 A 为 0,表示从第一天开始,B 为 0,表示到最后日止。4.7数学函数函数: ABS(X)说明: 求绝对值用法: ABS(X)返回 X 的绝对值例如: ABS(-34)返回 34-函数: BETWEEN(A,B,C)说明: 介于(介于两个数之间)用法: 用法: BETWEEN(A,B,C)表示 A 处于 B 和 C 之间时返回 1,否则返回 0例如: BETWEEN(CLOSE,MA(CLOSE,10),MA(CLOSE,5)表示收盘价介于 5 日均线和 10 日均线之间-函数: MAX(A,B)说明: 求最大值用法: MAX(A,B)返回 A 和 B
23、中的较大值例如: MAX(CLOSE-OPEN,0)表示若收盘价大于开盘价返回它们的差值,否则返回0 -函数: MIN(A,B)说明: 求最小值用法: MIN(A,B)返回 A 和 B 中的较小值例如: MIN(CLOSE,OPEN)返回开盘价和收盘价中的较小值-函数: MOD(A,B)说明: 求模运算用法: MOD(A,B)返回 A 对 B 求模例如: MOD(26,10)返回 6-函数: NOT(X)说明: 求逻辑非用法: NOT(X)返回非 X,即当 X=0 时返回 1,否则返回 0例如: NOT(ISUP)表示平盘或收阴-函数: RANGE(A,B,C)说明: 范围(于某个范围之间)用
24、法: RANGE(A,B,C)表示 A 大于 B 同时小于 C 时返回 1,否则返回 0例如: RANGE(CLOSE,MA(CLOSE,5),MA(CLOSE,10)表示收盘价大于 5 日均线并且小于 10 日均线-函数: REVERSE(X).说明: 求相反数用法: REVERSE(X)返回-X例如: REVERSE(CLOSE)返回-CLOSE-函数: SGN(X)说明: 求符号值用法: 用法: SGN(X),当 X0,X=0,X0 分别返回 1,0,-1例如: SGN(10)返回 1,SGN(0)返回 0,SGN(-10)返回-1-函数: ACOS(X)说明: 反余弦值用法: ACOS
25、(X)返回 X 的反余弦值例如: ACOS(CLOSE)返回 CLOSE 的反余弦值-函数: ASIN(X)说明: 反正弦值用法: ASIN(X)返回 X 的反正弦值例如: ASIN(CLOSE) 返回 CLOSE 的反正弦值-函数: CEILING(A)说明: 向上舍入 (向数值增大方向舍入 )用法: CEILING(A)返回沿 A 数值增大方向最接近的整数例如: CEILING(12.3)求得 13;CEILING(-3.5)求得-3-函数: COS(X)说明: 余弦值用法: COS(X)返回 X 的余弦值例如: COS(CLOSE)返回收盘价的余弦值-函数: EXP(X)说明: 指数用法: EXP(X)为 e 的 X 次幂例如: EXP(CLOSE)返回 e 的 CLOSE 次幂-函数: FLOOR(A)说明: 向下舍入(向数值减小方向舍入 )用法: FLOOR(A)返回沿 A 数值减小方向最接近的整数例如: FLOOR(12.3)求得 12;FLOOR(-3.5)求得-4-函数: INTPART(A)说明: 取整(绝对值减小取整,即取得数据的整数部分)用法: INTPART(A)返回沿 A 绝对值减小方向最接近的整数
限制150内