通达信如何编写选股公式.docx

上传人:b****6 文档编号:6395426 上传时间:2023-01-06 格式:DOCX 页数:7 大小:19.41KB
下载 相关 举报
通达信如何编写选股公式.docx_第1页
第1页 / 共7页
通达信如何编写选股公式.docx_第2页
第2页 / 共7页
通达信如何编写选股公式.docx_第3页
第3页 / 共7页
通达信如何编写选股公式.docx_第4页
第4页 / 共7页
通达信如何编写选股公式.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

通达信如何编写选股公式.docx

《通达信如何编写选股公式.docx》由会员分享,可在线阅读,更多相关《通达信如何编写选股公式.docx(7页珍藏版)》请在冰豆网上搜索。

通达信如何编写选股公式.docx

通达信如何编写选股公式

通达信如何编写选股公式

1、语句名写在语句的前面,用一个冒号(“:

”)将它与语句隔开。

语句“上日收盘价:

REF(close,1)”就表示该语句REF(close,1)的名称为“上日收盘价”。

该语句后而的语句若需引用它,则写公式名即可,如

MA(上日收盘价,20)意思是对上日收盘价求20日平均。

2、我们可以把不需要显示语句定义为中间语句,中间语句的写法只需在一般语句的名称与语句之间的等号,即“=”即可(亦可用通用的冒号加等于号“:

”)。

例如,语句“上日收盘价=REF(close,1)”就表示

该语句为中间语句。

重复使用的语句也可以定义成中间语句。

3、条件选股公式只有一条逻辑表达式语句,用来表示选股条件是否成立,例如CLOSE,REF(close,1)语句,表示选出当期收盘价高于上日收盘价的股票。

其他的语句必须设定为中间语句,否则编辑器出现

“只能有一个输出结果”的警示。

交易系统公式需要逻辑表达式语句,分别为买入(在语句后加buy)、卖出条件(在语句后加sell),当这些语句返回非0时,表示需要进行相应的操作。

其他的语句必须设定为中间语句,否则编辑器出现“非交易信号变量只能用:

=赋值”的警示。

条件中必须至少设定一个条件。

4、函数可以用简写,如收盘价开盘价分别用C,O来表示,在编写中往往可以自动变成大写字母,可以以此判断。

函数名编写正确时字母变为大写。

编写中要用彩色编辑,这样可以指示出软件对于此函数

是否认可,,应变成彩色。

5、公式编写完测试公式通过后,还需进行曲线属性的设置,在“曲线属性”:

如显示曲线的位置是主图,副图,成交量图等,还可以设置是否显示曲线参数或只显示参数而不显示曲线,选择显示的图标,提供象箭头,圆,凌形(buy红色向上箭头,buy1黄色箭头,1空心三角形,2空心圆,4空心菱形,5星花...),曲线颜色等...最后再测试通

过,确定退出编辑。

6、未来函数有:

zig,PEAK,PEAKBARS,TROUGH,TROUGHBARS,

所以任何函数都具有未来函数特性,也没什么可怕。

语言规范:

在自定义公式里面的各种符号(如,“;”)只能用半角不

能用全角。

关键字ifelsewhilebreakcontinuereturn(无大小写之分).常数浮点数、整数、字符串.分隔符“”„‟();{}注释/**/.标识符由字母和数字组成,由字母开头,不分大小写.运算符(优先级从高到

低排列,同级同行)*/+-!

=><>=<=AndOr

语句赋值a=b

条件IF(a==b)c=d;

循环whilea==bc=d;

函数调用func(a,b)

赋值语句:

其一般形式为:

a=b;含义为将b的值付给a。

几个运算符“,”赋值、“:

=”赋值“:

”赋值并输出数值或字符串“:

>”赋

值并输出图形。

注意:

“,”和“:

=”两个运算符的意义、用法完全相同。

这样做主要是为了更好地兼容市场上目前的各种带有公式编辑功能的分析软件。

同花顺公式函数注释(常用部分)

逻辑函数:

1、条件函数:

根据条件求不同的值。

用法:

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

例如:

(CLOSE>OPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返

回最低值。

引用函数:

1、满足条件的周期数:

统计满足条件的周期数。

用法:

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

例如:

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

2、第一个条件成立到当前的周期数:

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

用法:

BARSSINCE(X):

第一次X不为0到现在的天数。

例如:

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

3、上一次条件成立到当前的周期数:

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

用法:

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

例如:

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

4、有效周期数:

求总的周期数。

用法:

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

5、向前赋值:

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

用法:

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

例如:

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

6、求和:

求总和。

用法:

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

开始。

例如:

SUM(VOL,5)周期设为日线时,表示最近5个交易日的成交量之和。

SUM(VOL,0)表示从传数据过来第一天起的成交量总和,具体如在区间统计里统计“总手”SUM(VOL,0)即是指全区间的成交量之和。

7、移动平均:

求移动平均。

用法:

SMA(X,N,M),求X的N日移动平均,M为权重。

算法:

若Y=SMA(X,N,M)则Y=[M*X+(N-M)*Y']/N,其中Y'表示上一周期Y值,N必须大于M。

例如:

SMA(CLOSE,30,1)表示求30日移动平均价。

8、向前引用:

引用若干周期前的数据。

用法:

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

例如:

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

9、简单移动平均:

求简单移动平均。

用法:

MA(X,N),求X的N日移动平均值。

算法:

(X1+X2+X3+,,,+Xn)/N。

例如:

MA(CLOSE,10)表示求10日均价。

10、最低值:

求最低值。

用法:

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

例如:

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

11、最高值:

求最高值。

用法:

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

例如:

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

12、指数平滑移动平均:

求指数平滑移动平均。

用法:

EMA(X,N),求X的N日指数平滑移动平均。

算法:

若Y=EMA(X,N)则Y=[2*X+(N-1)*Y']/(N+1),其中Y'表示上一周期Y值。

例如:

EMA(CLOSE,30)表示求30日指数平滑均价。

13、动态移动平均:

求动态移动平均。

用法:

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

算法:

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

例如:

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

14、最高值周期数:

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

用法:

HHVBARS(X,N):

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

例如:

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

15、最低值周期数:

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

用法:

LLVBARS(X,N):

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

例如:

LLVBARS(HIGH,10)求得10日最低点到当前的周期数。

16、加权移动平均:

求加权移动平均。

用法:

WMA(X,A),求X的加权移动平均。

算法:

若Y=WMA(X,A)则Y=(N*X0+(N-1)*X1+(N-2)*X2)+...+1*XN)/(N+(N-1)+(N-2)+...+1)X0

表示本周期值,X1表示上一周期值...。

例如:

WMA(CLOSE,20)表示求20日加权均价。

17、求和:

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

用法:

SUMBARS(X,A):

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

例如:

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

时间函数:

1、总开盘分钟:

求当前代码类型的开市交易时间。

用法:

TRADETIME。

返回交易时间,单位为分钟。

目前一般市场都返回242,与日期或具体的股票无关。

2、距开盘分钟:

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

用法:

FROMOPEN。

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

例如:

当前时刻为早上十点,则返回31。

3、距午夜秒:

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

用法:

FROMNIGHT。

返回当前时刻距午夜有多长时间,单位为秒。

例如:

当前时刻为早上十点,则返回36000。

4、时间格式:

转换时间格式。

用法:

FORMATTIME(N)。

目前只支持N=1把当前时间转换成距开盘分钟数返回。

例如:

分时中的量比曲线公式:

(VOL*(TRADETIME+1)*5)/(FORMATTIME

(1)*FIVEDAYVOL)。

5、时间差:

计算两个时间之间的差。

用法:

COUNTTIME(N,L,K)。

N、L为时间,其格式为YYYYMMDD。

K为1、2或者3。

当K为1时返回第二个之间比第一个时间晚多少年。

当K为2时返回第二个之间比第一个时间晚多少月。

当K为3时返回第二个之间比第一个时间晚多少日。

例如:

COUNTTIME(20000808,19990606,2)其返回值为-2。

注意:

这里返回值有正负号。

算术函数:

1、绝对值:

求绝对值。

用法:

ABS(X)返回X的绝对值。

例如:

ABS(-34)返回34。

2、介于:

介于两个数之间。

用法:

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

例如:

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

3、最大值:

求最大值。

用法:

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

例如:

MAX(CLOSE-OPEN,0)

表示若收盘价大于开盘价返回它们的差值,否则返回0。

4、最小值:

求最小值。

用法:

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

例如:

MIN(CLOSE,OPEN)

返回开盘价和收盘价中的较小值。

5、求模运算:

求模运算。

用法:

MOD(A,B)返回A对B求模。

例如:

MOD(26,10)返回6。

6、求逻辑非:

求逻辑非。

用法:

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

例如:

NOT(5>3)返回0。

7、范围:

介于某个范围之间。

用法:

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

例如:

RANGE(CLOSE,MA(CLOSE,5),MA(CLOSE,10))表示收盘价大于5日均线并且小于10日均线。

8、求相反数:

求相反数。

用法:

REVERSE(X)返回-X。

例如REVERSE(CLOSE)返回-CLOSE。

9、余弦值:

求余弦值。

用法:

COS(X)返回X的余弦值。

10、正弦值:

求正弦值。

用法:

SIN(X)返回X的正弦值。

11、平方根:

开平方。

用法:

SQRT(X)为X的平方根。

例如:

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

12、上穿:

两条线交叉。

用法:

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

例如:

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

13、维持:

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

用法:

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

例如:

LONGCROSS(MA(CLOSE,5),MA(CLOSE,10),5)表示5日均线维持5周期后与10日均线交金叉。

14、空:

判断是否为空。

用法:

ISNULL(A)表示如果A为空(即没有数据)则返回1,否则返回0。

15、幂:

求幂。

用法:

POW(X,Y)。

求X的Y次幂。

例如:

POW(2,3)为8。

位图-含义:

在图形上绘制位图。

用法:

DRAWBMP(COND,PRICE,BMPFILE),当COND条件满足时,在PRICE位置画BMPFILE文件名指定的BMP位图(缺省路径为软件安装目录登录用户名)。

例如:

DRAWBMP(CLOSE>OPEN,LOW,'SUN')表示当收阳时在最低价位置画软件安装目录登录用户名Sun.BMP位图。

※BMPFILE参数指定的BMP文件默认路径为当前用户目录,如果不

带后缀名即表示BMP文件,也可带后缀名使用JPG和GIF文件。

也可不用用户目录而使用全路径,路径中的''要写两个以下字符串作为参数都是合法的,如果文件存在的话:

"SUN","SUN.BMP","SUN.JPG","SUN.GIF","C:

hexinSUN.JPG"

填充背景-含义:

根据条件填充背景区域。

用法:

DRAWGBK(COND,COLOR),填充满足COND条件的背景区域。

COLOR可以为渐变颜色STRIP,也可以为BMP图形文件名(缺省路径为"软件安装目录登录用户名"),若省略COLOR则使用指标线颜色填充(可以使用COLORRED等描述符设定)。

例如:

DRAWGBK(CLOSE>OPEN),COLORRED;表示收阳时用红色填充背景。

DRAWGBK(CLOSE>OPEN,'MyBMP');表示收阳时用软件安装目录登录用户名MyBMP.BMP填充背景。

画图标-含义:

在图形上绘制小图标。

用法:

DRAWICON(COND,PRICE,TYPE),当COND条件满足时,在PRICE位置画TYPE图标,TYPE是曲线标志的名称。

例如:

DRAWICON(CLOSE>OPEN,LOW,"buy")表示当收阳时在最低价位置画买入图标。

显示文字-含义:

在图形上显示文字。

用法:

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

例如:

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

RGB颜色-含义:

指定颜色。

用法:

RGB(R,G,B),表示用三原色红(R)绿(G)蓝(B)混合组成指定颜色,每种颜色值可以设定为0-255。

例如RGB(255,0,0)表示红色,RGB(0,0,255)表示蓝色

画柱线-用法:

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

例如:

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

提示文字:

TIPTEXT(COND,PRICE,TEXT),当COND条件满足时,在PRICE位置显示图标,若PRICE为0,则在图形底部显示图标。

例如:

TIPTEXT(CLOSE/OPEN>1.08,LOW,'大阳线,股价为:

'+close)表示当日涨幅大于8%时在最低价位置显示图标,鼠标移近时显示文字'大阳线,股价为:

15.88'字样。

※显示为三角图标

画垂直线-含义:

在图形上绘制垂直线。

用法:

VERTLINE(COND,TYPE),当COND条件满足时,沿垂直方向绘制TYPE类型的线段,TYPE=0表示实线,1表示虚线'---',2表示点线'...',3表示点划线'-.-.-',4表示点点划线'-..-..-'。

例如:

VERLINE(HIGH>=HHV(HIGH,20),1)表示在创20天新高画垂直虚线

画水平线-含义:

在图形上绘制水平线。

用法:

HORLINE(COND,PRICE,TYPE,EXTEND),当COND条件满足时,在PRICE位置沿水平方向绘制TYPE类型的线段,TYPE=0表示实线,1表示虚线'---',2表示点线'...',3表示点划线'-.-.-',4表示点点划线'-..-..-'。

EXTEND=1表示向左延长,=2表示向右延长,=3表示左右

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 建筑土木

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1