首页 通达信公式编写教程

通达信公式编写教程

举报
开通vip

通达信公式编写教程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...

通达信公式编写教程
1.基本公式编写实例在前面的学习当中,我们见到了一些基本的表达 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 、方式,今天我们的任务是学习一些常见的概念如何编写,例如上面所列出来的放量、上涨等等,因为这些都是在公式编写过程当中要用到的基本形态特征,许多的技术指标的选股条件都是由它们组成的。放量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,或者)缩量今日比昨日的成交量缩小了1倍:1、VOL/REF(VOL,1)<;今日的五日均量比五天前的五日均量缩小了一半:AA:=MA(VOL,5);BB:=REF(AA,5);2、AA/BB<;今天的成交量不足整个流通盘的%:3、VOL/CAPITAL<100;上涨1、今日涨幅达到了7%以上:CLOSE/REF(CLOSE,1)>;2、十日均价继续上涨:AA:=MA(CLOSE,10);BB:=REE(AA,1);AA>BB;下跌收阳、收阴:1、当天收阳:CLOSE>OPEN;2、当天收阴:CLOSE<OPEN;高开、低开1、当天股价高开,即开盘高于昨日收盘:OPEN>REF(CLOSE,1);2、当天股价低开:OPEN<REF(CLOSE,1);跳空跳空亦有向上和向下两种:当日开盘在昨日最高之上,即为向上跳空:OPEN>REF(HIGH,1);反之,开盘小于昨日的最高价,为向下跳空:OPEN<REF(LOW,1);放量上攻AA:=VOL/REF(VOL,1)>2;{成交量是昨日的两倍}BB:=CLOSE/REF(CLOSE,1)>;{涨幅大于7%}AAANDBB;高开高走AA:=OPEN>REF(CLOSE,1);{开盘价大于昨收}BB:=CLOSE>OPEN;{当日收阳线}AAANDBB;创新高创新高指当日最高价是最近一段时间的最高价:HIGH=HHV(HIGH,N);其中的HIGH为当期最高价,HHV(X,N)是求N周期内X最高值。因此该公式的含义是当日最高价创N日新高时返回值为1,否则为0。横盘整理横盘整理指最近一段时期价格在一定幅度之内摆动:(HHV(CLOSE,10)-LLV(CLOSE,10))/CLOSE<;其中的LLV(X,N)是求N周期内X最低值。因此该公式表示10日收盘价振幅振幅在5%以内。2.公式组合实例下面介绍如何对基本公式进行组合,描述一些简单的K线形态。在编写公示前,需要准确对K线形态进行定义。向上跳空之后两天内并未回补定义:实际上就是昨天发生了跳空缺口,这两天的最低价一直在两天前的最高价之上。AA:=REF(OPEN,1)>REF(HIGH,2);BB:=REF(LOW,1)>REF(HIGH,2);CC:=LOW>REF(HIGH,2);AAANDBBANDCC;仔细一想,若BB成立,AA一定成立,AA实际上没有存在的必要。更简单的方法,下面的一句话可以的上面的四句:COUNT(LOW>REF(HIGH,2),2)=2;5日,10日,30日均线多头排列定义:均线多头排列,是指从短周期到长周期均线,从上而下的依次排列AA:=MA(CLOSE,5);BB:=MA(CLOSE,10);CC:=MA(CLOSE,30);T1:=AA>BBANDBB>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>BBANDBB>CC;COUNT(T1,4)=4;逃顶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<b2andb、今日的阴线实体较长,我们用开盘价和收盘价相比,长度大于4%:a1/a2>;5、昨日K线的特征,是一根十字形态的K线,并且在左右两根K线之上,分别表达为:a、昨日跳开,高于前天的收盘:bb:=b1>c3b、昨日收盘同样在缺口之上:andb2>c3c、线形实体长度很小,也就是昨日开盘和收盘之差比昨日开盘的值小于:andabs(b1-b2)/b1<d、K线有上下影线,可以表示为最高价和最低价不等于收盘价也不等于开盘价:andb3>b1andb3>b2andb4<b1andb4<b2e、当日的最高价为20天以来的最高价:andb3=hhv(high,20);6、前日K线的特征:股价大幅上扬,幅度较前一日收盘高出4%并且收盘大于开盘:cc:=c2/ref(close,3)>andc2>c1;综合选股条件:最后我们将三天的K线特征结合起来,合成一个最后的条件就是由图所示内容:aaandbbandcc最终结果就是(可以直接加进通达信公式编辑器):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:=a1<b2anda1/a2>;bb:=b1>c3andb2>c3andabs(b1-b2)/b1<andb3>b1andb3>b2andb4<b1andb4<b2andb3=hhv(high,20);cc:=c2/ref(close,3)>andc2>c1;aaandbbandcc;如果我们想把这个选股公式改为指标公式,修改最后一个语句就可以了。将aaandbbandcc;改为DRAWICON((AAANDBBANDCC),HIGH*,2);这时在符合条件的K线上方出现了一个绿色的向下箭头,提示卖出。效果如下:黄昏之星是一个卖出信号,与之相对应的是一个买入信号,称为早晨之星,如下图:指标源码请参考通达信中的相关选股公式。突破底部横盘整理创新高定义:股价突破长期盘整区间,之后放量上攻进入主升段。“长期”设定为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都小于;PZ:=REF(PZ4,1)<ANDREF(PZ5,1)<;3、今天创下历史新高,也就是今天的最高价是150天内的最高价!TP1:HHV(HIGH,M);TP:=HIGH=TP1;综合三个条件的最后的逻辑判断式就是我们的最后结论:V2ANDPZANDTP(参数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)<ANDREF(PZ5,1)<;TP1:HHV(HIGH,M);TP:=HIGH=TP1;V2ANDPZANDTP;注意:如果源码加入到公式编辑器后显示错误,请多注意标点符号,需要将中文模式下的标点改成英文模式下的标点,例如:“:”改成“:”,“,”改成“,”以及括号等等。3.各种指标公式编辑器的详细区别公式管理器可管理四种类型的公式:指标公式:用于指标图形的绘制。条件选股公式:用于条件选股。交易系统公式:用于专家指示及测参、测指。五彩K线公式:用于K线模式指示。这四种公式相互独立,名称可以相同,但其内容和作用不同。每种类型的公式包括四种形式:系统加密公式:用绿色图标和锁形符号显示,要进行密码确认系统公式:用绿色图标显示,可进行删改用户加密公式:用红色图标和锁形符号显示,要进行密码确认用户公式:用红色图标显示,可进行删改指标公式附加买卖逻辑判断式,得到交易系统公式;指标公式附加选股条件逻辑判断式,得到条件选股公式。指标公式附加色彩逻辑判断,得到五彩K线公式。技术指标公式编辑器技术指标公式即通常所说画线指标,此类公式的主要目的是通过对数据采取一定的运算,将输出结果直观的显现在分析图上,为投资者提供研判行情的基本依据。此类指标至少要有一条输出线,输出包括文字,图标等,本系统老版本允许最多6条的输出线,新版本可以输出50条输出线。技术指标公式编辑器实现对技术图表分析中各类技术指标和自我定义的技术分析指标的编写,并且通过TDX的分析界面形成图表、曲线,以方便和寻找有意义的技术图形和技术特征。条件选股公式编辑器也就是通常意义上解释的智能选股。但我们的目的在于建立一个完全开放、自由的选股平台,可以通过对该平台的熟练使用,借助计算机的高速和准确的检索功能寻找满足您的理解的股票形态和技术特征,如果和预警系统结合起来用,将可以在盘中实时提示符合条件的股票。条件选股公式有且仅有一个输出,这是它和技术指标不同的地方。五彩K线公式编辑器准确讲,该编辑器的功能是附属于条件选股功能之上的,我们可以通过该功能将满足条件的连续K线形态赋予颜色,区别了其它的K线。条件选股公式与五彩K线公式的区别:条件选股公式和五彩K线公式都有且仅有一个输出,其目的都是为投资者提供买入或卖出点的指示,不同之处在于:条件选股公式仅对最近数据提示买入或卖出,而五彩K线公式则对输入的所有历史数据进行提示。另外,五彩K线公式的输出是在K线图上,通过各种颜色对提示数据进行标识,条件选股公式的输出是找出符合最近条件的所有股票。交易系统公式编辑器交易系统公式是通过设定买入和卖出点(有且仅有这两个输出),由计算机进行模拟操作。以此为依据,系统一方面可以进行五彩K线公式的功能,同时提示买入和卖出;另一方面可以通过模拟操作,对指标买卖的收益、指标的最佳参数及最佳指标等各情形进行测试。交易系统是在条件选股功能上的一次大的延伸,旨在建立一套完整的交易规则体系,通过该编辑器对各个相关的交易环节,包括买入的切入、卖出、止损以及整体的交易性能检验等等作出定量的规定,帮助投资者建立一套属于自己的买卖规则和理论。4.特殊公式脚本编写要编写一个公式,必须要明确这个公式对应的理论知识。一套完整的理论知识且能在通达信的公式平台上做成公式还要满足如下要求:1.从该理论应能分析出公式启动的起始数据。如股票的开高低收价格、成交量、各财务数据、各即时数据、时间数据、一些常见的技术分析概念、其他理论的结果等,这些数据大部分是系统提供的,而最后两项则要从其他公式中得来也就是对应于公式编写中的指标引用操作(当然在这公式编写前要确保该要引用的指标已实现)。2.从理论中应能分析出起始数据到结果的明确运算过程。在公式平台中提供了一些系统函数,这些函数包含了部分常用的运算过程(如HHV(X,N)可求N周期内X最高值)。如果理论中的运算过程拆解完全后,能由公式平台中的函数及允许的基本运算全部组成就可以编写成公式了。在之前的学习当中,我们已经对公式系统、公式脚本编辑有了基本的认识。公式系统提供给我们的基本函数、系统公式,就是我们运用公式系统编写自己的公式时的基本元素。对于一些常见的技术分析概念的编写在上一章节已经给出了介绍和示例,本章节主要来介绍一下在公式脚本编写如果用系统函数及基本运算来解决一些特殊难题。在分钟周期下划分交易日1.均线(分钟):指标名称:均线(分钟)指标原理:均价=累加自当日开市到当前K线时间内的成交金额/累加自当日开市到当前K线时间内的成交量。编写分析:1.确定交易日内第一根K线的位置(难点);2.自1中确定的位置累加成交金额、成交量(由系统函数SUM实现);3.由成交金额、成交量求均价(由除法操作符实现)。公式脚本:FIRST:=IF(PERIOD=0,HOUR=9ANDMINUTE=31,IF(PERIOD=1,HOUR=9ANDMINUTE=35,IF(PERIOD=2,HOUR=9ANDMINUTE=45,IF(PERIOD=3,HOUR=10ANDMINUTE=0,IF(PERIOD=4,HOUR=10ANDMINUTE=30,0)))));SUM(AMO,BARSLAST(FIRST)+1)/SUM(VOL,BARSLAST(FIRST)+1);上面的公式适用于1分钟,5分钟,15分钟,30分钟,60分钟等五个周期下。将给出每个交易日中各周期下均线的走势。公式脚本编写中的重点就是First变量的确定,这也是这段脚本的亮点。First变量表示的是当日当前周期的第一根K线位置,是通过IF函数的嵌套使用结合各分钟周期的第一根K线的时间得来的。跨周期引用数据在同一个公式脚本中,所有变量的数据周期都是相同的,就是调用公式时设置的周期。在公式脚本中要用其它周期的数据,共有两种方式:1)对变量用变周期符号(#),改变其周期。这种方式有局限性,只能在小周期公式中得到大周期数据,且仅适用于一些基本数据,如close,high,low,open等。示例脚本:日最高价:H;周最高价:H#WEEK;运行示例:2)在公式脚本中调用其它公式以取得其它周期的数据。调用其它公式,并用#设置其周期。比如,公式脚本在日线下运行时,可用#week;来获得kdj在周线下的k值,另属于于同一周线的日线将获得相同的K值。示例脚本:公式1:公式名称:JBSJ公式描述:基本数据公式脚本:JC:C;{当前周期收盘价}JH:H;{当前周期最高价}JL:L;{当前周期最低价}JO:O;{当前周期开盘价}JYC:REF(C,1);{前一个周期收盘价}公式2:公式名称:TEST049公式脚本:日线开盘价:#DAY;周线开盘价:O;月线开盘价:#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);此指标用于分钟周期线,同时在昨开盘价的位置上画一根线。运行示例:3)使用跨周期引用数据时注意点    可供引用的周期类型有:  MIN1,MIN5,MIN15,MIN30,MIN60,DAY,WEEK,MONTH  分别表示将1,5,15,30,60分钟K线数据,以及日,周,月K线数据,代入被引用的公式,进行运算。    可将大周期内跑的数据,引用到小周期内来跑;也可将小周期内跑的数据,引用到大周期内来跑。切勿对开高低收以外的数据直接使用变周期转换!切勿对大周期内跑的数据使用小周期转换!无论是开高低收等基本数据、还是自定义变量,都无法从大周期数据直接转换成小周期数据,只能通过公式引用来获得小周期数据。对某个时间段统计1)某绝对时间段最高价此脚本段求1998年8月3日到1998年12月20日间的最高价:HH:=IF(YEAR=1998AND(MONTH>8OR(MONTH=8ANDDAY>=3))AND(MONTH<12OR(MONTH=12ANDDAY<=20)),H,0);{HH变量在该时间段内等于H,其他时间为0}  HHV(HH,0);{此例求1998年8月3日到1998年12月20日间的最高价}2)某相对时间段最高价60天前到40天前之间的最高价  REF(HHV(H,60-40),40);在某个时间段内某条件满足TT:=C/REF(C,1)>;{是否涨停}COUNT(TT,20)>0;{二十个交易日内时候涨停过}上面的脚本配合中示例可以写出历史某绝对时间段,或相对时间内是否涨停过的选股公式。上图中的效果还可以借助Filter这个函数来实现。K线绘制示例公式:博弈K线公式名称:博弈K线公式脚本:BKO:WINNER(O),NODRAW;BKH:WINNER(H),NODRAW;BKL:WINNER(L),NODRAW;BKC:WINNER(C),NODRAW;DRAWKLINE(BKH,BKO,BKL,BKC);运行示例:创新高周期数成交量创新高周期数脚本:FV:=IF(BARSCOUNT(C)=0,99,VOL);量创新高周期数:SUMBARS(REF(FV,1)-FV,0);{这里的关键是REF(FV,1)-FV,想想看写成FV-REF(FV,1)行不行};脚本控制在通达信的公式脚本中没有专门的控制语句,一切都是变量(仅有输出与不输出的区别),所以要实现应用于多种情况的脚本也要依靠变量来控制。系统函数中有几个重要的函数就是IF,IFF,IFN,TESTSKIP.请大家注意的是通达信的函数的参数都是先计算出结果然后将参数传给函数的。因此对于TESTSKIP,最好作为一条单独的语句来使用。公式脚本1:同中的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:="#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:="#MIN5";JO:="#MIN5";JLC:="#MIN5";JC:="#MIN5";DRAWKLINE(JH,JO,JLC,JC);横向统计函数横向统计类函数是板块中所有股票都参与计算的函数,有: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函数用来取当前成份股所在板块指标窗口定点输出函数在新版本的公式编辑器中新加了两个绘图函数,用于定点输出文字或数字。他们就是DRAWTEXT_FIX,DRAWNUMBER_FIX。固定位置显示文字.用法:DRAWTEXT_FIX(COND,X,Y,TYPE,TEXT),当COND条件满足时,在当前指标窗口内(X,Y)位置书写文字TEXT,X,Y为书写点在窗口中相对于左上角的百分比,TYPE:0为左对齐,1为右对齐。例如:DRAWTEXT_FIX(CURRBARSCOUNT=1ANDCLOSE/OPEN>,,,0,'大阳线')表示最后一个交易日涨幅大于8%时在窗口中间位置显示'大阳线'字样。2.DRAWNUMBER_FIX固定位置显示数字.用法:DRAWNUMBER_FIX(COND,X,Y,TYPE,NUMBER),当COND条件满足时,在当前指标窗口内(X,Y)位置书写数字NUMBER,X,Y为书写点在窗口中相对于左上角的百分比,TYPE:0为左对齐,1为右对齐。例如:DRAWNUMBER_FIX(CURRBARSCOUNT=1ANDCLOSE/OPEN>,,,0,C)表示最后一个交易日涨幅大于8%时在窗口中间位置显示收盘价。现在我们举例说明这两个函数的用法:示例公式:DRAWFIX公式名称:DRAWFIX公式脚本:DRAWTEXT_FIX(ISLASTBAR,,0,0,HYBLOCK),COLORYELLOW;DRAWTEXT_FIX(ISLASTBAR,0,0,0,'股本结构:'),COLORRED;DRAWTEXT_FIX(ISLASTBAR,0,,0,'总股本:'),COLORRED;DRAWNUMBER_FIX(ISLASTBAR,0,,0,FINANCE(1)),COLORMAGENTA;DRAWTEXT_FIX(ISLASTBAR,,,0,'流通A股:'),COLORGREEN;DRAWNUMBER_FIX(ISLASTBAR,,,0,FINANCE(7)),COLORYELLOW;DRAWTEXT_FIX(ISLASTBAR,,,0,'今日换手率:'),COLORGREEN;DRAWNUMBER_FIX(ISLASTBAR,,,0,V*100/CAPITAL),COLORYELLOW;效果图:注:1.当窗口大小改变时,DRAWFIX各输出文字或数字的相对位置不变;2.通过方向键等方式改变分析图中K线个数时,DRAWFIX窗口内的文字或数字位置不随之改变;字符串函数新加入公式管理器的字符串函数有:HYBLOCK、DYBLOCK、INBLOCK、NAMELIKE、CODELIKE、CON2STR、STR2CON、STRCAT、STRCMP、FINSTR;在公式管理器的插入函数列表中有它们的介绍。注:字符串中含百分号时,2个百分号代表一个。如’%%’显示时为一个%示例公式:DRAWFIX2公式名称:DRAWFIX2公式脚本:ST股:=NAMELIKE('S')ORNAMELIKE('*');BE显示:=INBLOCK('上证A股')ANDNOT(ST股)ANDCODELIKE('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,0,STRCAT('品种地域:',DYBLOCK)),COLORYELLOW;DRAWTEXT_FIX(BE显示,0,,0,'股本结构:'),COLORRED;DRAWTEXT_FIX(BE显示,0,,0,STRCAT('总股本:',STRCAT(CON2STR(FINANCE(1)/10000,0),'万股'))),COLORRED;DRAWTEXT_FIX(BE显示,,,0,STRCAT('流通A股:',STRCAT(CON2STR(FINANCE(7)/10000,1),'万股'))),COLORGREEN;DRAWTEXT_FIX(BE显示,,,0,STRCAT('今日换手率:',STRCAT(CON2STR(V*100/CAPITAL,2),'%%'))),COLORGREEN;公式演示截图:600600青岛啤酒000001深发展A公式系统答疑1指标公式tip,不显示线或者不在左上方显示输出变量和值等信息。A:C,NODRAW;可以在左上方显示变量和输出值,但是不画线。NOTEXT1:MA(CLOSE,M1);NOTEXT2:MA(CLOSE,M2);NOTEXT3:MA(CLOSE,M3);NOTEXT4:MA(CLOSE,M4);2nodraw和drawnull的区别第一个是不画线显示数值第二个是不画线也不显示数值(值为无效值-)AA:WINNER(C),NODRAW;AA:WINNER(C),DRAWNULL;这些前缀的输出就可以不显示输出的变量和输出变量的值等信息了。3公式脚本:排名:=INSORT('深沪A股','PSY',2,0);PSYMA:排名>=10;用条件选股加入后选股,结果什么也选不出来‘深沪A股’版块名称中的字母要是英文输入法下的全角字符。引用系统里含大写字母的板块(如B股AH对照),都按这个规则来写,不过不要引用含个股太多的股票最好不要超过100的板块,不然用这个INSORT函数,电脑几乎动不了,很卡很慢。4横向统计函数在个股上执行时,结果会各不相同原因是其他股票的K线要以当前个股的时间序列为模板进行过滤。5公式输出变量有值,为什么没有滑出线通达信的画线对于单个周期有值,前后两个周期都是无效值的情况是不画线的,只是画了一个点。所以一般要用BACKSET向前赋值函数来解决这个问题。6为什么分析图上指标的值随着分析图缩放而变化指标中应该用到了ema,tma,expma等函数,它们的计算结果本就是会随着参与计算的k线个数变化而变化的,这是它们的算法决定的。ema的算法公式是:Y=(2*c+(n-1)Y')/(n+1);{其他两个的算法也和这个很相似}可以看出ema(c,n)函数计算的结果和历史每一天的c值都有关系。如果你希望看到的结果不变,可以设置分析图完全使用下载的日线数据。7我在编写指标时,用到了大盘收盘价INDEXC,但实际执行指标后,发现得不到完整的大盘历史数据。请问如何解决INDEXC这样的大盘数据的历史数据部分是从下载到本地的历史数据中取得的。要下载完整历史日线。另外,跨周期引用,引用其他股票k线,或者计算其他股票的指标时所使用的历史数据部分都会从本地下载数据中取。8电脑安装上XP3,一打开公式,中文汉字是乱码。拷贝到TXT后没有乱码,在.txt文件中拷过去是乱码,XP2不会有此现象。请问如何解决这是一个在Windows2000和WindowsXP系统中很常见的现象,属于设置问题。解决这个问题的方法是:(1)在复制文字前用“Ctrl+Shift”组合键调出中文输入法,以后再执行“复制”/“粘贴”操作就不会出现乱码问题了。(2)不使用系统自带的“文本编辑器”,安装EmEditor或UltraEdit文本编辑器,在里面选择“按ANSI方式粘贴”功能即可。(3)还有一种解决方法是在系统中是把默认文字输入法设为中文状态下的英文输入法。用鼠标在系统桌面上依次选择“开始→设置→控制面板→文字服务”,里面通常会有英语和简体中文两种语言,英语下面有“英语(美国)”一类的项目,中文下面则有“简体中文输入法(美国)”、“微软拼音输入法”一类的项目。实际上,这个“简体中文输入法(美国)”就是在中文状态下输入英文的。但是它与上面的英语下面的“英语(美国)”又不同,后者是在英文状态下输入英文。只要你把要这个“简体中文输入法(美国)”设为默认输入法(以后右下角输入法上面总是显示“Ch”,而不是“En”),就不会出现粘贴乱码的情况了。如果你的电脑中找不到这一项,说明你没有安装,要么通过系统盘安装,要么使用上面方法。9通达信软件的自定义指标由于某些原因突然消失后如何恢复(重装系统或者是升级之后的也适用)1.关闭通达信软件2.进入通达信软件安装的文件夹,找到T0002文件夹进入3.进入gs_bak文件夹,此文件夹内为公式备份4.将日期为最近的以下三个文件改名即可。文件为:-->,>,>其中为日期数,如10号的备份文件名就是,改名的规则就是-->5.然后将改名后的三个文件复制到T0002目录内覆盖即可。6.重启通达信软件。10选股不全问题选股不全,原因很可能是历史数据缺失的问题。(给客户验证是数据问题的步骤)如果客户说那个股票副图信号为1,但是该条件的选股公式没有选出哪只股票,那么就把这只股票的数据重新下载尽可能长的时间的数据,然后缩小选股范围(方便一眼看出选出来的股票包括刚刚下载了数据的那个股票),如果选出来此股,说明就是数据缺失问题。例说如选股公式:DIF:=EMA(C,24)-EMA(C,48);DEA:=EMA(DIF,12);MACD:=2*(DIF-DEA);BU:MACD<0AND="AND"DIF="DIF">0;选股日期:2011年10月12日选出来的股票中,不含有“ST兰光ST鲁北ST三联ST万鸿象屿股份新华联浙报传媒”这几天股票,而根据技术指标来看,很明显这几只票也是符合选股条件的。这几个票的共同之处就是分别于今年的8/26、8/18、7/25、9/8、8/29、7/8、9/29有过涨跌幅不受限制。试过好几个版本,包括最新的测试版,问题都是相同的。怎么回事儿验证是因为历史数据缺失造成的时候发现其中2个都是中间有半年甚至一年停牌的。其他的几只没选出来的股票,猜测应该都有类似问题所以就没有验证了。条件选股功能计算时是使用本地数据的,所以本地数据必须完整。下载2008年以后的完整数据再选,试试都成功选出来了。一般而言选不全股票的那种条件选股中都包含了参数N。公式中的参数,那个参数的数值越大本地差K线数据的可能性就越大,所以下载的k线最少要满足里面用到的最大参数的值个数,本题中好像是“60”用到60日移动平均,和60日收盘平均了,如果哪个股票不满足60个连续的K线数据,哪个股票就选不出。结论:选股时有些符合条件的没选出来考虑两个要素:1历史数据是否足够2条件式边界值是否不够精确x=写成0<x<最好11扩展行情品种综合选股选不出来怎么回事儿系统——盘后数据下载(最后一项扩展行情日线下载或者是港股期货日线下载,下载完整的扩展行情数据)因为一般的使用选股时会提示本地数据不全,然后就问补全数据不,这时候一般客户为了选股都会选择确定,然后终于数据下完了可以选了,但是发现扩展行情的还是没有选出来,那是因为条件选股默认的补全日线数据,也是针对普通的深沪股票,而不是扩展行情。所以扩展行情选股还是要先下载扩展行情完整的日线数据。12公式管理器中引入指标公式,程序出错试着检查下自编公式,是否在该公式中自引用了。13有些客户的公式导入会提示“无法兼容的公式版本,导入失败”。(公式导入导出功能是这个dll控制的)因为他们是用粘贴复制指标代码的方法建的文本文件,然后重命名为.tni文件的而不是从客户端导出的tni文件,所以会有这样的错误。验证客户是不是有这个问题的方法很简单就是反键打开文件用记事本方式可以打开看到内容这样的tni文件就是不合法的,真正的tni文件打开看到的只会是乱码。14怎样在K线图的右边显示信息.1建主图叠加指标公式DRAWTEXT_FIX(1,,,1,'右边显示信息'),COLORGREEN;2ALT+F12直接使用画线工具中的定点文本注释,在右侧直接书写文字注释。15区间过滤TFILT(C,1111212,0930,1111216,1500)不能用怎么回事儿。(区间过滤12月12日至12月16日收盘价公式)日周期以上(包括日周期),把分钟参数设置为0就可以了如TFILT(C,1111212,0,1111216,0)函数说明中有的。16求一段时间区间里的成交量的和。方法一:比方说你要统计的是2010年0101到的成交量和的话那就可以先一个sum函数SUM(VOL,5)然后如果你取到这天的这个值就可以了REFDATE(SUM(VOL,5),1100105)。方法二:Volsum:=IF(YEAR=1998AND(MONTH>8OR(MONTH=8ANDDAY>=3))AND(MONTH<12OR(MONTH=12ANDDAY<=20)),v,0);这个可以使得历史某天以来某只股票的这个日期范围内的股票的vol都还是vol这个日期职位的volsum的值都为零所以有了上面这句话还要一句话就可以实现了SUM(VOLSUM,0);17求某段时间的最高价。(求最高价)1)某绝对时间段最高价此脚本段求1998年8月3日到1998年12月20日间的最高价:HH:=IF(YEAR=1998AND(MONTH>8OR(MONTH=8ANDDAY>=3))AND(MONTH<12OR(MONTH=12ANDDAY<=20)),H,0);{HH变量在该时间段内等于H,其他时间为0}{使得HH在规定期内是每日的最高值,其他的时间内都为0}HHV(HH,0);{此例求1998年8月3日到1998年12月20日间的最高价}18选股:选出2007年6月1日以来连续4天跌停的股票。对于之前不可以选定选股时间范围的版本:DT:=(C-REF(C,1))/REF(C,1)*100<=-9;TJ:=EVERY(DT,4);SHUCHU:IF((YEAR>2007OR(YEAR=2007AND(MONTH>6OR(MONTH=6ANDDAY>=1)))),TJ,0);可以设定选股时间范围的新版本:DT:=(C-REF(C,1))/REF(C,1)*100<=-9;TJ:EVERY(DT,4);{注意需要在条件选股中设定选股的日期范围}19公式中引用单只股票的基本行情数据(高开低收)问:请问如何区分代码相同的品种比如深康佳的收盘价为:"000016$C",同样上证50的代码也是000016,这两个怎么区分开答:"SH000016$C";SZ是限制深圳市场刚好个股000016是深圳000016指数是上证的20引用个股的行情数据(非基础函数)方法一:$操作符想比较指定的两个股票000001和000002的收盘价。但是那个引用操作符“$”只能引用基础函数。方法二:编写甲乙二个公式,用乙公式引用甲公式。例如甲公式取名:买入价。买1价:DYNAINFO(20);用乙公式引用甲公式:CALCSTOCKINDEX('000001SZ','买入价',1);CALCSTOCKINDEX('000002SZ','买入价',1);这样儿是可以取到这两个股票当时的即时的买一价,但是这个是即时行情数据其实觉得没有第一种方法人性化,但是这个方法来引用个股非基础函数(HLOC)的好方法。CALCSTOCKINDEX。CALCSTOCKINDEX(指标说明)用法:CALCSTOCKINDEX(股票代码,指标名称,指标线),返回股票该指标相应输出的计算值.例如:CALCSTOCKINDEX('600000SH','KDJ',3)表示上证600000股票的KDJ指标第三个输出即J之值21有客户反应con2str函数有问题的因为这个函数转换后的值必须用drawtext来输出才可以正确显示。22如何在分时主图指标中引用日线的数据(要点是此指标要是主图叠加类型的指标因为只有这类型的指标才可以在分时图中选择被使用)比如在分时主图上画昨日的最高值最低值的线1.先做一个次指标FSSUB:LASTHIGH:REF(HIGH,1);LASTLOW:REF(LOW,1);2.再做一个主指标FS:(主图叠加类型)ZG:#DAY;ZD:#DAY;就可以在分时图主图上使用这个FS指标了注意:跨周期引用需要下载完整的日K线直接用上面1做成主图叠加指标加入到k线图和2引用日线数据#DAY是有区别的。直接在分时的引用就是分钟周期的指标公式的值。23不同含义的数据拿来对比的问题例1:主力风向标的统计数据应该是和DDX的统计值一样的,其实主力风向标引用的应该也就是DDX的数值吧,这个没有疑问。可是DDX为负值,也就是说大单流出是大于大单流入的,可为什么同一只股票DDX为负值,为什么资金博弈的超大单和大单统计却是资金大幅流入。DDX:(逐笔买入大单成交-逐笔卖出大单成交)*10000/流通股本(股)(LARGEINTRDVOL-LARGEOUTTRDVOL);这个是(逐笔买入大单成交-逐笔卖出大单成交)分档解释:L2_VOL(N,M)N(0--3):超大/大/中/小四档处理,M(0--3):买入/卖出/主买/主卖四类也可以用下面的lev2分档函数表示(L2_VOL(0,0)+L2_VOL(1,0))-(L2_VOL(0,1)+L2_VOL(1,1));{逐笔买入大单成交量,相当于L2_VOL(0,0)+L2_VOL(1,0),就是分档中的超大单和大单的买入资金流向功能专用};{逐笔卖出大单成交量,相当于L2_VOL(0,1)+L2_VOL(1,1),就是分档中的超大单和大单的卖出资金流向功能专用};当日超大单:当日超大单净流入(超大单主买金额-超大单主卖金额)即L2_AMO(0,2)-L2_AMO(0,3)当日大单:当日大单净流入(大单主买金额-大单主卖金额)即L2_AMO(1,2)-L2_AMO(1,3)区别:一个是分档中的买卖一个是分档中的主买主卖;一个是量一个是金额所以不是一个东西。不一样是正常的!例2:TRADENUM=逐笔成交总单数TRADEINNUM=逐笔买入成交单数TRADEOUTNUM=逐笔卖出成交单数此三个函数个人以为:逐笔成交总单数=逐笔买入成交单数+逐笔卖出成交单数;实际上逐笔成交总单数与(逐笔买入成交单数+逐笔卖出成交单数)之间并不相等,相差很大。BUYNUM:TRADEINNUM{=逐笔买入成交单数};{可以理解为所有的超大单大单中单小单的买卖的总单数}BUYNUM1:L2_VOLNUM(0,0)+L2_VOLNUM(1,0);{L2_VOLNUM(N,M)单数分档,按:N(0--1):(超大+大)/(中+小),M(0--1):买/卖二类,资金流向功能专用};SELLNUM:TRADEOUTNUM{=逐笔卖出成交单数};SELLNUM1:L2_VOLNUM(0,1)+L2_VOLNUM(1,1);{L2_VOLNUM(N,M)单数分档,按:N(0--1):(超大+大)/(中+小),M(0--1):买/卖二类,资金流向功能专用};TRADENUM=逐笔成交总单数=超大大中的主买主卖的总单和。(买入:主买+被买卖出:主卖+被卖)附录(公式函数列表)1序列行情函数HIGH最高价返回该周期最高价。用法:HIGHH最高价返回该周期最高价。用法:HLOW最低价返回该周期最低价。用法:LOWL最低价返回该周期最低价。用法:L,同LOWCLOSE收盘价返回该周期收盘价。用法:CLOSEC收盘价返回该周期收盘价。用法:C,同CLOSEVOL成交量返回该周期成交量。用法:VOLV成交量返回该周期成交量。用法:V,同VOLOPEN开盘价返回该周期开盘价。用法:OPENO:开盘价返回该周期开盘价。用法:O,同OPENADVANCE上涨家数返回该周期上涨家数。用法:ADVANCE (本函数仅对大盘有效)DECLINE下跌家数返回该周期下跌家数。用法:DECLINE (本函数仅对大盘有效)AMOUNT成交额返回该周期成交额。期货和期权无成交金额。用法:AMOUNTAMO成交额返回该周期成交额。期货和期权无成交金额。用法:AMO,同AMOUNTVOLINSTK持仓量返回该周期持仓量,对于期货和期权有意义.用法:VOLINSTKQHJSJ结算价返回该周期结算价,对于期货和期权有意义.用法:QHJSJHKSHORTVOL抛空量返回该周期抛空量,对于港股有意义.用法:HKSHORTVOLDHIGH不定周期最高价返回该不定周期最高价,属于未来函数.用法:DHIGHDOPEN不定周期开盘价返回该不定周期开盘价,属于未来函数.用法:DOPENDLOW不定周期最低价返回该不定周期最低价,属于未来函数.用法:DLOWDCLOSE不定周期收盘价返回该不定周期收盘价,属于未来函数.用法:DCLOSEDVOL不定周期成交量返回该不定周期成交量价,属于未来函数.用法:DVOLPERIOD周期类型取得周期类型.结果从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。(本函数仅个股在分笔成交分析周期有效)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年内星期取得该周是年内第几个周.用法:WEEKOFYEARWEEKDAY星期取得该周期的星期数。用法:WEEKDAY 函数返回有效值范围为(1-7)。DAYSTOTODAY取得该周期的日期离今天的天数.用法:DAYSTOTODAYDAY日期取得该周期的日期。用法:DAY 函数返回有效值范围为(1-31)。注:DAY关键字也可用于跨周期日线引用HOUR小时取得该周期的小时数。用法:HOUR 函数返回有效值范围为(0-23),对于日线及更长的分析周期值为0。MINUTE分钟取得该周期的分钟数。用法:MINUTE 函数返回有效值范围为(0-59),对于日线及更长的分析周期值为0。FROMOPEN分钟求当前时刻距开盘有多长时间。用法: FROMOPEN 返回当前时刻距开盘有多长时间,单位为分钟。例如: FROMOPEN 当前时刻为早上十点,则返回31。TOTALFZNUM总分钟数求该品种的每天的总交易分钟数.用法:TOTALFZNUM例如:TOTALFZNUM.返回当前品种的每天的总交易分钟数,单位为分钟.DATETODAY转换天数指定日期到的天数.用法:DATETODAY(date)DATETODAY(date).返回date到的天数.有效日期为(90)例如:DATETODAY(901219)返回0.DAYTODATE转换日期求后第若干天的日期.用法:DAYTODATE(N)DAYTODATE(N).返回
本文档为【通达信公式编写教程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥12.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
似曾相识燕归来
暂无简介~
格式:doc
大小:721KB
软件:Word
页数:0
分类:高中英语
上传时间:2020-10-14
浏览量:90