通达信全部函数及其用法(2011年最新版)
(一)行情函数
1)HIGH(H)
2)LOW(L)
3)CLOSE(C)
4)VOL(V)
5)OPEN(O)
6)ADVANCE
7)DECLINE
8)AMOUNT
9)VOLINSTK
10) QHJSJ 期货结算价 返回期货该周期结算价.
11)BUYVOL
12)SELVOL
13)ISBUYORDER
14)DHIGH
15)DOPEN
16)DLOW
17)DCLOSE
18)DVOL
19)NAMELIKE 模糊股票名称返回股票名称是否以参数开头.
用法: if(NAMELIKE('ST'),x,y);
20)CODELIKE 模糊股票代码 返回股票代码是否以参数开头.
用法: if(CODELIKE('600'),x,y);
21)INBLOCK 属于某板块 返回股票是否属于某板块.
用法: if(INBLOCK('沪深300'),x,y);
(二)时间函数
1)PERIOD 周期 取得周期类型.
结果从0到11,依次分别是1/5/15/30/60分钟,日/周/月,多分钟,多日,季,年.
2)DATE
3)TIME
4)YEAR
6)WEEKDAY
7)DAY
8)HOUR
9)MINUTE
10)FROMOPEN
11)TFILT
用法: TFILT(X,D1,M1,D2,M2) 例如TFILT(CLOSE,1040101,1025,1040101,1345)表示在2004年1月1日的10:25到2004年1月1日的13:45的收盘价是有效的.周期以日为基本单位的,分时为0有效.
12)DATETODAY 上指纪元 指定日期到1990.12.19的天数.
用法: DATETODAY(date)
DATETODAY(date).返回date到1990.12.19的天数.有效日期为(901219-1341231)
例如:DATETODAY(901219)返回0.
13)DAYTODATE 转换日期 求1990.12.19后第若干天的日期.
用法: DAYTODATE(N)
DAYTODATE(N).返回1990.12.19后第N天的日期.有效天数为(0-20000)
例如:DAYTODATE(0)返回901219.
14)TIMETOSEC 当日秒数 求指定时刻距0时有多长时间.
用法: TIMETOSEC(time)
TIMETOSEC(time).返回time时刻距0时有多长时间,单位为秒.有效时间为(0-235959)
例如:TIMETOSEC(93000)返回34200.
15)SECTOTIME 转换时间 求0时后若干秒是什么时间.
用法: SECTOTIME(N)
SECTOTIME(N).返回0时后N秒是什么时间.有效秒数为(0-86399)
例如:SECTOTIME(34200)返回93000.
引用函数HHVBARS和LLVBARS的运用 引用函数BACKSET等4个函数的运用
1、函数:BACKSET 向前赋值将当前位置到若干周期前的数据设为1。用法:BACKSET(X,N),X非0,则将当前位置到N周期前的数值设为1。例如:BACKSET(CLOSE>OPEN,2),若收阳则将该周期及前一周期数值设为1,否则为0。
请看下面指标:
CSAR:SAR(10,2,20),LINETHICK2;{表示计算10日抛物转向,步长为2%,极限值为20%。}
drawtext(CSAR>=H,CSAR,'°'),color00ff00;{当CSAR大于等于最高价,在CSAR上画。状线}
drawtext(CSAR<=L,CSAR,'°'),colorred;{当CSAR小于等于最低价,在CSAR上画。状线}
TJ1:=BACKSET(SARTURN(10,2,20)<>0,2);{若10日抛物转向,步长为2%,极限值为20%,则将该周期及前一周期数值设为1,否则为0。}
TJ2:=REF(TJ1,1);{引用上一周期TJ1}
drawtext(TJ2,CSAR,'°'),coloryellow;{TJ2条件满足在CSAR画。状线}
STICKLINE(C>O,O,C,4,0),COLORRED;
STICKLINE(C>O,H,C,1,1),COLORRED;
STICKLINE(C>O,O,L,1,1),COLORRED;
STICKLINE(C<=O,O,C,4,0),COLORffcc66;
STICKLINE(C<=O,H,O,1,1),COLORffcc66;
STICKLINE(C<=O,L,C,1,1),COLORffcc66;
{1.向下跌破转向点,卖出;向上突破转向点,买入
2.市道趋势明显时,转向点信号准确}
上面是一个抛物转向指标,在第二步句用到了BACKSET函数,与另一个抛物转向点函数SARTURN构成了一个指标语句
(三)引用函数
1)DRAWNULL
)项 角度:ATAN((均线/REF(均线,1)-1)*100)*180/3.1416,NODRAW;(NODRAW,不画该线)
2)BACKSET
3)BARSCOUNT
E1:=BARSCOUNT(C);
AH:=HHV(H,200);
AL:=LLV(L,200);
B0:=(AH-AL)/40;
KB1:=H+B0;
KB2:=L-B0;
STICKLINE((E1+0)/34=FLOOR((E1+0)/34),KB2,KB2-3*B0,2,0),COLORYELLOW,LINETHICK3;
DRAWTEXT((E1+0)/34=FLOOR((E1+0)/34),KB2-2*B0,'时间窗'),COLORWHITE;
4)CURRBARSCOUNT
DRAWTEXT(CURRBARSCOUNT=20,L*0.98,'-20');
DRAWTEXT(CURRBARSCOUNT=6,L*0.98,'-6');
5)TOTALBARSCOUNT
E1:=BARSCOUNT(C);
AH:=HHV(H,200);
AL:=LLV(L,200);
B0:=(AH-AL)/40;
KB1:=H+B0;
KB2:=L-B0;
STICKLINE((E1+0)/34=FLOOR((E1+0)/34),KB2,KB2-3*B0,2,0),COLORYELLOW,LINETHICK3;
DRAWTEXT((E1+0)/34=FLOOR((E1+0)/34),KB2-2*B0,'时间窗'),COLORWHITE;
6)ISLASTBAR
7)BARSLAST
VARZT:=BARSLAST(C/REF(C,1)>1.097);
STICKLINE(VARZT=1,L*0.97,L*0.98,1,0),COLOR0000FF;
DRAWTEXT(VARZT=1,H*1.08,'2天'),COLORYELLOW;
三天前有一个涨停,涨停后三天连续缩量回调的选股公式
A3:=MA(C,8);
B60:=LAST((C>A3),60,6);
B61:= EVERY(C>=MA(C,8),6);
连续:=BARSLAST((B60)>=1) ;
IF(连续 AND C>=MA(C,8),MA(C,8),DRAWNULL),LINETHICK3,COLORCCCCCC;
TY:= REF(CROSS(C,MA(C,8)),1) ;
STICKLINE(TY AND REF(CROSS(C,MA(C,8)),1),L,L*0.96,1,0),COLORGREEN;
8)BARSSINCE
9)BARSSINCEN N周期内首个条件成立位置 N周期内第一个条件成立到当前的周期数.
用法: BARSSINCEN(X,N):N周期内第一次X不为0到现在的天数
例如:BARSSINCEN(HIGH>10,10)表示10个周期内股价超过10元时到当前的周期数
10)BARSSINCE 首个条件成立位置 第一个条件成立到当前的周期数.
用法: BARSSINCE(X):第一次X不为0到现在的天数
例如:BARSSINCE(HIGH>10)表示股价超过10元时到当前的周期数
11)COUNT
例如:2次回踩5日均线不破的选股公式 MA5:=MA(C,5);回踩:=CROSS(C,MA5) ;COUNT(回踩,4)=2 AND C>MA(C,5);
12)BARSLASTCOUNT
14)HHV
15)HHVBARS
16)HOD 高值名次 求高值名次.
用法: HOD(X,N):求当前X数据是N周期内的第几个高值,N=0则从第一个有效值开始.
例如:HOD(HIGH,20)返回是20日的第几个高价
17)LLV
18)LLVBARS
19)LOD 低值名次 求低值名次.
用法: LOD(X,N):求当前X数据是N周期内的第几个低值,N=0则从第一个有效值开始.
例如:LOD(LOW,20)返回是20日的第几个低价
20)REVERSE
21)REF
22)REFV
用法: REFV(X,A),引用A周期前的X值.A可以是变量.
平滑处理:当引用不到数据时进行的操作。
例如:REFV(CLOSE,BARSCOUNT(C)-1)表示第二根K线的收盘价.
23)REFX 日后的 引用若干周期后的数据(未作平滑处理).
用法: REFX(X,A),引用A周期后的X值.A可以是变量.
平滑处理:当引用不到数据时进行的操作。
例如:REFX(CLOSE,1)表示下一周期的收盘价,在日线上就是明天收盘价
24)REFXV 日后的 引用若干周期后的数据(平滑处理).
用法: REFXV(X,A),引用A周期后的X值.A可以是变量.
平滑处理:当引用不到数据时进行的操作。此函数中,平滑时使用上一个周期的引用值。
例如:TT:=IF(C>O,1,2);
REFXV(CLOSE,TT);表示阳线引用下一周期的收盘价,阴线引用日后第二周期的收盘价.
25)REFDATE
26)SUM
27)FILTER
WLT2:=FILTER(弯10,4);查找弯10的4日过滤,4天内再次出现的弯10不被记录在内
28)FILTERX 反向过滤 反向过滤连续出现的信号.
用法:FILTERX(X,N):X满足条件后,将其前N周期内的数据置为0.
例如:FILTERX(CLOSE>OPEN,5)查找阳线,前5天内出现过的阳线不被记录在内
29)TFILTER 交易信号过滤 过滤连续出现的交易信号.
用法:TFILTER(开仓,平仓,N);过滤掉开仓(平仓)信号发出后、下一个平仓(开仓)信号发出前的所有开仓(平仓)信号.
N=1表示仅对开仓信号过滤;
N=2表示仅对平仓信号过滤;
N=0表示对开仓、平仓信号都过滤;
例如:ENTERLONG:TFILTER(开仓,平仓,1);
EXITLONG:TFILTER(开仓,平仓,2);
通达信新函数应用一例:NAMELIKE (源码 交流)
NAMELIKE 模糊股票名称
CODELIKE 模糊股票代码
以此可应用于归类选择或分类过滤
例:
去除ST
S1:=IF(NAMELIKE('S'),0,1);{取得股票名称中的第一个字符为返回条件}
S2:=IF(NAMELIKE('*'),0,1);
ST:S1 AND S2;{最后一句NOT(ST)用取返就成专门选出ST股}
这里的ST条件就在选股中去除了股票名称以S开头及*开头的股票,XD及新股N可用同样方法,创业版可用CODELIKE函数,因为代码300。
例:过滤条件(留ST):= NAMELIKE('ST') OR NAMELIKE('*') {OR CODELIKE('3')}{创业板}
去掉板块:=IF(NAMELIKE('*ST'),0,1) AND IF(NAMELIKE('S'),0,1) AND IF(DYNAINFO(9)=0,0,1) AND IF( CODELIKE('3'),0,1) AND IF( CODELIKE('002'),0,1);
30)TTFILTER 交易信号过滤过滤多空交易信号.
用法:TTFILTER(多头买入开仓,多头卖出平仓,空头卖出开仓,空头买入平仓,N);
1.过滤掉多(空)开仓信号发出后、下一个多(空)平仓信号发出前的所有多(空)开仓信号.
2.多(空)开仓信号发出且空(多)仓已建时,要发出一个平空(多)仓的信号.
3.过滤掉多(空)平仓信号发出后、下一个多(空)开仓信号发出前的所有多(空)平仓信号.
N=1表示仅对多头开仓信号过滤;
N=2表示仅对多头平仓信号过滤;
N=3表示仅对空头开仓信号过滤;
N=4表示仅对空头平仓信号过滤;
N=0表示对合并多空开仓、平仓信号;
例如:ENTERLONG:TTFILTER(多头买入开仓,多头卖出平仓,空头卖出开仓,空头买入平仓,1);
EXITLONG:TTFILTER(多头买入开仓,多头卖出平仓,空头卖出开仓,空头买入平仓,2);
ENTERSHORT:TTFILTER(多头买入开仓,多头卖出平仓,空头卖出开仓,空头买入平仓,3);
EXITSHORT:TTFILTER(多头买入开仓,多头卖出平仓,空头卖出开仓,空头买入平仓,4);
31)TR 真实波幅 求真实波幅.
用法: TR,求真实波幅.例如:ATR:=MA(TR,10);
表示求真实波幅的10周期均值
32)SUMBARS
33)SMA
简单移动平均线(SMA)
算术移动平均线是简单而普遍的移动平均线。平均线是指算术平均数,计算方法为一组数字相加,除以该组数据的组成个数,其中每一给定时限在计算平均值时的权重均相等。以5天移动平均线为例,公式如下:
MA=(C1+C2+C3+C4+C5)/5
一般公式 :MA=(C1+C2+C3+C4+C5+....+Cn)/n
C: 第一日收盘价
n: 移动平均数周期
ma的值相当于该周期的平均成本,成本价格的多少直接关系到股票投资者的盈亏,所以移动平均成本是多空双方争夺的关口,也对股票价格起到支撑或压力作用。
但在实际操作中不是每条移动平均线都一样的,需要我们珍惜辨别。在股票市场中,主力操盘手的性格,技术水平资金实力等等不一样,就相应的造成每个股票的股性不一样的,所以造操作中我首先得选择相适应的移动成本。
34)TMA返回移动平均
用法:TMA(X,N,M),如若Y=TMA(X,N,M) 则 Y=(N*Y'+M*X), 其中Y'表示上一周期Y值。初值为M*X
35)MA
36)EMA
37)MEMA
38)EXPMA
39)EXPMEMA
40)XMA
41)RANGE
42)CONST
43)TOPRANGE 当前值是近多少周期内的最大值.
用法: TOPRANGE(X):X是近多少周期内X的最大值
例如:TOPRANGE(HIGH)表示当前最高价是近多少周期内的最高价
44)LOWRANGE 当前值是近多少周期内的最小值.
用法: LOWRANGE(X):X是近多少周期内X的最小值
例如:LOWRANGE(LOW)表示当前最高价是近多少周期内的最小价
45)FINDHIGH 寻找指定周期内的特定最大值 N周期前的M周期内的第T个最大值.
用法: FINDHIGH(VAR,N,M,T):VAR在N日前的M天内第T个最高价
46)FINDHIGHBARS 寻找指定周期内的特定最大值 N周期前的M周期内的第T个最大值到当前周期的周期数.
用法: FINDHIGHBARS (VAR,N,M,T):VAR在N日前的M天内第T个最高价到当前周期的周期数
47)FINDLOW 寻找指定周期内的特定最小值 N周期前的M周期内的第T个最小值.
用法: FINDLOW(VAR,N,M,T):VAR在N日前的M天内第T个最低价
48)FINDLOWBARS 寻找指定周期内的特定最小值 N周期前的M周期内的第T个最小值到当前周期的周期数.
用法: FINDLOWBARS(VAR,N,M,T):VAR在N日前的M天内第T个最低价到当前周期的周期数.
49)INTPART
INTPART(12.3)求得12,INTPART(-3.5)求得-3
http://www.weistock.com/WeisoftHelp/index.html?fulua_intpart.htm
http://www.weistock.com/WeisoftHelp/index.html?fulua_intpart.htm
(四)逻辑函数
1)CROSS
2)LONGCROSS
3)UPNDAY
4)DOWNNDAY
6)EXIST
7)EVERY
8)LAST
9)TESTSKIP
10)BETWEEN
(五)算术函数
68)NOT
69)IF
例如:IF(CLOSE>OPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返回最低值
70)IFF
71)IFN
72)MAX
73)MIN
(六)数学函数
1) ACOS
2)ASIN
3)ATAN
4) COS
5)SIN
6)TAN
7)EXP
8)LN
9)LOG
10)SQRT
11)ABS
12)POW
13)CEILING
14)FLOOR
15)INTPART
16)BETWEEN
17)FRACPART 小数部分.用法:FRACPART(X),返回X的小数部分
18)ROUND四舍五入.用法:ROUND(X),返回X四舍五入到个位的数值
19)SIGN取符号.用法:SIGN(X),返回X的符号.当X>0,X=0,X<0分别返回1,0,-1
20)MOD取模.用法:MOD(M,N),返回M关于N的模(M除以N的余数);例如:MOD(5,3)返回2
21)RAND取随机数.用法:RAND(N),返回一个范围在1-N的随机整数
(七)统计函数
1)AVEDEV
2)DEVSQ
3)FORCAST
4)SLOPE
5)STD
6)STDP
7)VAR
8)VARP
9)COVAR协方差,COVAR(X,Y,N) 返回X和Y的N周期的协方差
10)RELATE相关系数,RELATE(X,Y,N) 返回X和Y的N周期的相关系数
11)BETA β(Beta)系数,BETA(N) 返回当前证券N周期收益与大盘收益相比的贝塔系数
12)BETAEX 相关放大系数,BETAEX(X,Y,N) 返回X与Y的N周期的相关放大系数
(八)横向统计
1)BLOCKSETNUM. 板块股票个数,用法:BLOCKSETNUM(板块名称),返回该板块股票个数
2)HORCALC.多股统计,用法:HORCALC(板块名称,数据项,计算方式,权重),
数据项:100-HIGH,101-OPEN,102-LOW,103-CLOSE,104-VOL,105-涨幅
计算方式:0-累加,1-排名次
权重:0-总股本,1-流通股本,2-等同权重,3-流通市值
3)INSORT. 板块排序选股,用法:INSORT(板块名称,指标名称,指标线,升降序),返回该股在板块中的排序序号,例如:INSORT('房地产','KDJ',3,0)表示该股的KDJ指标第三个输出即J之值在房地产板块中的排名,最后一个参数为0表示降序排名
4)INSUM. 板块指标统计,用法:INSUM(板块名称,指标名称,指标线,计算类型),返回板块各成分该指标相应输出安计算类型得到的计算值.计算类型:0-累加,1-平均数,2-最大值,3-最小值.
例如:INSUM('房地产','KDJ',3,0)表示房地产板块中所有股票的KDJ指标第三个输出即J之值的累加值
(九)形态函数
1)COST
2)PEAK
用法:PEAK(K,N,M)表示之字转向ZIG(K,N)的前M个波峰的数值,M必须大于等于1例如:PEAK(1,5,1)表示%5最高价ZIG转向的上一个波峰的数值
3)PEAKBARS
4)SAR
5)SARTURN
6)TROUGH
用法:TROUGH(K,N,M)表示之字转向ZIG(K,N)的前M个波谷的数值,M必须大于等于1例如:TROUGH(2,5,2)表示%5最低价ZIG转向的前2个波谷的数值
7)TROUGHBARS
用法:TROUGHBARS(K,N,M)表示之字转向ZIG(K,N)的前M个波谷到当前的周期数,M必须大于等于1例如:TROUGH(2,5,2)表示%5最低价ZIG转向的前2个波谷到当前的周期数
8)WINNER
9)LWINNER
10)PWINNER
11)CostEX
12)PPART
用法:PPART(10),表示10前的成本占总成本的比例,0.2表示20%
13)ZIG
14)NewSAR新抛物转向函数
用法:NewSAR(N,S),N为起始统计天数,S为加速因子
例如NewSAR(10,2)表示从10日后开始统计,加速因子为2的抛物转向
15)LFS 返回个股锁定因子
(十)大盘函数
1)INDEXA
2)INDEXADV
3)INDEXDEC
4)INDEXC
5)INDEXH
6)INDEXL
7)INDEXO
8)INDEXV
(十一)日线统计函数
1)TRADENUM总成交笔数,逐笔成交总笔数,Level2收费行情的个股行情专用
2)TRADEINNUM逐笔买入成交笔数,Level2收费行情专用
3)TRADEOUTNUM逐笔卖出成交笔数,Level2收费行情专用
4)LARGETRDINNUM逐笔买入大单成交笔数,Level2收费行情专用
5)LARGETRDOUTNUM逐笔卖出大单成交笔数,Level2收费行情专用
6)TICKCOUNT分时采样总笔数,Level2收费行情专用
7)TICKINCOUNT主动买采样数,分时采样买笔数,Level2收费行情专用
8)TICKOUTCOUNT主动卖采样数,分时采样卖笔数,Level2收费行情专用
9)LARGETICKCOUNT,分时采样大单笔数,Level2收费行情专用
10)LARGETICKINCOUNT分时采样大单买笔数,Level2收费行情专用
11)LARGETICKOUTCOUNT分时采样大单卖笔数,Level2收费行情专用
12)ACTINVOL主动买成交量,Level2收费行情专用
13)ACTOUTVOL主动卖成交量,Level2收费行情专用
14)LARGEINTRADEVOL逐笔买入大单成交量,Level2收费行情专用
15)LARGEOUTTRADEVOL逐笔卖出大单成交量,Level2收费行情专用
16)LARGEVOL快照大单成交量,Level2收费行情专用
17)LARGEINVOL主买快照大单成交量,Level2收费行情专用
18)LARGEOUTVOL主卖快照大单成交量,Level2收费行情专用
19)BIDORDERVOL累计总委买量,Level2收费行情专用
20)BIDCANCELVOL累计总撤买量,Level2收费行情专用
21)AVGBIDPX,Level1行情表示:最低价;Level2行情表示:最新委买均价
22)OFFERORDERVOL累计总委卖量,Level2收费行情专用
23)OFFERCANCELVOL累计总撤卖量,Level2收费行情专用
24)AVGOFFERPXLevel1行情表示:最高价;Level2行情表示:最新委卖均价
(十二)绘图函数
2)DRAWLINE
3)DRAWKLINE
4)STICKLINE
5)DRAWICON
6)DRAWTEXT
7)DRAWNUMBER 画出数字.
用法:DRAWNUMBER(COND,PRICE,NUMBER),当COND条件满足时,在PRICE位置书写数字NUMBER。
例如:DRAWNUMBER(CLOSE/OPEN>1.08,LOW,C)表示当日涨幅大于8%时在最低价位置显示收盘价。
8)RGB将自定颜色作为数值输出.
用法:RGB(Red,Green,Blue),输出为0XBBGGRR,参数使用十进制数,范围为0至255,以最近一个周期数值为准。例如:RGB(0,0,255)输出结果为16进制的0XFF0000。
9)DRAWBAND 画出带状线.
用法:DRAWBAND(VAL1,COLOR1,VAL2,COLOR2),当VAL1>VAL2时,在VAL1和VAL2之间填充COLOR1;当VAL1
例如:DRAWBAND(OPEN,RGB(0,224,224),CLOSE,RGB(255,96,96));
例如:E5:=EMA(C,5);E13:=EMA(C,13);
DRAWBAND(E5,RGB(200,0,0),E13,RGB(0,200,0));
10)STICKLINE 画出柱状线在图形上绘制柱线。
含义:在图形上绘制柱线。
用法:
STICKLINE(COND,PRICE1,PRICE2,WIDTH,EMPTY),当COND条件满足时,在PRICE1和PRICE2位置之间画柱状线,宽度为WIDTH(10为标准间距),EMPTH不为0则画空心柱。
例如:STICKLINE(CLOSE>OPEN,CLOSE,OPEN,8,1)表示画K线中阳线的空心柱体部分。
VAR3P:=IF(CLOSE/REF(CLOSE,1)>1.050 AND HIGH/CLOSE<1.010 AND IF(CLOSE>REF(CLOSE,1),88,0)>0, 91, 0);
STICKLINE(VAR3P>90,L,L*0.92,0,0),COLORFF00FF;
DRAWTEXT(VAR3P>90,LOW*0.92,'追涨'),COLORFF00FF;
例如:回踩不破:=CROSS(C,MA5) ;
LINESTICK:指标线和柱线
VOLSTICK:画成交量线
CROSSDOT :“x”点状线
CIRCLEDOT :“0”点状线
POINTDOT:小圆点线
DRAWRECTREL
含义:在图形相对位置上画矩形。
阐释:DRAWRECTREL(LEFT,TOP,RIGHT,BOTTOM,COLOR), 以图形窗口(LEFT,TOP)为左上角,(RIGHT,BOTTOM)为右下角绘
制矩形,坐标单位是窗口沿水平和垂直方向的1/1000,取值范围是0—999,超出范围则可能显示在图形窗口外,矩形中间填充颜色COLOR,COLOR 为0 表示不填充。
例如:DRAWRECTREL(0,0,500,500,RGB(255,255,0))表示在图形最左上部1/4 位置用黄色绘制矩形。
DRAWRECTREL(0,0,400,488,IF(20,RGB(120,0,0),0));
通达信绘图函数
通达信绘图函数远比大智慧绘图函数简单。
我用的大智慧绘图函数,是从 dzh2.exe 里面的函数使用说明中抠出来的。
而我用的大智慧绘图函数,则是从 TCalc.dll 里面的函数使用说明中抠出来的。
☆ ☆ ☆
传统行情绘图函数
(1)、画图标
DRAWICON
绘制图标在图形上绘制小图标。
用法:DRAWICON(COND,PRICE,TYPE),当COND条件满足时,在PRICE位置画TYPE号图标。
例如:DRAWICON(CLOSE>OPEN,LOW,1)
表示当收阳时在最低价位置画1号图标。
图标一共有九个,图形如附图。
传统图标有九个,现在新增到27个,图标各有其序号。
(2)、显示文字
DRAWTEXT
显示文字在图形上显示文字。
用法:DRAWTEXT(COND,PRICE,TEXT),当COND条件满足时,在PRICE位置书写文字TEXT。
例如:DRAWTEXT(CLOSE/OPEN>1.08,LOW,'大阳线')表示当日涨幅大于8%时在最低价位置显示'大阳线'字样。
(3)、画柱线
STICKLINE
在图形上绘制柱线.
用法:STICKLINE(COND,PRICE1,PRICE2,WIDTH,EMPTY),当COND条件满足时,在PRICE1和PRICE2位置之间画柱状线,宽度为WIDTH(10为标准间距),EMPTH不为0则画空心柱。
例如:STICKLINE(CLOSE>OPEN,CLOSE,OPEN,0.8,1)表示画K线中阳线的空心柱体部分。
(4)、画K线
DRAWKLINE 绘制K线
用法:DRAWKLINE(HIGH,OPEN,LOW,CLOSE).
以HIGH为最高价,OPEN为开盘价,LOW为最低,CLOSE收盘画K线。
(5)、画直线段
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天新低之间画直线并且向右延长。
(6)、画折线段
PLOYLINE
在图形上绘制折线段。
用法:PLOYLINE(COND,PRICE),当COND条件满足时,以PRICE位置为顶点画折线连接。
例如: PLOYLINE(HIGH>=HHV(HIGH,20),HIGH)表示在创20天新高点之间画折线。
新增绘图函数
画带状线
DRAWBAND
画出带状线.
DRAWBAND(VAL1,COLOR1,VAL2,COLOR2),当VAL1>VAL2时,在VAL1和VAL2之间填充COLOR1;当VAL1
例如:DRAWBAND(OPEN,RGB(0,224,224),CLOSE,RGB(255,96,96));
自定色
RGB 将自定颜色作为数值输出.
RGB(Red,Green,Blue),输出为0XBBGGRR,参数使用十进制数,范围为0至255,以最近一个周期数值为准。
例如:RGB(0,0,255)输出结果为16进制的0XFF0000。
画数字
DRAWNUMBER
画出数字.
DRAWNUMBER(COND,PRICE,NUMBER),当COND条件满足时,在PRICE位置书写数字NUMBER。
例如:DRAWNUMBER(CLOSE/OPEN>1.08,LOW,C)表示当日涨幅大于8%时在最低价位置显示收盘价。
画定点数字
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%时在窗口中间位置显示收盘价。
定点文字
DRAWTEXT_FIX
固定位置显示文字.
DRAWTEXT_FIX(COND,X,Y,TYPE,TEXT),当COND条件满足时,在当前指标窗口内(X,Y)位置书写文字TEXT,X,Y为书写点在窗口中相对于左上角的百分比,TYPE:0为左对齐,1为右对齐。
例如:DRAWTEXT_FIX(CURRBARSCOUNT=1 AND CLOSE/OPEN>1.08,0.5,0.5,0,'大阳线')表示最后一个交易日涨幅大于8%时在窗口中间位置显示'大阳线'字样。
例如:DRAWTEXT_FIX(ISLASTBAR,0,0,0,STRCAT(Z3,GNBLOCK)),COLOR00C0C0;
DRAWTEXT(ISLASTBAR,LOW ,DYBLOCK);在最后一个交易日的最高价位置打印所属地域板块 所属地域 NAMELIKE INBLOCK DYBLOCK 返回股票所属行业.
DRAWTEXT(ISLASTBAR,HIGH,HYBLOCK);在最后一个交易日的最高价位置打印所属行业板块所属行业
ISLASTBAR 判断是否为最后一个周期
DYBLOCK 地域板块
GNBLOCK 概念板块
HYBLOCK 行业板块
字符串相加
STRCAT(A,B):将两个字符串A,B相加成一个字符串C.
例如:STRCAT('多头','开仓'):将两个字符串'多头','开仓'相加成一个字符串'多头开仓'
无效数 DRAWNULL 不画线
虚线 DOTLINE 画虚线
小圆点线 POINTDOT 画小圆点线
小圆圈线 CIRCLEDOT 画小圆圈线
小叉线 CROSSDOT 画小叉线
柱状线 STICK 画柱状线
成交量柱状线 VOLSTICK ,画成交量柱状线当股价上涨时显示红色空心柱,则显示绿色实心柱
彩色柱状线 COLORSTICK 画彩色柱状线
指标柱状线 LINESTICK 同时画出柱状线和指标线
线型粗细 LINETHICK
格式“LINETHICK+(1-9)”;
参数的取值范围在1—9之间,“LINETHICK1”表示最细的线,而“LINETHICK9”表示最粗的线;
画白色 白色 COLORWHITE
画黄色 黄色 COLORYELLOW
画淡洋红色 淡洋红色 COLORLIMAGENTA
画淡红色 淡红色 COLORLIRED
画淡青色 淡青色 COLORLICYAN
画淡绿色 淡绿色 COLORLIGREEN
画淡蓝色 淡蓝色 COLORLIBLUE
画深灰色 深灰色 COLORGRAY
画淡灰色 淡灰色 COLORLIGRAY
画棕色 棕色 COLORBROWN
画洋红色 洋红色 COLORMAGENTA
画红色 红色 COLORRED
画青色 青色 COLORCYAN
画绿色 绿色 COLORGREEN
画蓝色 蓝色 COLORBLUE
画黑色 黑色 COLORBLACK
自定义色
格式为COLOR+“BBGGRR”:BB、GG、RR表示蓝色、绿色和红色的分量,每种颜色的取值范围是00-FF,采用了16进制。
粉红colorf00ff0、草绿color00ff00、淡蓝colorf0f000、紫色colorff0099、金黄色color008364、紫红color000999、综色color0055ff、深黄色color00cccc、紫罗蓝colore66878、天蓝色colorff937f 深草绿color399c7f
例如:MA5:MA(CLOSE,5),COLOR00FFFF表示纯红色与纯绿色的混合色:COLOR808000表示淡蓝色和淡绿色的混合色。
1 白色 ColorFFFFFF 或 ColorWhite
2 红色 ColorFF0000 或 COLORRED
3 绿色 Color00FF00 或 ColorGreen
4 蓝色 Color0000FF 或 ColorBlue
5 牡丹红 ColorFF00FF
6 青色 Color00FFFF
7 黄色 ColorFFFF00 或 ColorYellow
8 黑色 Color000000 或 ColorBlack
9 海蓝 Color70DB93
10 巧克力色 Color5C3317
11 蓝紫色 Color9F5F9F
12 黄铜色 ColorB5A642
13 亮金色 ColorD9D919
14 棕色 ColorA67D3D
15 青铜色 Color8C7853
16 2号青铜色 ColorA67D3D
17 士官服蓝色 Color5F9F9F
18 冷铜色 ColorD98719
19 铜色 ColorB87333
20 珊瑚红 ColorFF7F00
21 紫蓝色 Color42426F
22 深棕 Color5C4033
23 深绿 Color2F4F2F
24 深铜绿色 Color4A766E
25 深橄榄绿 Color4F4F2F
26 深兰花色 Color9932CD
27 深紫色 Color871F78
28 深石板蓝 Color6B238E
29 深铅灰色 Color2F4F4F
30 深棕褐色 Color97694F
32 深绿松石色 Color7093DB
33 暗木色 Color855E42
34 淡灰色 Color545454
35 土灰玫瑰红色 Color545454
36 长石色 ColorD19275
37 火砖色 Color8E2323
38 森林绿 Color238E23
39 金色 ColorCD7F32
40 鲜黄色 ColorDBDB70
41 灰色 ColorC0C0C0
42 铜绿色 Color527F76
43 青黄色 Color93DB70
44 猎人绿 Color215E21
45 印度红 Color4E2F2F
46 土黄色 Color9F9F5F
47 浅蓝色 ColorC0D9D9
48 浅灰色 ColorA8A8A8
49 浅钢蓝色 Color8F8FBD
59 浅木色 ColorE9C2A6
60 石灰绿色 Color32CD32
61 桔黄色 ColorE47833
62 褐红色 Color8E236B
63 中海蓝色 Color32CD99
64 中蓝色 Color3232CD
65 中森林绿 Color6B8E23
66 中鲜黄色 ColorEAEAAE
67 中兰花色 Color9370DB
68 中海绿色 Color426F42
69 中石板蓝色 Color7F00FF
70 中春绿色 Color7FFF00
71 中绿松石色 Color70DBDB
72 中紫红色 ColorDB7093
73 中木色 ColorA68064
74 深藏青色 Color2F2F4F
75 海军蓝 Color23238E
76 霓虹篮 Color4D4DFF
77 霓虹粉红 ColorFF6EC7
78 新深藏青色 Color00009C
79 新棕褐色 ColorEBC79E
80 暗金黄色 ColorCFB53B
81 橙色 ColorFF7F00
82 橙红色 ColorFF2400
83 淡紫色 ColorDB70DB
84 浅绿色 Color8FBC8F
85 粉红色 ColorBC8F8F
86 李子色 ColorEAADEA
87 石英色 ColorD9D9F3
88 艳蓝色 Color5959AB
89 鲑鱼色 Color6F4242
90 猩红色 ColorBC1717
91 海绿色 Color238E68
92 半甜巧克力色 Color6B4226
93 赭色 Color8E6B23
94 银色 ColorE6E8FA
95 天蓝 Color3299CC
96 石板蓝 Color007FFF
97 艳粉红色 ColorFF1CAE
98 春绿色 Color00FF7F
99 钢蓝色 Color236B8E
100 亮天蓝色 Color38B0DE
101 棕褐色 ColorDB9370
102 紫红色 ColorD8BFD8
103 石板蓝色 ColorADEAEA
104 浓深棕色 Color5C4033
105 淡浅灰色 ColorCDCDCD
106 紫罗兰色 Color4F2F4F
107 紫罗兰红色 ColorCC3299
108 麦黄色 ColorD8D8BF
109 黄绿色 Color99CC32
通达信的指标公式中使用的图形符号及代表各图符的代码表。
COLORSTICK
VOLUMESTICK
BAMBOOLINE
CIRCLEDOT
OPISTICK
RGB(R,G,B)
R,G,B的数值范围都在0~255之间。
例:RGB(225,225,225)表示白色
PARAM[参数名称,最小值,最大值,缺省值]
例:PARAM[N,1,100,12]
MAN:MA(CLOSE,N);
表示参数为N,最小值为1,最大值为100,缺省值为12.
注意:在公式内即使你定义了某种颜色,在显示的时候也未必是此种颜色,取决于背景颜色当前页面里是否保了该指标的颜色及您是否在显示的时候改变了该指标的颜色设置。
在K线图形上绘制小图标:
用法:DRAWICON(COND,PRICE,TYPE),当COND条件满足时,在PRICE位置画TYPE号图标(TYPE为1--27)。
例如:DRAWICON(CLOSE>OPEN,LOW,1)表示当收阳时在最低价位置画1号图标。
{通达信图标Ⅰ}
STICKLINE(C=C,1,10,30,0),COLORBLACK;
TS:=CURRBARSCOUNT;
DRAWTEXT(C=C AND TS=1, 4,'1'),COLORYELLOW;
DRAWICON(C=C AND TS=1, 8,1);
DRAWTEXT(C=C AND TS=2, 4,'2'),COLORYELLOW;
DRAWICON(C=C AND TS=2, 8,2);
{通达信图标Ⅰ}
STICKLINE(C=C,1,10,30,0),COLORBLACK;
TS:=CURRBARSCOUNT;
DRAWTEXT(C=C AND TS=1, 4,'1'),COLORYELLOW;
DRAWICON(C=C AND TS=1, 8,1);
DRAWTEXT(C=C AND TS=2, 4,'2'),COLORYELLOW;
DRAWICON(C=C AND TS=2, 8,2);
DRAWTEXT(C=C AND TS=3, 4,'3'),COLORYELLOW;
DRAWICON(C=C AND TS=3, 8,3);
DRAWTEXT(C=C AND TS=4, 4,'4'),COLORYELLOW;
DRAWICON(C=C AND TS=4, 8,4);
DRAWTEXT(C=C AND TS=5, 4,'5'),COLORYELLOW;
DRAWICON(C=C AND TS=5, 8,5);
DRAWTEXT(C=C AND TS=6, 4,'6'),COLORYELLOW;
DRAWICON(C=C AND TS=6, 8,6);
DRAWTEXT(C=C AND TS=7, 4,'7'),COLORYELLOW;
DRAWICON(C=C AND TS=7, 8,7);
DRAWTEXT(C=C AND TS=8, 4,'8'),COLORYELLOW;
DRAWICON(C=C AND TS=8, 8,8);
DRAWTEXT(C=C AND TS=9, 4,'9'),COLORYELLOW;
DRAWICON(C=C AND TS=9, 8,9);
DRAWTEXT(C=C AND TS=10, 4,'10'),COLORYELLOW;
DRAWICON(C=C AND TS=10, 8,10);
DRAWTEXT(C=C AND TS=11, 4,'11'),COLORYELLOW;
DRAWICON(C=C AND TS=11, 8,11);
DRAWTEXT(C=C AND TS=12, 4,'12'),COLORYELLOW;
DRAWICON(C=C AND TS=12, 8,12);
DRAWTEXT(C=C AND TS=13, 4,'13'),COLORYELLOW;
DRAWICON(C=C AND TS=13, 8,13);
DRAWTEXT(C=C AND TS=14, 4,'14'),COLORYELLOW;
DRAWICON(C=C AND TS=14, 8,14);
DRAWTEXT(C=C AND TS=15, 4,'15'),COLORYELLOW;
DRAWICON(C=C AND TS=15, 8,15);
DRAWTEXT(C=C AND TS=16, 4,'16'),COLORYELLOW;
DRAWICON(C=C AND TS=16, 8,16);
DRAWTEXT(C=C AND TS=17, 4,'17'),COLORYELLOW;
DRAWICON(C=C AND TS=17, 8,17);
DRAWTEXT(C=C AND TS=18, 4,'18'),COLORYELLOW;
DRAWICON(C=C AND TS=18, 8,18);
DRAWTEXT(C=C AND TS=19, 4,'19'),COLORYELLOW;
DRAWICON(C=C AND TS=19, 8,19);
DRAWTEXT(C=C AND TS=20, 4,'20'),COLORYELLOW;
DRAWICON(C=C AND TS=20, 8,20);
DRAWTEXT(C=C AND TS=21, 4,'21'),COLORYELLOW;
DRAWICON(C=C AND TS=21, 8,21);
DRAWTEXT(C=C AND TS=22, 4,'22'),COLORYELLOW;
DRAWICON(C=C AND TS=22, 8,22);
DRAWTEXT(C=C AND TS=23, 4,'23'),COLORYELLOW;
DRAWICON(C=C AND TS=23, 8,23);
DRAWTEXT(C=C AND TS=24, 4,'24'),COLORYELLOW;
DRAWICON(C=C AND TS=24, 8,24);
{通达信图标Ⅱ}
STICKLINE(C=C,1,10,30,0),COLORBLACK;
TS:=CURRBARSCOUNT;
DRAWTEXT(C=C AND TS=1, 4,'25'),COLORYELLOW;
DRAWICON(C=C AND TS=1, 8,25);
DRAWTEXT(C=C AND TS=2, 4,'26'),COLORYELLOW;
DRAWICON(C=C AND TS=2, 8,26);
DRAWTEXT(C=C AND TS=3, 4,'27'),COLORYELLOW;
DRAWICON(C=C AND TS=3, 8,27);
DRAWTEXT(C=C AND TS=4, 4,'28'),COLORYELLOW;
DRAWICON(C=C AND TS=4, 8,28);
DRAWTEXT(C=C AND TS=5, 4,'29'),COLORYELLOW;
DRAWICON(C=C AND TS=5, 8,29);
DRAWTEXT(C=C AND TS=6, 4,'30'),COLORYELLOW;
DRAWICON(C=C AND TS=6, 8,30);
DRAWTEXT(C=C AND TS=7, 4,'31'),COLORYELLOW;
DRAWICON(C=C AND TS=7, 8,31);
DRAWTEXT(C=C AND TS=8, 4,'32'),COLORYELLOW;
DRAWICON(C=C AND TS=8, 8,32);
DRAWTEXT(C=C AND TS=9, 4,'33'),COLORYELLOW;
DRAWICON(C=C AND TS=9, 8,33);
DRAWTEXT(C=C AND TS=10, 4,'34'),COLORYELLOW;
DRAWICON(C=C AND TS=10, 8,34);
DRAWTEXT(C=C AND TS=11, 4,'35'),COLORYELLOW;
DRAWICON(C=C AND TS=11, 8,35);
DRAWTEXT(C=C AND TS=12, 4,'36'),COLORYELLOW;
DRAWICON(C=C AND TS=12, 8,36);
DRAWTEXT(C=C AND TS=13, 4,'37'),COLORYELLOW;
DRAWICON(C=C AND TS=13, 8,37);
DRAWTEXT(C=C AND TS=14, 4,'38'),COLORYELLOW;
DRAWICON(C=C AND TS=14, 8,38);
DRAWTEXT(C=C AND TS=15, 4,'39'),COLORYELLOW;
DRAWICON(C=C AND TS=15, 8,39);
DRAWTEXT(C=C AND TS=16, 4,'40'),COLORYELLOW;
DRAWICON(C=C AND TS=16, 8,40);
DRAWTEXT(C=C AND TS=17, 4,'41'),COLORYELLOW;
DRAWICON(C=C AND TS=17, 8,41);
DRAWTEXT(C=C AND TS=18, 4,'42'),COLORYELLOW;
DRAWICON(C=C AND TS=18, 8,42);
DRAWTEXT(C=C AND TS=19, 4,'43'),COLORYELLOW;
DRAWICON(C=C AND TS=19, 8,43);
{调色板Ⅰ}
STICKLINE(C=C,0,11,30,0),COLORBLACK;
DRAWTEXT(C=C AND CURRBARSCOUNT=10, 1,' COLOR5C3317 ■'),COLOR5C3317;
DRAWTEXT(C=C AND CURRBARSCOUNT=10, 2,' COLOR9F5F9F ■'),COLOR9F5F9F;
DRAWTEXT(C=C AND CURRBARSCOUNT=10, 3,' COLORB5A642 ■'),COLORB5A642;
DRAWTEXT(C=C AND CURRBARSCOUNT=10, 4,' COLORD9D919 ■'),COLORD9D919;
DRAWTEXT(C=C AND CURRBARSCOUNT=10, 5,' COLORA67D3D ■'),COLORA67D3D;
DRAWTEXT(C=C AND CURRBARSCOUNT=10, 6,' COLOR8C7853 ■'),COLOR8C7853;
DRAWTEXT(C=C AND CURRBARSCOUNT=10, 7,' COLORA67D3D ■'),COLORA67D3D;
DRAWTEXT(C=C AND CURRBARSCOUNT=10, 8,' COLOR5F9F9F ■'),COLOR5F9F9F;
DRAWTEXT(C=C AND CURRBARSCOUNT=10, 9,' COLORD98719 ■'),COLORD98719;
DRAWTEXT(C=C AND CURRBARSCOUNT=10,10,' COLORB87333 ■'),COLORB87333;
DRAWTEXT(C=C AND CURRBARSCOUNT=20, 1,' COLOR38B0DE ■'),COLOR38B0DE;
DRAWTEXT(C=C AND CURRBARSCOUNT=20, 2,' COLORDB9370 ■'),COLORDB9370;
DRAWTEXT(C=C AND CURRBARSCOUNT=20, 3,' COLORD8BFD8 ■'),COLORD8BFD8;
DRAWTEXT(C=C AND CURRBARSCOUNT=20, 4,' COLORADEAEA ■'),COLORADEAEA;
DRAWTEXT(C=C AND CURRBARSCOUNT=20, 5,' COLOR5C4033 ■'),COLOR5C4033;
DRAWTEXT(C=C AND CURRBARSCOUNT=20, 6,' COLORCDCDCD ■'),COLORCDCDCD;
DRAWTEXT(C=C AND CURRBARSCOUNT=20, 7,' COLOR4F2F4F ■'),COLOR4F2F4F;
DRAWTEXT(C=C AND CURRBARSCOUNT=20, 8,' COLORCC3299 ■'),COLORCC3299;
DRAWTEXT(C=C AND CURRBARSCOUNT=20, 9,' COLORD8D8BF ■'),COLORD8D8BF;
DRAWTEXT(C=C AND CURRBARSCOUNT=20,10,' COLOR99CC32 ■'),COLOR99CC32;
DRAWTEXT(C=C AND CURRBARSCOUNT=30, 1,' COLORFF7F00 ■'),COLORFF7F00;
DRAWTEXT(C=C AND CURRBARSCOUNT=30, 2,' COLOR42426F ■'),COLOR42426F;
DRAWTEXT(C=C AND CURRBARSCOUNT=30, 3,' COLOR5C4033 ■'),COLOR5C4033;
DRAWTEXT(C=C AND CURRBARSCOUNT=30, 4,' COLOR2F4F2F ■'),COLOR2F4F2F;
DRAWTEXT(C=C AND CURRBARSCOUNT=30, 5,' COLOR4A766E ■'),COLOR4A766E;
DRAWTEXT(C=C AND CURRBARSCOUNT=30, 6,' COLOR4F4F2F ■'),COLOR4F4F2F;
DRAWTEXT(C=C AND CURRBARSCOUNT=30, 7,' COLOR9932CD ■'),COLOR9932CD;
DRAWTEXT(C=C AND CURRBARSCOUNT=30, 8,' COLOR871F78 ■'),COLOR871F78;
DRAWTEXT(C=C AND CURRBARSCOUNT=30, 9,' COLOR6B238E ■'),COLOR6B238E;
DRAWTEXT(C=C AND CURRBARSCOUNT=30,10,' COLOR2F4F4F ■'),COLOR2F4F4F;
DRAWTEXT(C=C AND CURRBARSCOUNT=40, 1,' COLOR97694F ■'),COLOR97694F;
DRAWTEXT(C=C AND CURRBARSCOUNT=40, 2,' COLOR7093DB ■'),COLOR7093DB;
DRAWTEXT(C=C AND CURRBARSCOUNT=40, 3,' COLOR7093DB ■'),COLOR7093DB;
DRAWTEXT(C=C AND CURRBARSCOUNT=40, 4,' COLOR855E42 ■'),COLOR855E42;
DRAWTEXT(C=C AND CURRBARSCOUNT=40, 5,' COLOR545454 ■'),COLOR545454;
DRAWTEXT(C=C AND CURRBARSCOUNT=40, 6,' COLOR545454 ■'),COLOR545454;
DRAWTEXT(C=C AND CURRBARSCOUNT=40, 7,' COLORD19275 ■'),COLORD19275;
DRAWTEXT(C=C AND CURRBARSCOUNT=40, 8,' COLOR8E2323 ■'),COLOR8E2323;
DRAWTEXT(C=C AND CURRBARSCOUNT=40, 9,' COLOR238E23 ■'),COLOR238E23;
DRAWTEXT(C=C AND CURRBARSCOUNT=40,10,' COLORCD7F32 ■'),COLORCD7F32;
DRAWTEXT(C=C AND CURRBARSCOUNT=50, 1,' COLORDBDB70 ■'),COLORDBDB70;
DRAWTEXT(C=C AND CURRBARSCOUNT=50, 2,' COLORC0C0C0 ■'),COLORC0C0C0;
DRAWTEXT(C=C AND CURRBARSCOUNT=50, 3,' COLOR527F76 ■'),COLOR527F76;
DRAWTEXT(C=C AND CURRBARSCOUNT=50, 4,' COLOR93DB70 ■'),COLOR93DB70;
DRAWTEXT(C=C AND CURRBARSCOUNT=50, 5,' COLOR215E21 ■'),COLOR215E21;
DRAWTEXT(C=C AND CURRBARSCOUNT=50, 6,' COLOR4E2F2F ■'),COLOR4E2F2F;
DRAWTEXT(C=C AND CURRBARSCOUNT=50, 7,' COLOR9F9F5F ■'),COLOR9F9F5F;
DRAWTEXT(C=C AND CURRBARSCOUNT=50, 8,' COLORC0D9D9 ■'),COLORC0D9D9;
DRAWTEXT(C=C AND CURRBARSCOUNT=50, 9,' COLORA8A8A8 ■'),COLORA8A8A8;
{调色板Ⅱ}
STICKLINE(C=C,0,11,30,0),COLORBLACK;
DRAWTEXT(C=C AND CURRBARSCOUNT=10, 1,' COLOR32CD32 ■'),COLOR32CD32;
DRAWTEXT(C=C AND CURRBARSCOUNT=10, 2,' COLORE47833 ■'),COLORE47833;
DRAWTEXT(C=C AND CURRBARSCOUNT=10, 3,' COLOR8E236B ■'),COLOR8E236B;
DRAWTEXT(C=C AND CURRBARSCOUNT=10, 4,' COLOR32CD99 ■'),COLOR32CD99;
DRAWTEXT(C=C AND CURRBARSCOUNT=10, 5,' COLOR3232CD ■'),COLOR3232CD;
DRAWTEXT(C=C AND CURRBARSCOUNT=10, 6,' COLOR6B8E23 ■'),COLOR6B8E23;
DRAWTEXT(C=C AND CURRBARSCOUNT=10, 7,' COLOREAEAAE ■'),COLOREAEAAE;
DRAWTEXT(C=C AND CURRBARSCOUNT=10, 8,' COLOR9370DB ■'),COLOR9370DB;
DRAWTEXT(C=C AND CURRBARSCOUNT=10, 9,' COLOR426F42 ■'),COLOR426F42;
DRAWTEXT(C=C AND CURRBARSCOUNT=10,10,' COLOR7F00FF ■'),COLOR7F00FF;
DRAWTEXT(C=C AND CURRBARSCOUNT=20, 1,' COLOR7FFF00 ■'),COLOR7FFF00;
DRAWTEXT(C=C AND CURRBARSCOUNT=20, 2,' COLOR70DBDB ■'),COLOR70DBDB;
DRAWTEXT(C=C AND CURRBARSCOUNT=20, 3,' COLORDB7093 ■'),COLORDB7093;
DRAWTEXT(C=C AND CURRBARSCOUNT=20, 4,' COLORA68064 ■'),COLORA68064;
DRAWTEXT(C=C AND CURRBARSCOUNT=20, 5,' COLOR2F2F4F ■'),COLOR2F2F4F;
DRAWTEXT(C=C AND CURRBARSCOUNT=20, 6,' COLOR23238E ■'),COLOR23238E;
DRAWTEXT(C=C AND CURRBARSCOUNT=20, 7,' COLOR4D4DFF ■'),COLOR4D4DFF;
DRAWTEXT(C=C AND CURRBARSCOUNT=20, 8,' COLORFF6EC7 ■'),COLORFF6EC7;
DRAWTEXT(C=C AND CURRBARSCOUNT=20, 9,' COLOR00009C ■'),COLOR00009C;
DRAWTEXT(C=C AND CURRBARSCOUNT=20,10,' COLOREBC79E ■'),COLOREBC79E;
DRAWTEXT(C=C AND CURRBARSCOUNT=30, 1,' COLORCFB53B ■'),COLORCFB53B;
DRAWTEXT(C=C AND CURRBARSCOUNT=30, 2,' COLORFF7F00 ■'),COLORFF7F00;
DRAWTEXT(C=C AND CURRBARSCOUNT=30, 3,' COLORFF2400 ■'),COLORFF2400;
DRAWTEXT(C=C AND CURRBARSCOUNT=30, 4,' COLORDB70DB ■'),COLORDB70DB;
DRAWTEXT(C=C AND CURRBARSCOUNT=30, 5,' COLOR8FBC8F ■'),COLOR8FBC8F;
DRAWTEXT(C=C AND CURRBARSCOUNT=30, 6,' COLORBC8F8F ■'),COLORBC8F8F;
DRAWTEXT(C=C AND CURRBARSCOUNT=30, 7,' COLOREAADEA ■'),COLOREAADEA;
DRAWTEXT(C=C AND CURRBARSCOUNT=30, 8,' COLORD9D9F3 ■'),COLORD9D9F3;
DRAWTEXT(C=C AND CURRBARSCOUNT=30, 9,' COLOR5959AB ■'),COLOR5959AB;
DRAWTEXT(C=C AND CURRBARSCOUNT=30,10,' COLOR6F4242 ■'),COLOR6F4242;
DRAWTEXT(C=C AND CURRBARSCOUNT=40, 1,' COLORBC1717 ■'),COLORBC1717;
DRAWTEXT(C=C AND CURRBARSCOUNT=40, 2,' COLOR238E68 ■'),COLOR238E68;
DRAWTEXT(C=C AND CURRBARSCOUNT=40, 3,' COLOR6B4226 ■'),COLOR6B4226;
DRAWTEXT(C=C AND CURRBARSCOUNT=40, 4,' COLOR8E6B23 ■'),COLOR8E6B23;
DRAWTEXT(C=C AND CURRBARSCOUNT=40, 5,' COLORE6E8FA ■'),COLORE6E8FA;
DRAWTEXT(C=C AND CURRBARSCOUNT=40, 6,' COLOR3299CC ■'),COLOR3299CC;
DRAWTEXT(C=C AND CURRBARSCOUNT=40, 7,' COLOR007FFF ■'),COLOR007FFF;
DRAWTEXT(C=C AND CURRBARSCOUNT=40, 8,' COLORFF1CAE ■'),COLORFF1CAE;
DRAWTEXT(C=C AND CURRBARSCOUNT=40, 9,' COLOR00FF7F ■'),COLOR00FF7F;
DRAWTEXT(C=C AND CURRBARSCOUNT=40,10,' COLOR236B8E ■'),COLOR236B8E;
DRAWTEXT(C=C AND CURRBARSCOUNT=50,10,' COLOR8F8FBD ■'),COLOR8F8FBD;
一穿三:=MA(C,5)>O AND MA(C,10)>O AND MA(C,20)>O AND MA(C,5)OPEN ;
STICKLINE(一穿三,OPEN,二分位,1.7,0),COLOR9370DB;
本类热门下载
均线角度公式:
MA2:=MA(CLOSE,10);
MA3:=MA(CLOSE,20);
MA4:=MA(CLOSE,30);
MA5:=MA(CLOSE,60);
MA6:=MA(CLOSE,120);
均线5角度:ATAN((MA1/REF(MA1,1)-1)*100)*180/3.1416;
均线10角度:ATAN((MA2/REF(MA2,1)-1)*100)*180/3.1416;
均线20角度:ATAN((MA3/REF(MA3,1)-1)*100)*180/3.1416;
均线30角度:ATAN((MA4/REF(MA4,1)-1)*100)*180/3.1416;
均线60角度:ATAN((MA5/REF(MA5,1)-1)*100)*180/3.1416;
均线120角度:ATAN((MA6/REF(MA6,1)-1)*100)*180/3.1416;
斜率>25度的MA5天均线
M:2
J:=ATAN((MA1/REF(MA1,1)-1)*100)*180/3.1416;
角度一:=ATAN(100*(J/REF(J,1)-1))*180/3.1416;
B1:=MA1>REF(MA1,1) AND REF(MA1,1)>REF(MA1,2);
B2:=CROSS(MA(CLOSE,3),MA(CLOSE,8));(均线金叉,可略去)
B3:=C>=REF(C,1);(今日收盘价大于昨天,可略去)
角度一>M AND B1;
http://dzy163vip.blog.163.com/通达信学习园地
操作版面是指什么,首先看一下通达信软件自带的通达信看盘版面,如下图:(“最近定制版面”图标介绍请阅读《通达信常用工具条的功能及用法》)
设A,B,R为三条曲线;N,M等为参数} [一.变化率] Fa:=A/ref(A,N)/N-1; Fb:=B/ref(B,N)/N-1; Fr:=R/ref(R,N)/N-1; [二.变动角] ∮a:=atan(Fa); ∮b:=atan(Fb); ∮r:=atan(Fr); [三.斜率] Ka:=(A-ref(A,N))/N; Kb:=(B-ref(B,N))/N; Kr:=(R-ref(R,N))/N; [四.倾角] ∠a:=atan(Ka); ∠b:=atan(Kb); ∠r:=atan(Kr); [五.交叉点] Cab:=cross(A,B);{交叉} Jab:=longcross(A,B,N);{维持 -交叉} JYa:=between(A,N,M);{介于} FWa:=range(A,N,M);{范围} [六.下拐点(由下向上转)] xD1:=llvbars(A,N)=M;{以N日最低点} xD2:=ref(count(A-ref(A,1)<=0,N)=N,M) and count(A-ref(A,1)>0,M)=M;{以当日变化量的正负} xD3:=ref(count(∠a-ref(∠a,1)<=0,N)=N,M) and ∠a>0;{以当日变化角的正负} [七.上拐点(由上向下转)] sD1:=hhvbars(A,N)=M;{以N日最高点} sD2:=ref(count(A-ref(A,1)>=0,N)=N,M) and count(A-ref(A,1)<0,M)=M;{以当日变化量的正负} sD3:=ref(count(∠a-ref(∠a,1)>=0,N)=N,M) and ∠a<0;{以当日变化角的正负} [八.位置(求得交叉点/拐点到当前的周期)] Wz1:=barslast(Cab);{第一(交叉)点的位置} Wz2:=ref(Wz1,Wz1+1)+Wz1+2;{第二(交叉)点的位置} Wz3:=ref(Wz1,Wz2+1)+Wz2+2;{第三(交叉)点的位置} Wz4:=ref(Wz1,Wz3+1)+Wz3+2;{第四(交叉)点的位置} Wz5:=ref(Wz1,Wz4+1)+Wz4+2;{第五(交叉)点的位置} {Wzn:=ref(Wz1,Wz(n-1)+1)+Wz(n-1)+2;} [九.曲线A叠加曲线B] F:=A/ref(A,1)-1;{A的变化率} js:=ref(B,barscount(c));{叠加位置(初始)} DJ:(sum(F,0)+1)*Js;{叠加曲线(初始位置)} Jd:=ref(B,barslast(条件));{叠加位置(定点)} Dj:=(sum(F,0)+1)*Jd;{叠加曲线(预定位置)} |
一、什么是"未来函数" 所谓"未来函数",是指可能引用未来数据的函数,即引用或利用当时还没有发生的数据对之前发出的判断进行修正的函数。具体地说,含有未来数据指标的基本特征是买卖信号不确定,常常是某日发出了买入或卖出信号(线段的转折点与此同理),第二天如果继续下跌或上涨,则该信号消失,并在明天新的位置标示出来。 二、含有未来函数公式的种类 (一)以之字转向为代表的ZIG类函数。我们最常见到和经常提到的多指此类。 1、ZIG(K,N)之字转向。 当价格变化量超过N%时转向。K表示 0:开盘价;1:最高价;2:最低价;3:收盘价 例如:ZIG(3,5)表示收盘价的5%的ZIG转向。 2、PEAK(K,N,M)向前数前M个ZIG转向波峰值。(以下用法略。点击软件中相应的函数时,下面有提示或用法) 3、PEAKBARS(K,N,M)前M个ZIG转向波峰到当前距离。 4、TROUGH(K,N,M)前M个ZIG转向波谷值。 5、TROUGHBARS(K,N,M)前M个ZIG转向波谷到当前距离。 6、FLATZIG、FLATZIGA、PEAKA、PEAKBARSA、TROUGHA、ZIGA等等都属于此类未来函数。 (二)准未来函数。 这部分函数存在引用未来数据的问题,但不如上述函数明显,有些目前争议较大。 1、FFT(X,N)、傅立叶变换。对序列X进行傅立叶变换或变换处理后反变换。 2、BACKSET(X,N)、向前赋值。若X非0,则将当前位置到N周期前的数值设为1。 3、WINNER、LWINNER等获利盘比例类的和COST也有未来函数的性质,有时可使信号产生漂移。 (三)、使用跨周期数据。 这是一种最为隐弊的方法,它的危害性更大。例如在日线中引用本周周线或本月月线数据时,就会造成本周或本月股价上涨时则信号成功;如果股价下跌,则信号自动消失。用公式检测的办法测试不出来。我们经常见到的用KD月、周、日同时金叉进行选股,就属于此类,看起来成功率很高,实际是虚假的。 (四)、指定买卖日期或买卖价格。 一般多发生在交易系统里。比如指定最低价买入,最高价卖出,或指定涨跌幅度,这些在交易过程中是无法实现的,所以尽管测试成功率时非常高,其实没有任何实用价值。 三、未来数据的检测方法 知道了未来函数的特征和种类,具备了认识公式中有无未来数据的基础,具体应用中如何识别呢,有以下方法: 1、公式中凡是用了ZIG之字转向类的函数和使用了跨周期数据(如上所述)均应视为使用了未来函数。 2、看买卖信号是否确定。凡是已经出现的信号在新的一天或若干周期中存在漂移的,公式中存在未来函数。 3、从指标图中鉴别。凡是买卖提示信号极为准确的(应看多张图),即没有失误的,肯定有未来函数。 4、用股软鉴别。A、使用分析家软件的系统测试平台检测,是否含有未来数据系统会自动提醒。如果想亲自看看信号的稳定性和历史的变化过程,分析家的时空隧道可以令时光倒流让你回到从前,信号如何产生、如何消失一目了然。 B、使用飞狐软件的,更为简单,在左侧《管理面板》中用右键单击公式的名称,在出现的下拉菜单中点击"公式检测"即可。 此外还有一种方法是搞清公式的算法。对于源码公式,逐条分析后,是否含有未来数据的引用立刻便知。MA5:MA(C,5),COLORWHITE;
VAR2:=WINNER(OPEN)*100;
VAR3:=WINNER(CLOSE)*100;
VAR4:=WINNER(HIGH)*100;
VAR5:=WINNER(LOW)*100;
开:VAR2,LINETHICK0;
高:VAR4,LINETHICK0;
低:VAR5,LINETHICK0;
收:VAR3,LINETHICK0;
均线: EMA(VAR3,34),COLORCC9900,LINETHICK2;
ER:=VOL/CAPITAL*100;
VAR6:=IF((VAR3-VAR2)>=18 AND ER<=3,1,0);
STICKLINE(VAR6>0,VAR2,VAR3,3,0),COLORMAGENTA;
STICKLINE(VAR6=0,VAR2,VAR3,3,1),COLORRED;
STICKLINE(VAR3
STICKLINE(VAR3=VAR2,VAR2,VAR3,3,1),COLORWHITE;
STICKLINE(VAR3=VAR2,VAR5,VAR4,0,0),COLORWHITE;
STICKLINE(VAR3>VAR2,VAR3,VAR4,0,0),COLORRED;
STICKLINE(VAR3>VAR2,VAR2,VAR5,0,0),COLORRED;
STICKLINE(VAR3
STICKLINE(VAR3
换手率:ER,LINETHICK0;
搏弈K线长:VAR3-VAR2,COLORMAGENTA,LINETHICK0;
如何改变单根K线的颜色,其公式中的输出项是可以根据自己的需求来改变的,就是“A:=C/REF(C,1)>1.09;”这里自己可以修改成自己想要变色的K线形态,比如我想让今天成交量比昨天小一半以上的K线其在开盘价与收盘价之间变成黄色就可以这样修改,完整的公式如下:
A:=REF(VOL,1)/VOL>2;
STICKLINE(A,O,C,-1,0),COLORYELLOW;
A:=REF(VOL,1)/VOL>2;
STICKLINE(A,O,C,-1,0),COLORYELLOW;
十字星:CLOSE=OPEN&&HIGH>LOW;
长十字:CLOSE=OPEN&&HIGH/LOW>1.03;
光头阳线:HIGH=CLOSE&&HIGH>LOW;
光脚阴线:LOW=CLOSE&&HIGH>LOW;
垂死十字:CLOSE=OPEN&&CLOSE=LOW&&CLOSE
锤头:HIGH=MAX(OPEN,CLOSE)&&HIGH-LOW>3*(HIGH-MIN(OPEN,CLOSE))&&CLOSE
吊颈:HIGH=MAX(OPEN,CLOSE)&&HIGH-LOW>3*(HIGH-MIN(OPEN,CLOSE))&&CLOSE>MA(CLOSE,5);
长下影:(MIN(CLOSE,OPEN)-LOW)/(HIGH-LOW)>0.667;
长上影:(HIGH-MAX(CLOSE,OPEN))/(HIGH-LOW)>0.667,COLORBLUE;
大阳烛:CLOSE/OPEN>1.05 AND HIGH/LOW < CLOSE/OPEN+0.018;
大阴烛:OPEN/CLOSE > 1.05 AND HIGH/LOW < OPEN/CLOSE+0.018;
早晨之星:(REF(CLOSE,2)/REF(OPEN,2)<0.95)&&(REF(OPEN,1) < REF(CLOSE,2))&&(ABS(REF(OPEN,1)-REF(CLOSE,1))/REF(CLOSE,1)<0.03)&&CLOSE/OPEN>1.05&&CLOSE>REF(CLOSE,2);
黄昏之星:REF(CLOSE,2)/REF(OPEN,2)>1.05&&REF(OPEN,1)>REF(CLOSE,2)&&ABS(REF(OPEN,1)REF(CLOSE,1))/REF(CLOSE,1)<0.03&&CLOSE/OPEN<0.95&&CLOSE
平底:BACKSET((ABS(LOW-REF(LOW,1))/LOW<0.001 AND ABS(REF(LOW,1)-REF(LOW,2))/RE (LOW,1)<=0.001),2);
文华财经函数大全
1、引用数据
AVPRICE
SETTLE
如果用在周期大于等于'日'的K线上,返回当根K线结束时间所在日的结算价.)
CLOSE
HIGH
LOW
OPEN
OPI
REF(X,N)
例:REF(CLOSE,5);
表示引用当前周期前第5个周期的收盘价
REFX(X,N)
『未来函数』
例:REFX(CLOSE,5);
表示引用自当前周期后第5个周期的收盘价
VOL
GETPRICE(N)
例子:
GETPRICE(1209);返回文华码为1209的合约品种的最新价。
2、金融统计
BACKSET(X,N)
例:BACKSET(CLOSE>OPEN,3);表示当K线收阳时,自当前位置到3周期前的数值设为1
该函数参数支持变量计算如BACKSET(CLOSE>OPEN,VAR1);//VAR1是变量
BARSLAST(X)
例:
BARSLAST(X):上一次满足X条件到现在的K线根数。如果本根K线满足X条件,则BARSLAST(X)返回0.
COUNT(X,N)
例:WR:=-100*(HHV(HIGH,N)-CLOSE)/(HHV(HIGH,N)-LLV(LOW,N));COUNT(WR>80,5);
表示统计在5个周期内满足WR>80的次数。
DMA(X,N)
计算方法:DMA(N)=DMA(N-1)*(1-A)+X(N)*A
其中DMA(N-1)为第(N-1)天的DMA值。
EMA(X,N)
计算方法:EMA(X,N)=[2*X+(N-1)*EMA(X,(N-1))]/(N+1)
其中EMA(X,(N-1))为第(N-1)天的EMA值。
EMA2(X,N)
计算方法:EMA2(X,N)=(N*X0+(N-1)*X1+(N-2)*X2+...+1*XN)/(N+(N-1)+(N-2)+...+1),X0表示本周期值,X1表示上一周期值。
HHV(X,N)
例:HHV(HIGH,13);求13个周期内的最高价的最大值。
HHVBARS(X,N)
例:HHVBARS(VOL,0); 求历史成交量最大的周期到当前的周期数。
LLV(X,N)
例:LLV(LOW,25);表示求25个周期内最低价的最小值。
LLVBARS(X,N)
例:LLVBARS(VOL,0);求历史成交量最小的周期到当前的周期数。
MA(X,N)
计算方法:MA=(A1+A2+A3+A4+A5)/5,求A在5个周期内的简单移动平均
ZIGZAG(X,P,N)
例:ZIGZAG(HIGH,10,1);表示最高价的10%的之字转向
ZIGZAG(MA(HIGH,34),100,0);
表示34个周期内最高价均线的100个价位的之字转向
PEAK(X,P,M,N)
例:PEAK(HIGH,10,1,1);表示最高价的10%的之字转向的上一个波峰的数值;
PEAK(MA(HIGH,34),100,1,0);
表示34个周期内最高价均线的100个价位的之字转向的上一个波峰的数值。
PEAKBARS(X,P,M,N)
例:PEAKBARS(HIGH,10,1,1);表示最高价的10%的之字转向的上一个波峰到当前的周期数。
PEAKBARS(MA(HIGH,34),100,1,0);表示34个周期内最高价均线的100个价位的之字转向的上一个波峰到当前的周期数。
TROUGH(X,P,M,N)
例:TROUGH(LOW,10,1,1);
表示最低价的10%的之字转向的上一个波谷的数值。
TROUGH (MA(LOW,34),100,1,0);
表示34个周期内最低价均线的100个价位的之字转向的上一个波谷的数值。
TROUGHBARS(X,P,M,N)
TROUGH(LOW,10,1,1);
表示最低价的10%的之字转向的上一个波谷到当前的周期数。
TROUGH (MA(LOW,34),100,1,0);
表示34个周期内最低价均线的100个价位的之字转向的上一个波谷到当前的周期数。
SAR(N,Step,Max)
(系统函数,计算步骤后台自动完成)
例:SAR(17,0.03,0.3);表示计算17个周期抛物转向,步长为3%,极限值为30%。
SMA(X,N,M)
计算方法:SMA(N)=SMA(N-1)*(N-M)/N+X(N)*M/N。
SUM(X,N)
例: SUM(VOL,10);表示统计10周期内的成交量总和。
SUMBARS(X,A)
TRMA(X,N)
TSMA(X,N)
计算方法:TSMA(X,N)= FOCAST(X,N)+SLOPE(X,N)。
3、数理统计
AVEDEV(X,N)
DEVSQ(X,N)
FORCAST(X,N)
例:FORCAST(CLOSE,5);表示求5周期线性回归预测
SLOPE(X,N)
例:SLOPE(CLOSE,5);表示求5周期线性回归线的斜率
STD(X,N)
STDP(X,N)
VAR(X,N)
VARP(X,N)
数理统计举例说明:
1、算术平均值MA(CLOSE,5):数据总和除以总个数N。(2766+2805+2814+2886+2885)/5=2831.20。可以用公式MA(CLOSE,5),从今天的值上看出。
2、偏差:每个数据,减去算术平均值的结果。 2766-2831.20=-65.2, 2805-2831.20=-26.2, 2814-2831.20=-17.2, 2886-2831.20=54.8, 2885-2831.20=53.8, 各偏差相加,应该是等于0的。
3、平均绝对偏差AVEDEV(X,N):将偏差的绝对值相加,除以总个数N。 (65.2+26.2+17.2+54.8+53.8)/5=43.44。
4、数据偏差平方和DEVSQ(X,N):将偏差的平方相加。 (-65.2)2+ (-26.2)2+ (-17.2)2+ (54.8)2+ (53.8)2=11130.80。
5、总体样本方差VARP(X,N):将偏差的平方相加,总和除以总个数N。用公式可以这样算: (-65.2)2+ (-26.2)2+ (-17.2)2+ (54.8)2+ (53.8)2/5=2226.16。
6、样本方差VAR(X,N):是总体方差的N/(N-1)倍。 2226.16*5/(5-1)=2782.70 估算样本方差,总比总体样本方差大一点,当N够大时,两者趋于相等。
7、总体标准差STDP(X,N):方差的开方。 [(-65.2)2+ (-26.2)2+ (-17.2)2+ (54.8)2+ (53.8)2/5]?=47.18。
8、标准差STD(X,N):估算样本方差的开方。 [2226.16*5/(5-1)]?=52.75 同样,估算标准差也比总体标准差大一点,当N够大时,两者趋于相等。
4、逻辑判断
BETWEEN(A,B,C)
例:BETWEEN(CLOSE,MA5,MA40);
表示收盘价介于5日均线与40日均线之间。
CROSS(X,Y)
例:CROSS(CLOSE,MA(CLOSE,5));
表示收盘线从下方向上穿过5日均线
EXIST(COND,N)
例:EXIST(CLOSE>REF(HIGH,1),10);
表示10个周期中是否存在收盘价大于前一个周期的最高价
EVERY(COND,N)
例:EVERY(CLOSE>OPEN,5);表示5个周期内一直是阳线
LAST(COND,N1,N2)
例:LAST(CLOSE>OPEN,10,5);
表示从过去第10个周期到第5个周期内一直是阳线
LONGCROSS(A,B,N)
例:LONGCROSS(CLOSE,MA(CLOSE,10),20);
表示收盘线在10日均线之下持续20周期后从下向上穿过10日均线。
NOFILTER
设置模型对产生的交易指令不过滤,则出现的任何交易指令都会执行,如果没有设置“不过滤”,则产生的指令将按照如下规则过滤:
1.连续的同方向指令只有第一个有效,其他的将被过滤;
2.交易指令必须配对出现(例如:前面已经有了买开指令,则后面只允许出现卖平指令,其他的指令都被滤掉。这也就意味着,第一个指令只能是买开或者卖开指令,其他的都被过滤);
3.但是在进行模型效果测试及优化时,无论设置过滤与否,都按照前面的规则对指令进行了过滤。
IFELSE(C,A,B)
如果条件C成立则返回A值,否则返回B值.
例:IFELSE(CLOSE>REF(CLOSE,1),1,0);
表示若今日收盘价高于前一日收盘价,则返回1,否则返回0
ISDOWN
ISEQUAL
ISUP
ISLASTBAR
例:ISLASTBAR; 如果是最后一个K线返回1(Yes),否则返回0(No)。
VALUEWHEN(COND,DATA)
例:VALUEWHEN(HIGH>REF(HIGH,5),HIGH);
表示当前最高价大于前五个周期最高价的最大值时返回当前最高价。
5、数学运算
ABS(X)
例:ABS(SAR(17,0.03,0.3));返回抛物转向SAR(17,0.03,0.3)的绝对值。
ACOS(X)
ASIN(X)
ATAN(X)
COS(X)
EXP(X)
CEILING(X)
FLOOR(X)
INTPART(X)
LN(X)
例:LN(OPEN);求开盘价的自然对数。
LOG(X)
例:LOG(OPEN);求开盘价的以10为底的对数。
MAX(A,B)
例:MAX(CLOSE-OPEN,0);
表示若收盘价大于开盘价返回它们的差值,否则返回0。
MIN(A,B)
例:MIN(OPEN,CLOSE);返回开盘价和收盘价中的较小值。
MOD(A,B)
例:MOD(CLOSE,OPEN);收盘价除以开盘价所得余数
NOT(X)
例:NOT(TIME=090530);表示该周期对应的时间不是9:05:30AM。
POW(A,B)
例:POW(CLOSE,2);求得收盘价的2次方。
REVERSE(X)
例:REVERSE(LOW);返回-LOW。
SGN(X)
SIN(X)
SQRT(X)
例:SQRT(CLOSE);收盘价的平方根。
SQUARE(X)
例:SQUARE(CLOSE);收盘价的平方。
TAN(X)
6、时间函数
BARPOS
DATE
DAY
HOUR
MINUTE
MONTH
TIME
秒级周期返回值范围为:0-235959。
WEEKDAY
YEAR
7、绘图
DRAWLINE(C1,P1,C2,P2,COLOR)
例:
DRAWLINE(MA18CLOSE,CLOSE,COLORCYAN);
表示当收盘价大于18日均线并且小于5日均线时,从开盘价画青色直线到收盘价。
DRAWTEXT(C,P,TEXT)
例:DRAWTEXT(CLOSE< OPEN&&REF(CLOSE,1)< REF(OPEN,1) &&REF(VOL,1)*1.1< VOL,LOW,'注');
表示连续两日收阴并且成交量比前一日至少多10%时,在最低价上写“注”字。
DRAWSL
(COND,DATA,SLOPE,LEN,EXPAND,COLOR)
例:DRAWSL(LOW=LLV(LOW,50),LOW,5,3,2,COLORRED);
表示当前最低价等于50周期内的最小值时,从当前最小值开始以每隔5个点的斜率画长度为3个周期向右延伸的斜线,颜色为红色。
DRAWNUMBER
(COND,DATA,NUMBER,PRECISION,COLOR)
例:DRAWNUMBER(CLOSE/OPEN>1.08,HIGH,(CLOSE-OPEN)/OPEN*100,2,COLORRED);
表示当日涨幅大于8%时在最高价位置显示涨幅(相对开盘价的百分比)。
FILLRGN
(COND,DATA1,DATA2,COLOR)
例:FILLRGN(MA5>MA10,MA5,MA10,COLORRED);
表示MA5>MA10时以红色填充MA5和MA10之间的区域。
POLYLINE
(COND,DATA,COLOR)
例:POLYLINE(CLOSE>=HHV(CLOSE,100),CLOSE,COLORRED);
表示在收盘价创100天新高点之间画折线。
PARTLINE
(COND,DATA,COLOR)
例:PARTLINE(HIGH>REF(HIGH,1),HIGH,COLORRED);
表示当期最高价大于前期最高价用红色绘制最高价线段。
STICKLINE
(C,P1,P2,COLOR,EMPTY)
例:STICKLINE(OPEN-CLOSE>0,OPEN,CLOSE,COLORCYAN,0);
表示当开盘价大于收盘价时,从开盘价到收盘价画青色的实心柱,即K线阴线的实体部分。
VERTLINE
(COND,COLOR)
例:VERTLINE(HIGH>=HHV(HIGH,30),COLORRED);
表示在价格创30天新高时画垂直线。
08版本与09版本函数区别:
SETTLE
如果用在周期大于等于'日'的K线上,返回当根K线结束时间所在日的结算价.)
BACKSET(X,N) 『未来函数』
DMA
计算方法:DMA(N)=DMA(N-1)*(1-A)+X(N)*A
其中DMA(N-1)为第(N-1)天的DMA值。
HHV(X,N)
LLV(X,N)
COUNT(X,N)
09版本新增函数:
GETPRICE(N)
例:
GETPRICE(1209);返回文华码为1209的合约品种的最新价。
RGB(R,G,B)
R,G,B的数值范围都在0~255之间,例:RGB(225,225,225)表示白色
PARAM[参数名称,最小值,最大值,缺省值]
例:PARAM[N,1,100,12]
MAN:MA(CLOSE,N);
表示参数为N,最小值为1,最大值为100,缺省值为12.
IF(COND)
A,COLOR;
ELSE
B, COLOR;
例:取得MA5、MA10、MA30三者中最大的数值
MA5:=MA(CLOSE,5);
MA10:=MA(CLOSE,10);
MA30:=MA(CLOSE,30);
IF(MA5>MA10)
MA5,COLORRED;
ELSE
{
IF(MA10>MA30)
MA10,COLORMAGENTA;
ELSE
MA30,COLORGREEN;
}
注意:区别于IFELSE函数,为了使多层次套用看的清楚,以上示例中将“{}”单独空行,实际使用中可以不必这样使用。
#IMPORT [CODE,PERIOD,FORMULA] AS VAR
语句格式:
#IMPORT [CODE,PERIOD,FORMULA] AS VAR
CODE 文华码
(文华码见http://www.wenhua.com.cn/guide/guide.htm 其他—>期货品种代码表)
PERIOD 被引用的周期
FORMULA 被引用指标名称
例:引用[豆粕1005]合约日K线图周期的指标[KDJ.FML] 中K值、D值:
#IMPORT [1205,DAY,KDJ] AS VARKDJ
K1:KDJ.K;
D1:KDJ.D;
注意点:
1.只能引用一个当前存在的‘.FML文件’(指标文件)中的变量,不支持同时引用多个指标和多个周期。
2.只能引用如下周期 MIN1 MIN3 MIN5 MIN10 MIN15 MIN30 HOUR1 HOUR3 HOUR8 DAY WEEK MONTH;
3.只能短周期引用长周期指标数据,分钟周期上可引用小时、日周期数据,不能日线周期上加载引用分钟数据的指标;
4.被引用的指标中不能存在引用。
5.如果不写文华码,默认引用当前合约。
模型注释符号在2009版本中修改为“//”。2008版本中模型注释语句使用在2009版本中时在{}前面增加//即可。
(三)编辑平台可以使用的常数
常数
COLORRED
COLORGREEN
COLORBLUE
COLORMAGENTA
COLORYELLOW
COLORLIGHTGREY
COLORLIGHTRED
COLORLIGHTGREEN
COLORLIGHTBLUE
COLORBLACK
COLORWHITE
COLORCYAN
COLORSTICK
VOLUMESTICK
BAMBOOLINE
CIRCLEDOT
OPISTICK
RGB(R,G,B)
R,G,B的数值范围都在0~255之间。
例:RGB(225,225,225)表示白色
PARAM[参数名称,最小值,最大值,缺省值]
例:PARAM[N,1,100,12]
MAN:MA(CLOSE,N);
表示参数为N,最小值为1,最大值为100,缺省值为12.
注意:在公式内即使你定义了某种颜色,在显示的时候也未必是此种颜色,取决于背景颜色当前页面里是否保了该指标的颜色及您是否在显示的时候改变了该指标的颜色设置。
欢迎交流:
QQ:419549257
Q群:138709040
(四)编辑平台的语法
1、关于公式名称:
公式的名称不可以和已经存在的公式重复。
2、关于参数:
每个自编公式最多可以定义四个参数,参数的定义如下,首先是参数名称,然后是参数的最小值,最大值,最后是参数的默认值。在定义参数时要注意的是参数名称不可以重复。
3、关于变量名称:
变量名称不可以互相重复,不可以和参数名重复,不可以和函数名称重复。
4、关于公式内容:
公式的每个语句应该以分号结束,包括最后一条语句。在数据公式的时候请您注意一定要使用半角输入。在编写公式的过程中,如果您不记得某个函数的确切写法,可以选择插入函数来插入函数。
5、如果您在编写公式之后,想给这个公式加上注释,说明之类的东西,可以使用公式说明来输入。
(五)编辑平台使用的交易指令
交易模型中的交易指令如下:
图示
BK
BP
SK
SP
BPK
SPK
套利模型中的交易指令如下:
图示
BKSK
BPSP
SKBK
SPBP
请注意,在效果测试使用如下机制:
连续的开仓指令只使用第一个指令进行开仓,开仓时使用当时的全部资金,连续的平仓指令,只有第一个有效,平掉当时的全部持仓,其他的平仓指令算做错误指令!
(六)快速入门
1、如何把熟悉的技术指标转换成交易模型?
第一步:把KDJ指标公式COPY过来。
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;//{算出(收盘价-N周期内的最低价)/(N周期的最高价—N周期内的最低价)*100的值,用RSV来表示。}
BACKGROUNDSTYLE(1);{确定背景的样式,(钝化)}
K:SMA(RSV,M1,1),COLORWHITE;//{RSV的移动加权平均的值用K表示,并且画白色的线。}
D:SMA(K,M2,1),COLORYELLOW;//{K的移动加权平均的值用D表示,并且画黄色的线。}
J:3*K-2*D,COLORMAGENTA;//{3倍的K减去2倍的D的值用J表示,并且画紫色的线。}
第二步:原有公式主要是画线,所以稍作修改。如下:
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;//{第一行不需要修改}
//{第二行删除,在交易模型中不用钝化}
K:=SMA(RSV,M1,1);//{在“:”后加上“=”变为只定义不用画线,所以把后面的颜色函数(COLORWHITE)也去掉}
D:=SMA(K,M2,1);//{同上}
J:=3*K-2*D;//{同上}
第三步:把自己总结的交易条件写上,就可完成交易模型。如下:
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,M1,1);
D:=SMA(K,M2,1);
J:=3*K-2*D;
CROSS(K,D),BK;//{K向上穿越D,发出买开交易指令}
CROSS(J,100),SP;//{J向上穿越100,发出卖平交易指令}
CROSS(D,K),SK;//{K向下穿越D,发出卖开交易指令}
CROSS(0,J),BP;//{J向下穿越0,发出买平交易指令}
//后为文字说明,编写模型时不用写出
2、如何编制交叉(金叉/死叉)类型的交易模型?
MA5:=MA(CLOSE,5);//{5个周期收盘价的简单移动平均}
MA10:=MA(CLOSE,10);//{10个周期收盘价的简单移动平均}
MA20:=MA(CLOSE,20);//{20个周期收盘价的简单移动平均}
CROSS(MA10,MA20),BK;//{当MA10上穿MA20时,发出买入开仓交易指令}
CROSS(MA10,MA5),SP;//{当MA10上穿MA5时,发出卖出平仓交易指令}
CROSS(MA20,MA10),SK;//{当MA20上穿MA10时,发出卖出开仓交易指令}
CROSS(MA5,MA10),BP;//{当MA5上穿MA10时,发出买入平仓交易指令} //后为文字说明,编写模型时不用写出}
3、如何编制多条件类型的交易模型?
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
J:=3*K-2*D;//{以上为KDJ公式}
MA5:=MA(CLOSE,5);
MA10:=MA(CLOSE,10);//{以上为定义5个周期收盘价的简单移动平均和10个周期收盘价的简单移动平均}
(CROSS(MA5,MA10)&&REF(J,1)<70)||(CROSS(K,D)&&J<30),BK;//{5周期均线上穿10周期均线并且前一个周期的J值(KDJ)少于70或者KD金叉时并且J值小于30时发出买入开仓交易指令}
CROSS(D,K)&&REF(J,1)>70,SP;//{KD出现死叉并且前一个周期J值大于70时发出卖出平仓交易指令}
(CROSS(MA10,MA5)&&REF(J,1)>30)||(CROSS(D,K)&&J>70),SK;//{5周期均线下叉10周期均线并且前一个周期的J值(KDJ)大于30或者KD死叉时并且J值大于70时发出卖出开仓交易指令}
CROSS(K,D)&&REF(J,1)<30,BP;//{KD出现金叉并且前一个周期J值小于30时发出买入平仓交易指令} {{}内为文字说明,编写模型时不用写出}
4、如何编制REF(X,N)类型的交易模型?
A:=OPEN-(((REF(HIGH,1)-REF(LOW,1))+(REF(HIGH,2)-REF(LOW,2))+(REF(HIGH,3)-REF
(LOW,3))+(REF(HIGH,4)-REF(LOW,4)))/4)*1.8;//{A=当前周期的开盘价 -[ (一个周期前的最高价减最低价的差+两个周期前的最高价减最低价的差+三个周期前的最高价减最低价的差+四个周期前的最高价减最低价的差)/4]*1.8 }
REF(CLOSE,1)< REF(CLOSE,2)&&REF(CLOSE,2)< REF(CLOSE,3)&&REF(CLOSE,3)<<BR>REF(CLOSE,4)&&CLOSE >A,BPK;//{连续四个周期的收盘价小于前一周期的收盘价并且当前周期的收盘价大于A时,发出买平并且买开(反手)交易指令}
REF(CLOSE,1)>REF(CLOSE,2)&&REF(CLOSE,2) >REF(CLOSE,3)&&REF(CLOSE,3)>REF(CLOSE,
4)&&CLOSE<=A,SPK;//{连续四个周期的收盘价大于前一周期的收盘价并且当前周期的收盘价小于等于A时,发出卖平并且卖开(反手)交易指令}{{}内为文字说明,编写模型时不用写出}
5、如何编制价差类型的交易模型?
MA5:=MA(CLOSE,5);//{5个周期收盘价的简单移动平均}
MA10:=MA(CLOSE,10);//{10个周期收盘价的简单移动平均}
CROSS(MA10,MA5)||(CLOSE-MA5)>8,SK;//{10周期均线上穿5周期均线或者收盘价与5周期均线的差值大于8时,发出卖出开仓交易指令}
(MA5-CLOSE)>6,BP;//{5周期均线与收盘价的差值大于6时,发出买入平仓交易指令}
CROSS(MA5,MA10)||(MA5-CLOSE)>8,BK;//{5周期均线上穿10周期均线或者收盘价与5周期均线的差值大于8时,发出买入开仓交易指令}
(CLOSE-MA5)>6,SP;//{收盘价与5周期均线的差值大于6时,发出卖出平仓交易指令}{{}内为
文字说明,编写模型时不用写出}
6、如何编制简单价差类型的套利模型?
CROSS(300,CLOSE),BKSK; //{CLOSE为两个品种的价差。当价差小于300时,买入开仓前一品种,卖出开仓后一品种}
CROSS(CLOSE,500),SPBP;//{当价差大于500时,卖出平仓前一品种,买入平仓后一品种}
CROSS(CLOSE,600),SKBK;//{当价差大于600时,卖出开仓前一品种,买入开仓后一品种}
CROSS(400,CLOSE),BPSP;//{当价差小于400时,买入平仓前一品种,卖出平仓后一品种}
7、如何编制组合类型的套利模型?
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,M1,1);
D:=SMA(K,M2,1);
J:=3*K-2*D;//{以上为KDJ公式}
CLOSE<300&&CROSS(K,D),BKSK;//{当价差小于300并且K上穿D时,买入开仓前一品种,卖出开仓后一品种}
CROSS(CLOSE,500)||CROSS(D,K),SPBP;//{当价差上穿500或者D上穿K时,卖出平仓前一品种,买入平仓后一品种}
CLOSE>600&&CROSS(D,K),SKBK;//{当价差大于600并且D上穿K时,卖出开仓前一品种,买入开仓后一品种}
CROSS(400,CLOSE)||CROSS(K,D),BPSP;//{当价差下穿400或者K上穿D时,买入平仓前一品种,卖出平仓后一品种}
技术指标模型大全
1 ADTM模型
DTM:=IFELSE(OPEN<=REF(OPEN,1),0,MAX((HIGH-OPEN),(OPEN-REF(OPEN,1))));
DBM:=IFELSE(OPEN>=REF(OPEN,1),0,MAX((OPEN-LOW),(OPEN-REF(OPEN,1))));
STM:=SUM(DTM,N);
SBM:=SUM(DBM,N);
ADTM:=IFELSE(STM>SBM,(STM-SBM)/STM,IFELSE(STM=SBM,0,(STM-SBM)/SBM));
ADTMMA:=MA(ADTM,M);
ADTMMA
ADTMMA>Q,SPK;
2 ARBR模型
AR := SUM(HIGH-OPEN,N)/SUM(OPEN-LOW,N)*100;
BR := SUM(MAX(0,HIGH-REF(CLOSE,1)),N)/SUM(MAX(0,REF(CLOSE,1)-LOW),N)*100;
(BR<100),BK;//BR比AR低,且指标处于低于100以下时,可考虑逢低买进。
(BR-REF(BR,M))>P && AR-REF(AR,M)
3 ASI模型
LC:=REF(CLOSE,1);
AA:=ABS(HIGH-LC);
BB:=ABS(LOW-LC);
CC:=ABS(HIGH-REF(LOW,1));
DD:=ABS(LC-REF(OPEN,1));
R:=IFELSE(AA>BB&&AA>CC,AA+BB/2+DD/4,IFELSE(BB>CC&&BB>AA,BB+AA/2+DD/4,CC+DD/4));
X:=(CLOSE-LC+(CLOSE-OPEN)/2+LC-REF(OPEN,1));
SI:=16*X/R*MAX(AA,BB);
ASI:=SUM(SI,0);
ASI>REF(ASI,1),BPK;//当前周期ASI指标数值大于前一周期开多;
ASI
4 ATR模型
TR := MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR := MA(TR,N);
C>MA(C,10) && CROSS(TR,ATR) && ATR>REF(ATR,1) && ISDOWN,BK;//在上升通道中,ATR真实波幅向上时,且白线上穿黄线,此时K线收阴者买入开仓;
CROSS(MA(C,10),C),SP;//当价格下穿10周期均线平多仓。
5 B3612模型
B36 := MA(CLOSE,3)-MA(CLOSE,6);
B612 := MA(CLOSE,6)-MA(CLOSE,12);
B36
B36>REF(B36,1) && B612>REF(B612,1) ,BPK;//本周期B36与B612分别小于前一周期B36与B612时平多开空。
6 BBI模型
BBI1:=(MA(CLOSE,N1)+MA(CLOSE,N2)+MA(CLOSE,N3)+MA(CLOSE,N4))/4;
MA54:=MA(C,54);//以MA54来判断当前价格处于高价区还是低价区。
C
C>MA54 && CROSS(BBI1,C),SPK;
7 BIAS模型
BIAS1 := (CLOSE-MA(CLOSE,L1))/MA(CLOSE,L1)*100;
BIAS1>M1 && MA(C,54)REF(C,54),SK;
BIAS1<-1*P && MA(C,54)P && MA(C,54)>REF(C,54),BP;
BIAS1M2 && MA(C,54)>REF(C,54),BK;
BIAS1>P && MA(C,54)
REF(C,54),SP;
8 BOLL模型
MID:=MA(CLOSE,N);
TMP2:=STD(CLOSE,M);
TOP:=MID+P*TMP2;
BOTTOM:=MID-P*TMP2;
A:=TOP-C;
B:=C-BOTTOM;
CROSS(C,BOTTOM),BPK;
CROSS(TOP,C),SPK;
9 CCI模型
TYP:=(CLOSE+HIGH+LOW)/3;
CCI:=(TYP-MA(TYP,N))/(0.015*AVEDEV(TYP,N));
CROSS(CCI,100),BK;//CCI从+100~-100的常态区,由下往上突破+100天线时,为买入开仓。
CROSS(100,CCI),SP;//CCI从+100天线之上,由上往下跌破天线时,为卖出平仓。
CROSS(100,CCI),SK;//CCI从+100~-100的常态区,由上往下跌破-100地线时,为卖出开仓。
CROSS(CCI,100),BP;//CCI从-100下方,由下往上突破-100地线时,为买入平仓。
10 CDPV日内模型
PT
CDP := (REF(HIGH,1) + REF(LOW,1) + REF(CLOSE,1))/3;
AH
AL
NH
NL
NQ:=(AH+AL+NH+NL)/4;//计算出CDP中四条指标线的均值NQ
NQ>LLV(NQ,M)*(1+M1*0.001) && TIME>=0900 && TIME<1455,BP;//当NQ上涨超过前M周期最低值的千分之M1,买开;
NQ=1455,SP;//当NQ下跌超过前M周期最高值的千分之M1,卖开;
NQ=0900 && TIME<1455,SK;//当NQ下跌超过前M周期最高值的千分之M1,卖开;
NQ>LLV(NQ,M)*(1+M1*0.001) || TIME>=1455,BP;//当NQ上涨超过前M周期最低值的千分之M1,买开。
11 CDP日内模型
PT
CDP := (REF(HIGH,1) + REF(LOW,1) + REF(CLOSE,1))/3;
AH
AL
NH
NL
NQ:=(AH+AL+NH+NL)/4;//计算出CDP中四条指标线的均值NQ
NQ>LLV(NQ,M)*(1+M1*0.001),BPK;//当NQ上涨超过前M周期最低值的千分之P,买平开;
NQ
12 CDP模型
PT
CDP := (REF(HIGH,1) + REF(LOW,1) + REF(CLOSE,1))/3;
AH
AL
NH
NL
NQ:=(AH+AL+NH+NL)/4;//计算出CDP中四条指标线的均值NQ
NQ>LLV(NQ,M)*(1+M1*0.001),BPK;//当NQ上涨超过前M周期最低值的千分之M1,买平开;
NQ
13 CR模型
MID := (HIGH+LOW+CLOSE)/3;
CR:=SUM(MAX(0,HIGH-REF(MID,1)),N)/SUM(MAX(0,REF(MID,1)-LOW),N)*100;
CR
CR>N2,SPK;//CR下跌超过N2时,卖平开。
14说明 文中“//” 后面的文字是解说,实际编写与测试过程中,不用编写。
15 DBCD模型
BIAS:=(CLOSE-MA(CLOSE,N))/MA(CLOSE,N);
DIF:=(BIAS-REF(BIAS,M));
DBCD:=SMA(DIF,T,1);
MM:=100000*MA(DBCD,5);
MM>REF(MM,1),BPK;
MM
16 DDI模型
TR:=MAX(ABS(HIGH-REF(HIGH,1)),ABS(LOW-REF(LOW,1)));
DMZ:=IFELSE((HIGH+LOW)<=(REF(HIGH,1)+REF(LOW,1)),0,MAX(ABS(HIGH-REF(HIGH,1)),ABS(LOW-REF(LOW,1))));
DMF:=IFELSE((HIGH+LOW)>=(REF(HIGH,1)+REF(LOW,1)),0,MAX(ABS(HIGH-REF(HIGH,1)),ABS(LOW-REF(LOW,1))));
DIZ:=SUM(DMZ,N)/(SUM(DMZ,N)+SUM(DMF,N));
DIF:=SUM(DMF,N)/(SUM(DMF,N)+SUM(DMZ,N));
DDI:=DIZ-DIF;
DDI>0,BPK;//DDI大于零平空开多;
DDI<0,SPK;//DDI小于零平多开空。
17 DMA模型
DDD := (MA(CLOSE,SHORT)-MA(CLOSE,LONG));
AMA := MA(DDD,M);
CROSS(DDD,AMA),BPK;//DMA向上交叉AMA,买进;
CROSS(AMA,DDD),SPK;//DMA向下交叉AMA,卖出。
18 DMI-QL模型
TR := SMA(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),N,1);
HD := HIGH-REF(HIGH,1);
LD := REF(LOW,1)-LOW;
DMP:= SMA(IFELSE(HD>0&&HD>LD,HD,0),N,1);
DMM:= SMA(IFELSE(LD>0&&LD>HD,LD,0),N,1);
PDI:= DMP*100/TR;
MDI:= DMM*100/TR;
ADX:= SMA(ABS(MDI-PDI)/(MDI+PDI)*100,N,1);
ADXR:=(ADX+REF(ADX,M))/2;
CROSS(PDI,MDI),BK;//PDI上穿MDI开多仓。
CROSS(MDI,PDI),SK;//PDI下穿MDI开空仓。
ADX
ADX
19 DMI日内模型
TR := SMA(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),N,1);
HD := HIGH-REF(HIGH,1);
LD := REF(LOW,1)-LOW;
DMP:= SMA(IFELSE(HD>0&&HD>LD,HD,0),N,1);
DMM:= SMA(IFELSE(LD>0&&LD>HD,LD,0),N,1);
PDI:= DMP*100/TR;
MDI:= DMM*100/TR;
ADX:= SMA(ABS(MDI-PDI)/(MDI+PDI)*100,N,1);
ADXR:=(ADX+REF(ADX,M))/2;
CROSS(PDI,MDI) && TIME>0900 && TIME<1450,BK;//PDI上穿MDI开多仓。
CROSS(MDI,PDI) && TIME>0900 && TIME<1450,SK;//PDI下穿MDI开空仓。
ADX=1450,BP;//当ADX回落超过前N0周期内的M0%时平多仓。或收盘前平仓。
ADX=1450,SP;//当ADX回落超过前N0周期内的M0%时平空仓。或收盘前平仓
20 DPO模型
DPO:=CLOSE-REF(MA(CLOSE,20),11);
CROSS(DPO,O),BK;//当DPO指标数值上穿0线,开多仓。
DPO
CROSS(0,DPO),SK;//DPO下穿0线时开空仓。
DPO>LLV(DPO,N)*(1-0.01*M),BP;//当DPO指标上涨超过N日最低点的M%时平空仓。
21 EMA2模型
EMA210:=EMA2(CLOSE,10);//定义10周期收盘价的加权平均值。
EMA220:=EMA2(CLOSE,20);//定义20周期收盘价的加权平均值。
CROSS(EMA210,EMA220),BK;//10周期均线上穿20周期均线,发出买入开仓指令。
CROSS(EMA220,EMA210),SK;//10周期均线下穿20周期均线,发出卖出开仓指令。
EMA210
EMA210>REF(EMA210,1)&&EMA220>REF(EMA220,1),BP;//10周期均线和20周期均线都下降时,发出平空仓指令。
22 EMA模型
EMA10:=EMA(CLOSE,10);//定义10周期收盘价的指数平滑移动平均值。
EMA20:=EMA(CLOSE,20);//定义20周期收盘价的指数平滑移动平均值。
CROSS(EMA10,EMA20),BK;//10周期均线上穿20周期均线,发出买入开仓指令。
CROSS(EMA20,EMA10),SK;//10周期均线下穿20周期均线,发出卖出开仓指令。
EMA10
EMA10>REF(EMA10,1)&&EMA20>REF(EMA20,1),BP;//10周期均线和20周期均线都上升时,发出平空仓指令。
23 ENV模型
UPPER := MA(CLOSE,N1)*(1+N2/100);
LOWER := MA(CLOSE,N1)*(1-N2/100);
//以上为ENV公式
CROSS(CLOSE,UPPER),BPK;//收盘价上穿UPPER,买平并买开。
CROSS(LOWER,CLOSE),SPK;//收盘价下穿LOWER,卖平并卖开。
24 EXPMA模型
MA1:=EMA(CLOSE,P1);
MA2:=EMA(CLOSE,P2);
MA3:=EMA(CLOSE,P3);
MA4:=EMA(CLOSE,P4);
//以上为EXPMA指标
CROSS(MA2,MA3)&&CLOSE>MA4,BK;//当MA2上穿MA3,并且收盘价大于MA4,发出买入开仓交易指令。
CROSS(MA2,MA1),SP;//当MA2上穿MA1,发出卖出平仓交易指令。
CROSS(MA3,MA2)&&CLOSE
CROSS(MA1,MA2),BP;//当MA1上穿MA2,发出买入平仓交易指令。
25 HCL模型
MAH:=MA(HIGH,N);
MAL:=MA(LOW,N);
MAC:=MA(CLOSE,N);
//以上为HCL指标公式
MAH>REF(MAH,1)&&MAL>REF(MAL,1)&&MAC>REF(MAC,1),BPK;//MAH,MAL,MAC同时上涨,买平并买开。
MAH
26 KDJ模型
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;//定义RSV
K:=SMA(RSV,M1,1); //定义K
D:=SMA(K,M2,1); //定义D
J:=3*K-2*D; //定义J
//以上为KDJ指标公式
J<30&&CROSS(K,D),BPK;//J值小于30并且K、D金叉,买平并买开。
J>70&&CROSS(D,K),SPK;//J值大于70并且K、D死叉,卖平并卖开。
27 KD模型
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,M1,1);
D:=SMA(K,M2,1);
//以上为KD指标公式
CROSS(K,D),BPK;//K,D金叉,买平并买开。
CROSS(D,K),SPK;//K,D死叉,卖平并卖开。
28 LW&R模型
RSV:= (CLOSE-HHV(HIGH,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;//定义RSV
LWR1:=SMA(RSV,3,1);//定义LWR1
LWR2:=SMA(LWR1,3,1);//定义LWR2
CROSS(LWR1,LWR2),BPK;//LWR1上穿LWR2,买平并买开
CROSS(LWR2,LWR1),SPK;//LWR1下穿LWR2,卖平并卖开
29 LW&R模型1
RSV:= (CLOSE-HHV(HIGH,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
LWR1:=SMA(RSV,M1,1);
LWR2:=SMA(LWR1,M2,1);
//以上为LW&R指标公式
LWR1<30&&CROSS(LWR1,LWR2),BK;//LWR1小于30,并且LWR1上穿LWR2,买开。
LWR1>70&&CROSS(LWR2,LWR1),SK;//LWR1大于70,并且LWR1下穿LWR2,卖开。
LWR1>80&&LWR2>70,BP;//LWR1大于80,并且LWR2大于70,平空仓。
LWR1<20&&LWR2<30,SP;//LWR1小于20,并且LWR2小于30,平多仓。
30 MACD模型
DIFF := EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);//定义DIFF
DEA := EMA(DIFF,M);//定义DEA
//以上为MACD指标公式
(DIFF<0)&&(DEA<0)&&(CROSS(DIFF,DEA)),BPK;//DIFF小于0并且DEA小于0并且DIFF上穿DEA,买平并买开
(DIFF>0)&&(DEA>0)&&(CROSS(DEA,DIFF)),SPK;//DIFF大于0并且DEA大于0并且DIFF下穿DEA,卖平并卖开
31 MASS模型
MASS:=SUM(EMA((HIGH-LOW),N1)/EMA(EMA((HIGH-LOW),N1),N1),N2);//定义MASS
MA9:=MA(CLOSE,9);//定义9周期收盘价的均线
CROSS(26.5,MASS)&&MA9>REF(MA9,1),SPK;//MASS下穿26.5,并且MA9在上升趋势中,卖平并卖开
CROSS(26.5,MASS)&&MA9
32 MA模型
MA1:=MA(CLOSE,N);//定义10周期均线
MA1>REF(MA1,1)&&REF(MA1,1)>REF(MA1,2)&&REF(MA1,3)>REF(MA1,2)&&REF(MA1,4)>REF(MA1,3),BPK;//上拐时买平并买开
MA1
33 MA组合模型
MA1:=MA(CLOSE,P1);
MA2:=MA(CLOSE,P2);
MA3:=MA(CLOSE,P3);
MA4:=MA(CLOSE,P4);
//已上是MA组合指标公式
CROSS(MA2,MA3)&&CLOSE>MA4,BK;//当MA2上穿MA3,并且收盘价大于MA4,发出买入开仓交易指令
CROSS(MA2,MA1),SP;//当MA2上穿MA1,发出卖出平仓交易指令
CROSS(MA3,MA2)&&CLOSE
CROSS(MA1,MA2),BP;//当MA1上穿MA2,发出买入平仓交易指令
34 MFI模型
TYP := (HIGH + LOW + CLOSE)/3;
MR:=SUM(IFELSE(TYP>REF(TYP,1),TYP*VOL,0),N)/SUM(IFELSE(TYP
MFI:=100-(100/(1+MR));
//以上是MFI指标公式
MFIREF(CLOSE,1)&&MFI>20&&MFI<80,BPK;//当MFI处于下降趋势,并且收盘价处于上升趋势,并且MFI大于20并且小于80,买平并买开
MFI>REF(MFI,1)&&CLOSE20&&MFI<80,SPK;//当MFI处于上升趋势,并且收盘价处于下降趋势,并且MFI大于20并且小于80,卖平并卖开
35 MICD模型
MI:=CLOSE-REF(CLOSE,1);
AMI:=SMA(MI,N,1);
DIF:=MA(REF(AMI,1),N1)-MA(REF(AMI,1),N2);
MICD:=SMA(DIF,10,1);
//上述是MICD指标公式
(DIF<0)&&(MICD<0)&&(CROSS(DIF,MICD)),BPK;//DIF小于0并且MICD小于0并且DIFF上穿MICD,买平并买开
(DIF>0)&&(MICD>0)&&(CROSS(MICD,DIF)),SPK;//DIF大于0并且MICD大于0并且DIFF下穿MICD,卖平并卖
36 MIKE模型
TYP:=(HIGH+LOW+CLOSE)/3;
LL:=LLV(LOW,N);
HH:=HHV(HIGH,N);
WR:=TYP+(TYP-LL);
MR:=TYP+(HH-LL);
SR:=2*HH-LL;
WS:=TYP-(HH-TYP);
MS:=TYP-(HH-LL);
SS:=2*LL-HH;
//上述是MIKE指标公式
WRREF(WR,2) && MRREF(MR,2) && SRREF(SR,2),BPK;//WR,MR,SR同时下拐,买平并买开
WS>REF(WS,1)&&REF(WS,1)REF(MS,1)&&REF(MS,1)REF(SS,1)&&REF(SS,1)
37 MI模型
A:=CLOSE-REF(CLOSE,N);
MI:=SMA(A,N,1);
//上述是MI指标公式
CROSS(A,MI),BPK;//A金叉MI,买平并买开
CROSS(MI,A),SPK;//A死叉MI,卖平并卖开
38 MTM模型
MTM:=CLOSE-REF(CLOSE,N);//定义MTM
CROSS(MTM,0),BPK;//MTM上穿0轴,买平并买开
CROSS(0,MTM),SPK;//MTM下穿0轴,卖平并卖开
39 MV模型
MV1:=SMA(VOL,N,1);
MV2:=SMA(VOL,M,1);
//上述是MV指标公式
MA60:=MA(CLOSE,60);//定义60周期收盘价均线
CLOSE>MA60&&MV1>REF(MV1,1)&&MV2>REF(MV2,1),BPK;//收盘价在60均线上,并且MV1,MV2处于上升状态中,买平并买开
CLOSEREF(MV1,1)&&MV2>REF(MV2,1),SPK;//收盘价在60均线下,并且MV1,MV2处于上升状态中,卖平并卖
40 PRICEOSC模型
PRICEOSC:=(MA(CLOSE,SHORT)-MA(CLOSE,LONG))/MA(CLOSE,SHORT)*100;
CROSS(PRICEOSC,0),BPK;//向上突破0为买点
CROSS(0,PRICEOSC),SPK;//向下突破0为卖点
41 PUBU模型
PB1:=PUBU(CLOSE,0);
PB2:=PUBU(CLOSE,1);
PB3:=PUBU(CLOSE,2);
PB4:=PUBU(CLOSE,3);
PB5:=PUBU(CLOSE,4);
PB6:=PUBU(CLOSE,5);
CROSS(PB1,PB6),BPK;//短线瀑布线向上穿越长线瀑布,买入。
CROSS(PB6,PB1),SPK;//短线瀑布线向下穿越长线瀑布,卖出。
42 RC模型
RC:=CLOSE/REF(CLOSE,N);
ARC:=SMA(REF(RC,1),N,1);
MA10:=MA(CLOSE,10);
MA20:=MA(CLOSE,20);
CROSS(MA10,MA20)&&ARC>1,BPK;//MA10上穿MA20且RC指标在1上,做多
CROSS(MA20,MA10)&&ARC<=1,SPK;//MA0下穿MA20且RC指标在1下,做空
43 REF模型示例
A:=OPEN-(((REF(HIGH,1)-REF(OPEN,1))+(REF(HIGH,2)-REF(OPEN,2))+(REF(HIGH,3)-REF(OPEN,3))+(REF(HIGH,4)-REF(OPEN,4)))/4)*1.8;
//A=当前周期的开盘价 -[ (一个周期前的最高价减最低价的差+两个周期前的最高价减最低价的差+三个周期前的最高价减最低价的差+四个周期前的最高价减最低价的差)/4]*1.8
REF(CLOSE,1)A,BPK;
//连续四个周期的收盘价小于前一周期的收盘价并且当前周期的收盘价大于A时,发出买平并且买开(反手)交易指令
REF(CLOSE,1)>REF(CLOSE,2)&&REF(CLOSE,2)>REF(CLOSE,3)&&REF(CLOSE,3)>REF(CLOSE,4)&&CLOSE<=A,SPK;
//连续四个周期的收盘价大于前一周期的收盘价并且当前周期的收盘价小于等于A时,发出卖平并且卖开(反手)交易指令
44 ROC模型
ROC:=(CLOSE-REF(CLOSE,N))/REF(CLOSE,N)*100;
ROCMA:=MA(ROC,M);
C>REF(HHV(C,N1),1)&&ROC
CROCMA,BPK;//价格创新低,ROC未配合下降,显示下跌动力减弱
45 RSI模型
LC:=REF(CLOSE,1);//定义LC
RSI1:=SMA(MAX(CLOSE-LC,0),N1,1)/SMA(ABS(CLOSE-LC),N1,1)*100;//定义RSI1
RSI2:=SMA(MAX(CLOSE-LC,0),N2,1)/SMA(ABS(CLOSE-LC),N2,1)*100;//定义RSI2
REF(RSI1,1)<40&&CROSS(RSI1,RSI2),BPK;//上周期的RSI1<40并且RSI1上穿RSI2,买平并买开
REF(RSI1,1)>60&&CROSS(RSI2,RSI1),SPK;//上周期的RSI1>60并且RSI1下穿RSI2,卖平并卖开
46 SAR模型
SARLINE:=ABS(SAR(N,STEP,MVALUE));//定义SARLINE
CROSS(CLOSE,SARLINE),BPK;//最新价上穿SARLINE,买平并买开
CROSS(SARLINE,CLOSE),SPK;//最新价下穿SARLINE,卖平并卖开
47 WR模型
WR:=-100*(HHV(HIGH,14)-CLOSE)/(HHV(HIGH,14)-LLV(LOW,14));
MA60:=MA(CLOSE,60);
C>MA60&&WR<-80,BK;//在60天均线上wr<-80 开多仓
C>MA60&&WR>-20,SP;//在60天均线上wr>-20平多仓
C-20,SK;//在60天均线下wr>-20开空仓
C<-80,BP;//在60天均线下wr<-85平空仓
48 三减六日乖离
B36 := MA(CLOSE,3)-MA(CLOSE,6);
B612 : =MA(CLOSE,6)-MA(CLOSE,12);
REF(B36>REF(HHV(B36,N),1),1)&&B36
REF(B36REF(B36,1),BPK;//反之,买进
49 交叉型模型示例
MA5:=MA(CLOSE,5);
MA10:=MA(CLOSE,10);//10个周期收盘价的简单移动平均
MA20:=MA(CLOSE,20);//20个周期收盘价的简单移动平均
CROSS(MA10,MA20),BK;//当MA10上穿MA20时,发出买入开仓交易指令
CROSS(MA10,MA5),SP;//当MA10上穿MA5时,发出卖出平仓交易指令
CROSS(MA20,MA10),SK;//当MA20上穿MA10时,发出卖出开仓交易指令
CROSS(MA5,MA10),BP;//当MA5上穿MA10时,发出买入平仓交易指令
50 价差型模型示例
MA5:=MA(CLOSE,5);//5个周期收盘价的简单移动平均
MA10:=MA(CLOSE,10);//10个周期收盘价的简单移动平均
CROSS(MA10,MA5)||(CLOSE-MA5)>8,SK;
//10周期均线上穿5周期均线或者收盘价与5周期均线的差值大于8时,发出卖出开仓交易指令
(MA5-CLOSE)>6,BP;
//5周期均线与收盘价的差值大于6时,发出买入平仓交易指令
CROSS(MA5,MA10)||(MA5-CLOSE)>8,BK;
//5周期均线上穿10周期均线或者收盘价与5周期均线的差值大于8时,发出买入开仓交易指令
(CLOSE-MA5)>6,SP;
//收盘价与5周期均线的差值大于6时,发出卖出平仓交易指令
51 多条件模型示例
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
J:=3*K-2*D;
//以上为KDJ公式
MA5:=MA(CLOSE,5);
MA10:=MA(CLOSE,10);
//以上为定义5个周期收盘价的简单移动平均和10个周期收盘价的简单移动平均
(CROSS(MA5,MA10)&&REF(J,1)<70)||(CROSS(K,D)&&J<30),BK;
//5周期均线上穿10周期均线并且前一个周期的J值(KDJ)少于70或者KD金叉时并且J值小于30时发出买入开仓交易指令
CROSS(D,K)&&REF(J,1)>70,SP;
//KD出现死叉并且前一个周期J值大于70时发出卖出平仓交易指令
(CROSS(MA10,MA5)&&REF(J,1)>30)||(CROSS(D,K)&&J>70),SK;
//5周期均线下叉10周期均线并且前一个周期的J值(KDJ)大于30或者KD死叉时并且J值大于70时发出卖出开仓交易指令
CROSS(K,D)&&REF(J,1)<30,BP;
// KD出现金叉并且前一个周期J值小于30时发出买入平仓交易指令
52 慢速KD模型
RSV:= (CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
FASTK:=SMA(RSV,M1,1);
K:=SMA(FASTK,M2,1);
D:=SMA(K,M3,1);
CROSS(K,D),BPK;
CROSS(D,K),SPK;
53 指标转模型示例
//第一步:把KDJ指标公式COPY过来
//第二步:在":"后加上"="变为只定义不用画线,所以把后面的颜色函数(COLORWHITE)也去掉
//第三步:把自己总结的交易条件写上,就可完成交易模型。如下:
//以下是把KDJ指标公式COPY过来,进行修改后的语句
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,M1,1);
D:=SMA(K,M2,1);
J:=3*K-2*D;
//以下是加入的交易指令
CROSS(K,D),BK;//K向上穿越D,发出买开交易指令
CROSS(J,100),SP;//J向上穿越100,发出卖平交易指令
CROSS(D,K),SK;//K向下穿越D,发出卖开交易指令
CROSS(0,J),BP;//J向下穿越0,发出买平交易指令
54 时间函数示例
MA5:=MA(CLOSE,5);//定义5周期的简单移动平均线
MA10:=MA(CLOSE,10);//定义10周期的简单移动平均线
TIME>=0905&&TIME<1455&&CROSS(MA5,MA10),BK;//在9点05分之后14点55分之前的时间段内出现5周期线金*10周期线后买开
TIME>=1455,BP;//当时间到14点55分时自动发出买平指令
TIME>=0905&&TIME<1455&&CROSS(MA10,MA5),SK;//在9点05分之后14点55分之前的时间段内出现5周期线死*10周期线后卖开
TIME>=1455,SP;//当时间到14点55分时自动发出卖平指令
联系客服