通达信公式编写教程

更新时间:2024-03-02 11:56:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

深圳市财富趋势科技有限责任公司 第 1 页 共 77 页

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、 今日比昨日的成交量缩小了1倍:

VOL/REF(VOL,1)<0.5;

2、 今日的五日均量比五天前的五日均量缩小了一半:

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

3、 今天的成交量不足整个流通盘的0.5%:

VOL/CAPITAL<0.5/100;

深圳市财富趋势科技有限责任公司 第 2 页 共 77 页

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);

深圳市财富趋势科技有限责任公司 第 3 页 共 77 页

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%以内。

深圳市财富趋势科技有限责任公司 第 4 页 共 77 页

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日均线多头排列

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

深圳市财富趋势科技有限责任公司 第 5 页 共 77 页

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;

深圳市财富趋势科技有限责任公司 第 6 页 共 77 页

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);

深圳市财富趋势科技有限责任公司 第 7 页 共 77 页

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线上方出现了一个绿色的向下箭头,提示卖出。效果如下:

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

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

深圳市财富趋势科技有限责任公司 第 8 页 共 77 页

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);

深圳市财富趋势科技有限责任公司 第 9 页 共 77 页

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的分析界面形成图表、曲线,以方便和寻找有意义的技术图形和技术特征。

深圳市财富趋势科技有限责任公司 第 10 页 共 77 页

3.2 条件选股公式编辑器

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

3.3 五彩K线公式编辑器

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

3.4 交易系统公式编辑器

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

4. 特殊公式脚本编写

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

1. 从该理论应能分析出公式启动的起始数据。如股票的开高低收价格、成交量、各财务数据、各即时数据、时间数据、一些常见的技术分析概念、其他理论的结果等,这些数据大部分是系统提供的,而最后两项则要从其他公式中得来也就是对应于公式编写中的指标引用操作(当然在这公式编写前要确保该要引用的指标已实现)。

深圳市财富趋势科技有限责任公司 第 11 页 共 77 页

2. 从理论中应能分析出起始数据到结果的明确运算过程。在公式平台中提供了一些系统函数,这些函数包含了部分常用的运算过程(如HHV(X,N) 可求N周期内X最高值)。如果理论中的运算过程拆解完全后,能由公式平台中的函数及允许的基本运算全部组成就可以编写成公式了。

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

4.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线的时间得来的。

深圳市财富趋势科技有限责任公司 第 12 页 共 77 页

4.2 跨周期引用数据

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

1) 对变量用变周期符号(#),改变其周期。这种方式有局限性,只能在小周期公式

中得到大周期数据,且仅适用于一些基本数据,如close,high,low,open等。 示例脚本: 日最高价:H;

周最高价:H#WEEK;

运行示例:

2) 在公式脚本中调用其它公式以取得其它周期的数据。调用其它公式,并用#设置其

周期。

比如,公式脚本在日线下运行时,可用Kdj.k#week;来获得kdj在周线下的k值,另属于于同一周线的日线将获得相同的K值。 示例脚本: 公式1:

公式名称:JBSJ 公式描述:基本数据 公式脚本:

JC:C;{当前周期收盘价} JH:H;{当前周期最高价} JL:L;{当前周期最低价} JO:O;{当前周期开盘价}

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

深圳市财富趋势科技有限责任公司 第 13 页 共 77 页

公式2:

公式名称:TEST049 公式脚本:

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

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

运行示例:

公式3:

E:=CURRBARSCOUNT; E1:=DAY!=REF(DAY,1); E2:=BARSLAST(E1)+1; E3:=MA(C,E2);

E4:=SUM(AMO,E2)/SUM(VOL,E2)/100; E5:=IF(CAPITAL>0,E4,E3);

昨开:IF(E<=CONST(E2),TMP#DAY,DRAWNULL),COLORCYAN,LINETHICK3;

TMP的指标源码如下: REF(OPEN,1);

此指标用于分钟周期线,同时在昨开盘价的位置上画一根线。 运行示例:

深圳市财富趋势科技有限责任公司 第 14 页 共 77 页

3) 使用跨周期引用数据时注意点

可供引用的周期类型有:

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

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

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

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

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

4.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日间的最高价}

深圳市财富趋势科技有限责任公司 第 15 页 共 77 页

2)某相对时间段最高价

60天前到40天前之间的最高价

REF(HHV(H,60-40),40);

深圳市财富趋势科技有限责任公司 第 16 页 共 77 页

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

TT:=C/REF(C,1)>1.095;{是否涨停}

COUNT(TT,20)>0;{二十个交易日内时候涨停过}

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

深圳市财富趋势科技有限责任公司 第 17 页 共 77 页

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

4.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); 运行示例:

深圳市财富趋势科技有限责任公司 第 18 页 共 77 页

4.6 创新高周期数

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

FV:=IF(BARSCOUNT(C)=0,9999999999,VOL); 量创新高周期数:SUMBARS(REF(FV,1)-FV,0);

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

深圳市财富趋势科技有限责任公司 第 19 页 共 77 页

4.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);

深圳市财富趋势科技有限责任公司 第 20 页 共 77 页

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

TTIME:=TTIME2/N; YTC:=\YTDPC:=\ZFS:=(C*1000/YTC)-1000; AC:=\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:=\JO:=\JLC:=\JC:=\DRAWKLINE(JH,JO,JLC,JC);

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))))));

深圳市财富趋势科技有限责任公司 第 21 页 共 77 页

4.8横向统计函数

深圳市财富趋势科技有限责任公司 第 22 页 共 77 页

横向统计类函数是板块中所有股票都参与计算的函数,有:BLOCKSETNUM,HORCALC,INSORT,INSUM等四个。 其中INSUM是新加入的函数,其用法如下: INSUM(板块名称,指标名称,指标线,计算类型),

返回板块各成分该指标相应输出安计算类型得到的计算值.计算类型:0-累加,1-平均数,2-最大值,3-最小值.

现在用INSUM计算出个股所在行业中最大和最小的涨跌幅: 1.首先新建一个指标ZDF,用于计算个股的涨跌幅。

示例公式:ZDF 公式名称:涨跌幅 公式脚本:

(C-REF(C,1))/REF(C,1);

2.新建指标TJZDF,通过INSUM函数调用ZDF指标计算出该个股所在板块成分股最大最小涨跌幅。

示例公式:TJZDF 公式名称:统计涨跌幅 公式脚本:

INSUM(HYBLOCK,'ZDF',1,2);{ZDF指标第一个输出的最大值} INSUM(HYBLOCK,'ZDF',1,3);{ZDF指标第一个输出的最大值}; 注释:

1.指标TJZDF中HYBLOCK函数用来取当前成份股所在板块

4.9指标窗口定点输出函数

在新版本的公式编辑器中新加了两个绘图函数,用于定点输出文字或数字。他们就是DRAWTEXT_FIX,DRAWNUMBER_FIX。 1.RAWTEXT_FIX 固定位置显示文字.

用法:DRAWTEXT_FIX(COND,X,Y,TYPE,TEXT),当COND条件满足时,在当前指标窗口内(X,Y)位置书写文字TEXT,X,Y为书写点在窗口中相对于左上角的百分比,TYPE:0为左对齐,1为右对齐。

深圳市财富趋势科技有限责任公司 第 23 页 共 77 页

例如:DRAWTEXT_FIX(CURRBARSCOUNT=1 AND CLOSE/OPEN>1.08,0.5,0.5,0,'大阳线')表示最后一个交易日涨幅大于8%时在窗口中间位置显示'大阳线'字样。

2. DRAWNUMBER_FIX 固定位置显示数字.

用法:DRAWNUMBER_FIX(COND,X,Y,TYPE,NUMBER),当COND条件满足时,在当前指标窗口内(X,Y)位置书写数字NUMBER,X,Y为书写点在窗口中相对于左上角的百分比,TYPE:0为左对齐,1为右对齐。

例如:DRAWNUMBER_FIX(CURRBARSCOUNT=1 AND CLOSE/OPEN>1.08,0.5,0.5,0,C)表示最后一个交易日涨幅大于8%时在窗口中间位置显示收盘价。

现在我们举例说明这两个函数的用法:

示例公式:DRAWFIX 公式名称:DRAWFIX 公式脚本:

DRAWTEXT_FIX(ISLASTBAR,0.5,0,0,HYBLOCK),COLORYELLOW; DRAWTEXT_FIX(ISLASTBAR,0,0,0,'股本结构:'),COLORRED; DRAWTEXT_FIX(ISLASTBAR,0,0.1,0,'总股本:'),COLORRED;

DRAWNUMBER_FIX(ISLASTBAR,0,0.2,0,FINANCE(1)),COLORMAGENTA; DRAWTEXT_FIX(ISLASTBAR,0.3,0.1,0,'流通A股:'),COLORGREEN; DRAWNUMBER_FIX(ISLASTBAR,0.3,0.2,0,FINANCE(7)),COLORYELLOW; DRAWTEXT_FIX(ISLASTBAR,0.5,0.1,0,'今日换手率:'),COLORGREEN; DRAWNUMBER_FIX(ISLASTBAR,0.5,0.2,0,V*100/CAPITAL),COLORYELLOW; 效果图:

深圳市财富趋势科技有限责任公司 第 24 页 共 77 页

注:

1. 当窗口大小改变时,DRAWFIX各输出文字或数字的相对位置不变;

2. 通过方向键等方式改变分析图中K线个数时,DRAWFIX窗口内的文字或数字位置不随

之改变;

4.10字符串函数

新加入公式管理器的字符串函数有:HYBLOCK、DYBLOCK、INBLOCK、NAMELIKE、

CODELIKE、CON2STR、STR2CON、STRCAT、STRCMP、FINSTR;在公式管理器的插入函数列表中有它们的介绍。

注:字符串中含百分号时,2个百分号代表一个。如’%%’ 显示时为一个%

示例公式:DRAWFIX2 公式名称: DRAWFIX2 公式脚本:

深圳市财富趋势科技有限责任公司 第 25 页 共 77 页

ST股:=NAMELIKE('S') OR NAMELIKE('*');

BE显示:=INBLOCK('上证A股') AND NOT(ST股) AND CODELIKE('600');

DRAWTEXT_FIX(NOT(BE显示),0,0,0,'本公式不适用该品种!适用品种:上证A股 且 不是ST股 且 品种代码以600开头!'),COLORYELLOW;

DRAWTEXT_FIX(BE显示,0,0,0,STRCAT('品种行业:',HYBLOCK)),COLORYELLOW; DRAWTEXT_FIX(BE显示,0.5,0,0,STRCAT('品种地域:',DYBLOCK)),COLORYELLOW; DRAWTEXT_FIX(BE显示,0,0.1,0,'股本结构:'),COLORRED; DRAWTEXT_FIX(BE

,0,0.2,0,STRCAT('

本:',STRCAT(CON2STR(FINANCE(1)/10000,0),'万股'))),COLORRED; DRAWTEXT_FIX(BE

,0.3,0.2,0,STRCAT('

A

股:',STRCAT(CON2STR(FINANCE(7)/10000,1),'万股'))),COLORGREEN; DRAWTEXT_FIX(BE

,0.5,0.2,0,STRCAT('

率:',STRCAT(CON2STR(V*100/CAPITAL,2),'%%'))),COLORGREEN;

公式演示截图: 600600 青岛啤酒

000001 深发展A

深圳市财富趋势科技有限责任公司 第 36 页 共 77 页

ADVANCE 上涨家数

返回该周期上涨家数。

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

DECLINE 下跌家数

返回该周期下跌家数。

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

AMOUNT 成交额

返回该周期成交额。期货和期权无成交金额。 用法: AMOUNT

AMO 成交额

返回该周期成交额。期货和期权无成交金额。 用法: AMO,同AMOUNT

VOLINSTK 持仓量

返回该周期持仓量,对于期货和期权有意义. 用法:VOLINSTK

QHJSJ 结算价

返回该周期结算价,对于期货和期权有意义. 用法:QHJSJ

HKSHORTVOL 抛空量

返回该周期抛空量,对于港股有意义. 用法:HKSHORTVOL

DHIGH 不定周期最高价

返回该不定周期最高价,属于未来函数. 用法:DHIGH

DOPEN 不定周期开盘价

返回该不定周期开盘价,属于未来函数. 用法:DOPEN

DLOW 不定周期最低价

返回该不定周期最低价,属于未来函数. 用法:DLOW

DCLOSE 不定周期收盘价

返回该不定周期收盘价,属于未来函数. 用法:DCLOSE

深圳市财富趋势科技有限责任公司 第 37 页 共 77 页

DVOL 不定周期成交量

返回该不定周期成交量价,属于未来函数. 用法:DVOL

PERIOD 周期类型 取得周期类型.

结果从0到13,依次分别是1/5/15/30/60分钟,日/周/月,多分钟,多日/季/年,5秒线/多秒线,13以上为自定义周期

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。 (本函数仅个股在分笔成交分析周期有效)

深圳市财富趋势科技有限责任公司 第 38 页 共 77 页

ISSELLORDER 主动性卖单

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

用法: ISSELLORDER 当本笔成交为主动性卖盘时,返回1,否则为0。 (本函数仅个股在分笔成交分析周期有效)]

2时间函数

DATE 日期

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

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

TIME 时间

取得该周期的时分,适用于日线以下周期 用法: TIME

函数返回有效值范围为(0000-2359)

TIME2 时间

取得该周期的时分秒。

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

YEAR 年份

取得该周期的年份。 用法:YEAR

注:YEAR关键字也可用于跨周期年线引用

MONTH 月份

取得该周期的月份。

用法:MONTH 函数返回有效值范围为(1-12)。 注:MONTH关键字也可用于跨周期月线引用

WEEKOFYEAR 年内星期 取得该周是年内第几个周. 用法:WEEKOFYEAR

WEEKDAY 星期

取得该周期的星期数。

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

DAYSTOTODAY

取得该周期的日期离今天的天数. 用法:DAYSTOTODAY

DAY 日期

深圳市财富趋势科技有限责任公司 第 39 页 共 77 页

取得该周期的日期。

用法: DAY 函数返回有效值范围为(1-31)。 注:DAY关键字也可用于跨周期日线引用

HOUR 小时

取得该周期的小时数。

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

MINUTE 分钟

取得该周期的分钟数。

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

FROMOPEN 分钟

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

用法: FROMOPEN 返回当前时刻距开盘有多长时间,单位为分钟。 例如: FROMOPEN 当前时刻为早上十点,则返回31。

TOTALFZNUM 总分钟数

求该品种的每天的总交易分钟数. 用法:TOTALFZNUM

例如:TOTALFZNUM.返回当前品种的每天的总交易分钟数,单位为分钟.

DATETODAY 转换天数

指定日期到1990.12.19的天数. 用法:DATETODAY(date)

DATETODAY(date).返回date到1990.12.19的天数.有效日期为(901219-1341231) 例如:DATETODAY(901219)返回0.

DAYTODATE 转换日期

求1990.12.19后第若干天的日期. 用法:DAYTODATE(N)

DAYTODATE(N).返回1990.12.19后第N天的日期.有效天数为(0-20000) 例如:DAYTODATE(0)返回901219.

TIMETOSEC 当日秒数

求指定时刻距0时有多长时间. 用法:TIMETOSEC(time)

TIMETOSEC(time).返回time时刻距0时有多长时间,单位为秒.有效时间为(0-235959)

例如:TIMETOSEC(93000)返回34200.

SECTOTIME 转换时间

深圳市财富趋势科技有限责任公司 第 40 页 共 77 页

求0时后若干秒是什么时间. 用法:SECTOTIME(N)

SECTOTIME(N).返回0时后N秒是什么时间.有效秒数为(0-86399) 例如:SECTOTIME(34200)返回93000.

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。

ALIGNRIGHT 有效数据右对齐 有效数据右对齐.

用法:ALIGNRIGHT(X)有效数据向右移动,左边空出来的周期填充无效值 例如:TC:=IF(CURRBARSCOUNT=2 ||

CURRBARSCOUNT=5,DRAWNULL,C);XC:ALIGNRIGHT(TC);删除了两天的收盘价,并将剩余数据右移

BARSCOUNT 有效数据周期数 求总的周期数。

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

例如: BARSCOUNT(CLOSE) 对于日线数据取得上市以来总交易日数

BARSTATUS 数据位置状态

BARSTATUS返回数据位置信息,1表示第一根K线,2表示最后一个数据,0表示中间位置.

例如:BARSTATUS=2表示当天是该数据的最后一个周期.

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

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

TOTALBARSCOUNT 总的周期数 求总的周期数.

用法:TOTALBARSCOUNT 求总的周期数

深圳市财富趋势科技有限责任公司 第 46 页 共 77 页

用法: EXPMEMA(X,M) X的M日指数平滑移动平均。 EXPMEMA同EMA(即EXPMA)的差别在于他的起始值为一平滑值

WMA 加权移动平均 返回加权移动平均

用法: WMA(X,N):X的N日加权移动平均.

算法: Yn=(1*X1+2*X2+...+n*Xn)/(1+2+...+n)

AMA 自适应均线 求自适应均线值.

用法: AMA(X,A),A为自适应系数,必须小于1. 算法: Y=Y'+A*(X-Y').初值为X

XMA 偏移移动平均

属于未来函数,返回偏移移动平均

用法: XMA(X,N):X的N日偏移移动平均,用到了当日以后N/2日的数据,只供内部测试使用

RANGE 介于某个范围之间

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

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

CONST 取值设为常数

用法: CONST(A) 取A最后的值为常量. 例如: CONST(INDEXC)表示取大盘现价。

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

用法: TOPRANGE(X):X是近多少周期内X的最大值

例如: TOPRANGE(HIGH)表示当前最高价是近多少周期内最高价的最大值

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

用法: LOWRANGE(X):X是近多少周期内X的最小值

例如: LOWRANGE(LOW)表示当前最低价是近多少周期内最低价的最小值

FINDHIGH 寻找指定周期内的特定最大值 N周期前的M周期内的第T个最大值.

用法: FINDHIGH(VAR,N,M,T):VAR在N日前的M天内第T个最高价

FINDHIGHBARS 寻找指定周期内的特定最大值到当前周期的周期数 N周期前的M周期内的第T个最大值到当前周期的周期数.

用法: FINDHIGHBARS(VAR,N,M,T):VAR在N日前的M天内第T个最高价到当前周期

的周期数

深圳市财富趋势科技有限责任公司 第 47 页 共 77 页

FINDLOW 寻找指定周期内的特定最小值 N周期前的M周期内的第T个最小值.

用法: FINDLOW(VAR,N,M,T):VAR在N日前的M天内第T个最低价

FINDLOWBARS 寻找指定周期内的特定最小值到当前周期的周期数 N周期前的M周期内的第T个最小值到当前周期的周期数. 用法: FINDLOWBARS(VAR,N,M,T):VAR在N日前的M天内第T个最低价到当前周期的

周期数.

EXTERNSTR 引用自定义外部字符串数据 EXTERNSTR(TYPE,ID)

TYPE为1表示是系统保留数据,

TYPE为0表示是自定义外部数据,读取signals目录下面的的extern_user.txt,请用自定义数据管理器来维护

extern_user.txt为文本结构,如下 1|600717|1|好股|0.33 市场(0:深圳,1:上海)|品种代码|数据号|文字串|数值

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

EXTERNVALUE(TYPE,ID),用法同EXTERNSTR类似

SIGNALS_SYS 引用自定义序列数据(系统) 引用自定义序列数据(系统)

SIGNALS_USER 引用自定义序列数据 引用自定义序列数据.

读取个人目录下的signals目录下面的[signals_user_?]目录,请用自定义数据管理器来维护.

SIGNALS_USER(11,TYPE):表示读当前品种的11数据号的序列数据,TYPE:为1表示做平滑处理,没有自定义数据的周期返回上一周期的值;为0表示不做平滑处理.

EXTDATA_USER 引用扩展数据 引用扩展数据.

请用扩展数据管理器来设置和刷新数据.

EXTDATA_USER(N,TYPE),N取(1-100),表示读当前品种的N号扩展序列数据,TYPE:为1表示做平滑处理,没有自定义数据的周期返回上一周期的值;为0表示不做平滑处理.

ZTPRICE 计算涨停价 返回涨停价

用法: ZTPRICE(REF(CLOSE,1),0.1):按10%计算得到在昨收盘基础上的涨停价 比如: ZTPrice(REF(QHJSJ,1),0.1),得到期货的涨停价

DTPRICE 计算跌停价

深圳市财富趋势科技有限责任公司 第 48 页 共 77 页

返回跌停价

用法: DTPRICE(REF(CLOSE,1),0.1):按10%计算得到在昨收盘基础上的跌停价 比如: DTPrice(REF(QHJSJ,1),0.6),得到期货的跌停价(跌停比例为0.6的话)

TDXDLL1(或1-10) 第(1-10)号DLL 调用DLL中的函数.

用法: DLL1(funcid,param1,param2,param3),funcid为数字,表示调用dll函数编号.

4板块字符函数

CODE 品种代码 返回品种代码.

用法: DRAWTEXT_FIX(ISLASTBAR,0,0,0,CODE);在屏幕左上角显示品种代码

STKNAME 品种名称

返回品种名称.

用法: DRAWTEXT_FIX(ISLASTBAR,0,0,0,STKNAME);在屏幕左上角显示品种名称

HYBLOCK 所属行业(字串) 返回品种所属行业.

用法: DRAWTEXT_FIX(ISLASTBAR,0,0,0,HYBLOCK);在屏幕左上角显示所属行业板块

DYBLOCK 所属地域(字串) 返回品种所属地域.

用法: DRAWTEXT_FIX(ISLASTBAR,0,0,0,DYBLOCK);在屏幕左上角显示所属地域板块

GNBLOCK 所属概念板块(字串) 返回所属概念板块.

用法: DRAWTEXT_FIX(ISLASTBAR,0,0,0,GNBLOCK);在屏幕左上角显示所属概念板块

FGBLOCK 所属风格板块(字串) 返回所属风格板块.

用法: DRAWTEXT_FIX(ISLASTBAR,0,0,0,FGBLOCK);在屏幕左上角显示所属风格板块

ZSBLOCK 所属指数板块(字串) 返回所属指数板块.

用法: DRAWTEXT_FIX(ISLASTBAR,0,0,0,ZSBLOCK);在屏幕左上角显示所属指数板块

深圳市财富趋势科技有限责任公司 第 49 页 共 77 页

ZHBLOCK 所属组合板块(字串) 返回所属组合板块.

用法: DRAWTEXT_FIX(ISLASTBAR,0,0,0,ZHBLOCK);在屏幕左上角显示所属组合板块

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

用法: DRAWTEXT_FIX(ISLASTBAR,0,0,0,ZDBLOCK);在屏幕左上角显示所属自定义板块

GNBLOCKNUM 所属概念板块(个数)

返回所属概念板块的个数,比如:IF(GNBLOCKNUM>5,1,0);.

FGBLOCKNUM 所属风格板块(个数) 返回所属风格板块的个数.

ZSBLOCKNUM 所属指数板块(个数) 返回所属指数板块的个数.

ZHBLOCKNUM 所属组合板块(个数) 返回所属组合板块的个数.

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

HYZSCODE 所属行业的板块指数代码

返回品种所属行业的板块指数代码.比如:CALCSTOCKINDEX(HYZSCODE,'KDJ',3);

INBLOCK 属于某板块

返回品种是否属于某板块.

用法: if(INBLOCK('沪深300'),x,y);

NAMELIKE 模糊匹配品种名称 品种名称是否以参数开头.

用法: if(NAMELIKE('ST'),x,y);

CODELIKE 模糊匹配品种代码 品种代码是否以参数开头.

用法: if(CODELIKE('600'),x,y); NAMEINCLUDE 品种名称中包含 品种名称中是否包含参数.

用法: if(NAMEINCLUDE('文化'),x,y);

深圳市财富趋势科技有限责任公司 第 50 页 共 77 页

CON2STR 取值转为字符串

CON2STR(A,N):取A最后的值(非序列值)转为字符串,小数位数N.

用法: CON2STR(FINANCE(20),3)表示取营业收入,以3位小数转为字符串

VAR2STR 取值转为字符串(序列)

VAR2STR(A,N):取A的每一个值转为字符串,小数位数N. 用法: VAR2STR(C,3)表示取收盘价,以3位小数转为字符串

STR2CON 字符串转为数字

STR2CON(S):将S字符串转化为数字.

用法: STR2CON('2365.02')表示将字符串'2365.02'转化为数字2365.02

STRCAT 字符串相加

STRCAT(A,B):将两个字符串A,B(非序列化)相加成一个字符串C. 用法: STRCAT('多头','开仓')将两个字符串'多头','开仓'相加成一个字符串'多头开仓'

STRSPACE 字符串加一空格

STRSPACE(A):字符串附带一空格

VARCAT 字符串相加(序列)

VARCAT(A,B):将两个字符串A,B相加成一个字符串C.

用法: VARCAT('多头',VAR2STR(C,2))将两个字符串相加成一个字符串

STRCMP 字符串比较

STRCMP(A,B):比较两个字符串A,B是否相等. 用法: STRCMP(HYBLOCK,'房地产')将成分股行业字符串与'房地产'比较,是否相等,如果相等表示属于房地产板块

FINDSTR 字符串查找

FINDSTR(A,B):在字符串A中查找字符串B,如果找到返回1,否则返回0. 用法: FINDSTR('多头开仓','开仓')在字符串'多头开仓'中查找字符串'开仓',返回1

5逻辑函数

CROSS 上穿 两条线交叉。

用法: CROSS(A,B) 表示当A从下方向上穿过B时返回1,否则返回0。 例如: CROSS(MA(CLOSE,5),MA(CLOSE,10)) 表示5日均线与10日均线交金叉。

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

本文来源:https://www.bwwdw.com/article/30fa.html

Top