1.公式类型说明
调出公式管理器: 功能-公式系统-公式管理器 或者在软件界面使用快捷键 Ctrl+F。
公式类型分为四大类:技术指标公式、条件选股公式、交易系统公式、五彩K线公式。
技术指标公式:用于指标图形的绘制。
条件选股公式:用于条件选股。
交易系统公式:用于专家指示及测参、测指。
五彩K线公式:用于K线模式指示。
这四种公式相互独立,名称可以相同,但其内容和作用不同。
每种类型的公式包括四种形式:
系统加密公式:用绿色图标和锁形符号显示,要进行密码确认
系统公式:用绿色图标显示,可进行删改
用户加密公式:用红色图标和锁形符号显示,要进行密码确认
用户公式:用红色图标显示,可进行删改
1.1 技术指标公式
我们在技术分析界面中见到的指标为技术指标公式,比如MA, KDJ , MACD 等;可以通过公式管理器编写技术指标公式,在公式管理器界面选择技术指标公式,点击右边的"新建"就可进入技术指标公式编辑区。如下图:
在指标公式编辑区,可以通过"引入指标公式",在已有指标的基础上修改指标公式,也可以通过插入函数来实现指标公式的编写;编写完后测试公式,测试通过后退出,输入公式名称就可调出指标公式使用。
1.2 条件选股公式
利用条件选股公式可以把符合一定技术形态的个股选出来,首先在公式管理器中建立条件选股公式,再通过"条件选股"调用条件选股公式。
条件选股调出:功能选股器条件选股
1.3交易系统公式
编写好交易系统公式后,可以叠加到K线上,交易系统自动列出买卖操作信号。
交易系统公式调出操作如下:
在K线界面点击鼠标右键,选择交易系统指标,如下图:
选择一交易系统,点击"确定",交易系统就会叠加在K线上面了。如下图:
1.4.五彩K线公式
编写好五彩公式后,可以叠加到K线上,会把特殊的K线形态用不同的颜色标识出来。
五彩K线公式调出操作如下:
在K线界面点击鼠标右键,选择五彩K线指示,如下图:
选择一五彩K线,点击"确定",五彩K线就会叠加在K线上面了。如下图:
2.公式函数的使用
函数在公式编写非常重要,如果作个比喻,我们用一种语言去告诉电脑我的想法,并且让它去帮我做,那么函数就是这种语言的单词。
我们在公式编辑器中选择插入函数,就可以看到里面有许多的函数,我们在附录中有一个简表,大家可以到那里去检索。如下图:
例一:
一根K线有四个价格组成:
最高价:HIGH
收盘价:CLOSE
最低价:LOW
开盘价:OPEN
成交量:VOL
成交额:AMO
例二:
两条均线不断地交叉,就专门设定了一条函数来描述两条线交叉:CROSS(X,Y)
假如下图中的两条均线一条名叫X,另外一条叫Y
CROSS(X,Y)表示X向上穿过了Y
CROSS(Y,X)表示Y向上穿过了X
例三:
前面的CLOSE,还是VOL,都表示当天,或者您使用的不是日线,那就表示本周期的数据,那么前几天的怎么表示呢?
REF(X,M)
例如:
REF(Close,5)表示5天前的收盘价;
REF(Vol,10)表示10天前的成交量;
这里的M就是参数。
什么是参数?
比如讲:10日均线,您可以把10日当作参数,好处在于,您觉得需要修改成5日的时候,就可以使用一些简单的方法,例如参数精灵来很方便的修改和调整。参数需要名字,例如M就不错。还要规定参数的范围,例如1日至260日。这样我们就可以在1到260之间任意调节M的值了,M最常用的数填在"缺省"一栏,例如你最喜欢用10日均线,那就填10吧。
例四:
如果我想把两个条件并列在一起怎么办?
AND
X AND Y就表示条件X和条件Y
3.公式编写举例
3.1 均线指标编写
进入公式管理器,新建一技术指标公式
依次点击菜单"功能-公式系统-公式管理器",进入公式管理器界面。如下图:
左边的树型列表中选择技术指标公式下面的"均线型",点击右边的"新建",就会进入公式编辑界面,如下图:
填写完公式名称,公式描述,点击"插入函数",选择"简单移动平均",简单移动平均函数的用法会在对话框下边列出来,点击"确定"按钮,对应的函数会在公式编辑框内显示出来。如下图所示:
填写完 MA函数的两个参数,第一个参数填写收盘价,收盘价在公式函数中用 C 表示,第二个参数填写均线日期,可以直接录入一数字,最后用分号结尾(注:公式编写涉及到符号时用英文字符)。如下图所示:
录入后,下面的动态翻译区会自动翻译公式的意义,"收盘价的10日简单移动平均",这样一条10日均线的指标就形成了。
编辑器区的相关说明如下:
公式类型:对应的公式可选择加入不同的类型,设定后查看公式时将会在对应的分类项下列出来;
画线方法:
选择副图,指标将会在副图区显示,选择主图叠加,指标将会在主图区显示(如常用指标MA就是主图指标),也可选择在副图上叠加K线,美国线,收盘站线。
坐标线位置:默认的是自动,系统自动根据指标值的范围设定的区间,如上图的 0.60,0.40,0.2,0, -0.2, 0.00 , -0.2 ;可以手动的设置坐标间隔,用分号分开,手动设置后,默认的将会没有。
额外Y轴分界:在指标上加上一些白色的横线,如上图所示。
点击 "测试公式",若显示测试通过,点击"确定"按钮保存公式。
调出公式时,键盘输入公式名字 JX1 回车,如下图所示:
3.2简单条件选股公式编写
下面编写一选股公式,要求选出"股价小于每股净资产"的个股。
进入公式管理器,新建一条件选股公式
依次点击菜单"功能-公式系统-公式管理器",进入公式管理器界面。如下图:
选择左边树型列表中条件选股公式下面的其它类型,点击"新建",如下图:
输入公式名称,公式描述, 如下图所示:
点"插入函数",选择"收盘价",点击"确定",对应的函数就到了编辑区,如下图所示:
录入空格 ,输入 小于号, 再点"插入函数",在财务函数中找到每股净资产放到后面,以分号结尾,如下图所示:
点击 "测试公式",若显示测试通过,点击"确定"按钮保存公式。
4.基础语法
{ } 是解释,不输出,为了提示自己和别人,便于看懂公式
:= 赋值符,意为“相当于”,上图它前面的a1,a2,a3都是随便输的名称。
: 输出符 先定义条件,这是告诉软件要做的事
; 分段符,表示一段完成
, 分节符
4.1、close 是收盘价的意思。CLOSE<10 意思是收盘价小于10元
4.2、vol是成交量的意思。capital是流通股本 VOL/CAPITAL*100>5 意思是成交量除以流通股本,再乘以100.(因为成交量是按手计算,而股本是按股算。)也就是换手率小于5.
4.3、every 是一直存在的意思,open 是开盘价的意思。 使用方法是 EVERY(条件,N) 本公式条件是close>open 阳线。N 是满足的天数。EVERY(CLOSE>OPEN,3) 表示3日内一直阳线。
4.4、and 是并且的意思。有时有好几个条件,中间用 and 连接。
5.附公式函数列表
5.1行情函数
HIGH 最高价
返回该周期最高价。
用法: HIGH
H 最高价
返回该周期最高价。
用法: H
LOW 最低价
返回该周期最低价。
用法: LOW
L 最低价
返回该周期最低价。
用法: L
CLOSE 收盘价
返回该周期收盘价。
用法: CLOSE
C 收盘价
返回该周期收盘价。
用法: C
VOL 成交量
返回该周期成交量。
用法: VOL
V 成交量
返回该周期成交量。
用法: V
OPEN 开盘价
返回该周期开盘价。
用法: OPEN
O: 开盘价
返回该周期开盘价。
用法: O
ADVANCE 上涨家数
返回该周期上涨家数。
用法: ADVANCE (本函数仅对大盘有效)
DECLINE 下跌家数
返回该周期下跌家数。
用法: DECLINE (本函数仅对大盘有效)
AMOUNT 成交额
返回该周期成交额。
用法: AMOUNT
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。
(本函数仅个股在分笔成交分析周期有效)]
4.2时间函数
DATE 日期
取得该周期从1900以来的年月日。
用法: DATE 例如函数返回1000101,表示2000年1月1日。
TIME 时间
取得该周期的时分秒。
用法: TIME 函数返回有效值范围为(000000-235959)。
YEAR 年份
取得该周期的年份。
用法:YEAR
MONTH 月份
取得该周期的月份。
用法:MONTH 函数返回有效值范围为(1-12)。
WEEK 星期
取得该周期的星期数。
用法: WEEK 函数返回有效值范围为(0-6),0表示星期天。
DAY 日期
取得该周期的日期。
用法: DAY 函数返回有效值范围为(1-31)。
HOUR 小时
取得该周期的小时数。
用法: HOUR 函数返回有效值范围为(0-23),对于日线及更长的分析周期值为0。
MINUTE 分钟
取得该周期的分钟数。
用法: MINUTE 函数返回有效值范围为(0-59),对于日线及更长的分析周期值为0。
FROMOPEN 分钟
求当前时刻距开盘有多长时间。
用法: FROMOPEN 返回当前时刻距开盘有多长时间,单位为分钟。
例如: FROMOPEN 当前时刻为早上十点,则返回31。
4.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。
BARSCOUNT 有效数据周期数
求总的周期数。
用法: BARSCOUNT(X) 第一个有效数据到当前的天数。
例如: BARSCOUNT(CLOSE) 对于日线数据取得上市以来总交易日数,对于分笔成交取得当日成交笔数,对于1分钟线取得当日交易分钟数。
CURRBARSCOUNT 到最后交易日的周期数
求到最后交易日的周期数.
用法:
CURRBARSCOUNT 求到最后交易日的周期数
TOTALBARSCOUNT 总的周期数
求总的周期数.
用法:
TOTALBARSCOUNT 求总的周期数
BARSLAST 上一次条件成立位置
上一次条件成立到当前的周期数。
用法: BARSLAST(X) 上一次X不为0到现在的天数。
例如: BARSLAST(CLOSE/REF(CLOSE,1)>=1.1) 表示上一个涨停板到当前的周期数。
BARSSINCE 第一个条件成立位置
第一个条件成立到当前的周期数。
用法: BARSSINCE(X) 第一次X不为0到现在的天数。
例如: BARSSINCE(HIGH>10) 表示股价超过10元时到当前的周期数。
COUNT 统计
统计满足条件的周期数。
用法: COUNT(X,N) 统计N周期中满足X条件的周期数,若N=0则从第一个有效值开始。
例如: COUNT(CLOSE>OPEN,20) 表示统计20周期内收阳的周期数。
HHV 最高值
求最高值。
用法: HHV(X,N) 求N周期内X最高值,N=0则从第一个有效值开始。
例如: HHV(HIGH,30) 表示求30日最高价。
HHVBARS 上一高点位置
求上一高点到当前的周期数。
用法: HHVBARS(X,N) 求N周期内X最高值到当前周期数,N=0表示从第一个有效值开始统计。
例如: HHVBARS(HIGH,0) 求得历史新高到到当前的周期数。
LLV 最低值
求最低值。
用法: LLV(X,N) 求N周期内X最低值,N=0则从第一个有效值开始。
例如: LLV(LOW,0) 表示求历史最低价。
LLVBARS 上一低点位置
求上一低点到当前的周期数。
用法: LLVBARS(X,N) 求N周期内X最低值到当前周期数,N=0表示从第一个有效值开始统计。
例如: LLVBARS(HIGH,20) 求得20日最低点到当前的周期数。
REVERSE 求相反数
求相反数。
用法: REVERSE(X) 返回-X。
例如: REVERSE(CLOSE) 返回-CLOSE。
REF 向前引用
引用若干周期前的数据。
用法: REF(X,A) 引用A周期前的X值。
例如: REF(CLOSE,1) 表示上一周期的收盘价,在日线上就是昨收。
REFDATE 指定引用
引用指定日期的数据。
用法: REFDATE(X,A) 引用A日期的X值。
例如: REF(CLOSE,20011208) 表示2001年12月08日的收盘价。
SUM 总和
求总和。
用法: SUM(X,N) 统计N周期中X的总和,N=0则从第一个有效值开始。
例如: SUM(VOL,0) 表示统计从上市第一天以来的成交量总和。
FILTER 过滤
过滤连续出现的信号。
用法: FILTER(X,N) X满足条件后,删除其后N周期内的数据置为0。
例如: FILTER(CLOSE>OPEN,5) 查找阳线,5天内再次出现的阳线不被记录在内。
SUMBARS 累加到指定值的周期数
向前累加到指定值到现在的周期数。
用法: SUMBARS(X,A) 将X向前累加直到大于等于A,返回这个区间的周期数。
例如: SUMBARS(VOL,CAPITAL) 求完全换手到现在的周期数。
SMA 移动平均
返回移动平均。
用法: SMA(X,N,M) X的M日移动平均,M为权重,如Y=(X*M+Y'*(N-M))/N
MA 简单移动平均
返回简单移动平均。
用法: MA(X,M) X的M日简单移动平均。
DMA 动态移动平均
求动态移动平均。
用法: DMA(X,A) 求X的动态移动平均。
算法: 若Y=DMA(X,A)则 Y=A*X+(1-A)*Y',其中Y'表示上一周期Y值,A必须小于1。
例如: DMA(CLOSE,VOL/CAPITAL) 表示求以换手率作平滑因子的平均价。
EMA(或EXPMA) 指数移动平均
返回指数移动平均。
用法: EMA(X,M) X的M日指数移动平均。
MEMA 平滑移动平均
返回平滑移动平均
用法: MEMA(X,M) X的M日平滑移动平均。
MEMA(X,N)与MA的差别在于起始值为一平滑值,而不是初始值
EXPMEMA 指数平滑移动平均
返回指数平滑移动平均。
用法: EXPMEMA(X,M) X的M日指数平滑移动平均。
EXPMEMA同EMA(即EXPMA)的差别在于他的起始值为一平滑值
RANGE 介于某个范围之间
用法: RANGE(A,B,C) A在B和C。
例如: RANGE(A,B,C)表示A大于B同时小于C时返回1,否则返回0。
CONST 取值设为常数
用法: CONST(A) 取A最后的值为常量.
例如: CONST(INDEXC)表示取大盘现价。
4.4逻辑函数
CROSS 上穿
两条线交叉。
用法: CROSS(A,B) 表示当A从下方向上穿过B时返回1,否则返回0。
例如: CROSS(MA(CLOSE,5),MA(CLOSE,10)) 表示5日均线与10日均线交金叉。
LONGCROSS 维持一定周期后上穿
两条线维持一定周期后交叉。
用法: LONGCROSS(A,B,N) 表示A在N周期内都小于B,本周期从下方向上穿过B时返回1,否则返回0。
UPNDAY 连涨
返回是否连涨周期数。
用法: UPNDAY(CLOSE,M) 表示连涨M个周期。
DOWNNDAY 连跌
返回是否连跌周期。
用法: DOWNNDAY(CLOSE,M) 表示连跌M个周期。
NDAY 连大
返回是否持续存在X>Y。
用法: NDAY(CLOSE,OPEN,3) 表示连续3日收阳线。
EXIST 存在
是否存在。
用法: EXIST(CLOSE>OPEN,10) 表示前10日内存在着阳线。
EVERY 一直存在
一直存在。
用法: EVERY(CLOSE>OPEN,10) 表示前10日内一直阳线。
LAST 持续存在
用法: LAST(X,A,B) A>B,表示从前A日到前B日一直满足X条件。若A为0,表示从第一天开始,B为0,表示到最后日止。
例如: LAST(CLOSE>OPEN,10,5) 表示从前10日到前5日内一直阳线。
4.5算术函数
NOT 取反
求逻辑非。
用法: NOT(X) 返回非X,即当X=0时返回1,否则返回0。
例如: NOT(ISUP) 表示平盘或收阴。
IF 逻辑判断
根据条件求不同的值。
用法: IF(X,A,B) 若X不为0则返回A,否则返回B。
例如: IF(CLOSE>OPEN,HIGH,LOW)表示该周期收阳则返回最高值,否则返回最低值。
IFF 逻辑判断
根据条件求不同的值。
用法: IFF(X,A,B) 若X不为0则返回A,否则返回B。
例如: IFF(CLOSE>OPEN,HIGH,LOW) 表示该周期收阳则返回最高值,否则返回最低值。
IFN 逻辑判断
根据条件求不同的值。
用法: IFN(X,A,B) 若X不为0则返回B,否则返回A。
例如: IFN(CLOSE>OPEN,HIGH,LOW) 表示该周期收阴则返回最高值,否则返回最低值。
MAX 较大值
求最大值。
用法: MAX(A,B) 返回A和B中的较大值。
例如: MAX(CLOSE-OPEN,0) 表示若收盘价大于开盘价返回它们的差值,否则返回0。
MIN 较小值
求最小值。
用法: MIN(A,B) 返回A和B中的较小值。
例如: MIN(CLOSE,OPEN) 返回开盘价和收盘价中的较小值。
4.6数学函数
ACOS 反余弦
反余弦值。
用法: ACOS(X) 返回X的反余弦值。
ASIN 反正弦
反正弦值。
用法: ASIN(X) 返回X的反正弦值。
ATAN 反正切
反正切值。
用法: ATAN(X) 返回X的反正切值。
COS 余弦
余弦值。
用法: COS(X) 返回X的余弦值。
SIN 正弦
正弦值。
用法: SIN(X) 返回X的正弦值。
TAN 正切
正切值。
用法: TAN(X) 返回X的正切值。
EXP 指数
指数。
用法: EXP(X) e的X次幂。
例如: EXP(CLOSE) 返回e的CLOSE次幂。
LN 自然对数
求自然对数。
用法: LN(X) 以e为底的对数。
例如: LN(CLOSE) 求收盘价的对数。
LOG 对数
求10为底的对数。
用法: LOG(X) 取得X的对数。
例如: LOG(100) 等于2。
SQRT 开方
开平方。
用法: SQRT(X) 求X的平方根。
例如: SQRT(CLOSE) 收盘价的平方根。
ABS 绝对值
求绝对值。
用法: ABS(X) 返回X的绝对值。
例如: ABS(-34) 返回34。
POW 乘幂
乘幂。
用法: POW(A,B) 返回A的B次幂。
例如: POW(CLOSE,3) 求得收盘价的3次方。
CEILING 向上舍入
向上舍入。
用法: CEILING(A) 返回沿A数值增大方向最接近的整数。
例如: CEILING(12.3) 求得13,CEILING(-3.5)求得-3。
FLOOR 向下舍入
向下舍入。
用法: FLOOR(A) 返回沿A数值减小方向最接近的整数。
例如: FLOOR(12.3) 求得12,FLOOR(-3.5)求得-4。
INTPART 取整
用法: INTPART(A) 返回沿A绝对值减小方向最接近的整数。
例如: INTPART(12.3) 求得12,INTPART(-3.5)求得-3。
BETWEEN: 介于
介于。
用法: BETWEEN(A,B,C) 表示A处于B和C之间时返回1,否则返回0。
例如: BETWEEN(CLOSE,MA(CLOSE,10),MA(CLOSE,5))表示收盘价介于5日均线和10日均线之间。
4.7统计函数
AVEDEV 平均绝对方差
AVEDEV(X,N) 返回平均绝对方差。
DEVSQ 数据偏差平方和
DEVSQ(X,N) 返回数据偏差平方和。
FORCAST 线性回归预测值
FORCAST(X,N) 返回线性回归预测值。
SLOPE 线性回归斜率
SLOPE(X,N) 返回线性回归斜率。
STD 估算标准差
STD(X,N) 返回估算标准差。
STDP 总体标准差
STDP(X,N) 返回总体标准差。
VAR 估算样本方差
VAR(X,N) 返回估算样本方差。
VARP 总体样本方差
VARP(X,N) 返回总体样本方差 。
4.8横向统计
BLOCKSETNUM 板块股票个数
用法: BLOCKSETNUM(板块名称) 返回该板块股票个数。
HORCALC 多股统计
用法: HORCALC(板块名称,数据项,计算方式,权重)
数据项:100-HIGH,101-OPEN,102-LOW,103-CLOSE,104-VOL,105-涨幅
计算方式: 0-累加,1-排名次
权重: 0-总股本,1-流通股本,2-等同权重,3-流通市值
4.9形态函数
COST 成本分布
成本分布情况。
用法: COST(10),表示10%获利盘的价格是多少,即有10%的持仓量在该价格以下,其余90%在该价格以上,为套牢盘。
该函数仅对日线分析周期有效。
PEAK 波峰值
前M个ZIG转向波峰值。
用法: PEAK(K,N,M) 表示之字转向ZIG(K,N)的前M个波峰的数值,M必须大于等于1。
例如: PEAK(1,5,1) 表示%5最高价ZIG转向的上一个波峰的数值。
PEAKBARS 波峰位置
前M个ZIG转向波峰到当前距离。
用法: PEAKBARS(K,N,M) 表示之字转向ZIG(K,N)的前M个波峰到当前的周期数,M必须大于等于1。
例如: PEAKBARS (0,5,1) 表示%5开盘价ZIG转向的上一个波峰到当前的周期数。
SAR 抛物转向
抛物转向。
用法: SAR(N,S,M),N为计算周期,S为步长,M为极值。
例如: SAR(10,2,20) 表示计算10日抛物转向,步长为2%,极限值为20%。
SARTURN 抛物转向点
抛物转向点。
用法: SARTURN(N,S,M) N为计算周期,S为步长,M为极值,若发生向上转向则返回1,若发生向下转向则返回-1,否则为0。
其用法与SAR函数相同。
TROUGH 波谷值
前M个ZIG转向波谷值。
用法: TROUGH(K,N,M) 表示之字转向ZIG(K,N)的前M个波谷的数值,M必须大于等于1。
例如: TROUGH(2,5,2) 表示%5最低价ZIG转向的前2个波谷的数值。
TROUGHBARS 波谷位置
前M个ZIG转向波谷到当前距离。
用法: TROUGHBARS(K,N,M) 表示之字转向ZIG(K,N)的前M个波谷到当前的周期数,M必须大于等于1。
例如: TROUGH(2,5,2) 表示%5最低价ZIG转向的前2个波谷到当前的周期数。
WINNER 获利盘比例
获利盘比例。
用法: WINNER(CLOSE) 表示以当前收市价卖出的获利盘比例。
例如: 返回0.1表示10%获利盘,WINNER(10.5)表示10.5元价格的获利盘比例。
该函数仅对日线分析周期有效。
LWINNER 近期获利盘比例
近期获利盘比例。
用法: LWINNER(5,CLOSE) 表示最近5天的那部分成本以当前收市价卖出的获利盘比例。例如返回0.1表示10%获利盘。
PWINNER 远期获利盘比例
远期获利盘比例。
用法: PWINNER(5,CLOSE) 表示5天前的那部分成本以当前收市价卖出的获利盘比例。例如返回0.1表示10%获利盘。
COSTEX 区间成本
区间成本。
用法: COSTEX(CLOSE,REF(CLOSE)),表示近两日收盘价格间筹码的成本,例如返回10表示区间成本为20元。
该函数仅对日线分析周期有效。
PPART 远期成本分布比例
远期成本分布比例。
用法: PPART(10),表示10前的成本占总成本的比例,0.2表示20%。
ZIG 之字转向
之字转向。
用法: ZIG(K,N) 当价格变化量超过N%时转向,K表示0:开盘价,1:最高价,2:最低价,3:收盘价,其余:数组信息
例如: ZIG(3,5) 表示收盘价的5%的ZIG转向。
4.10 大盘函数
INDEXA 返回大盘成交额
INDEXADV 返回上涨家数
INDEXDEC 返回下跌家数
INDEXC 返回大盘收盘价
INDEXH 返回大盘最高价
INDEXL 返回大盘最低价
INDEXO 返回大盘开盘价
INDEXV 返回大盘成交量
4.11绘图函数
PLOYLINE 折线段
在图形上绘制折线段。
用法: PLOYLINE(COND,PRICE),当COND条件满足时,以PRICE位置为顶点画折线连接。
例如: PLOYLINE(HIGH>=HHV(HIGH,20),HIGH)表示在创20天新高点之间画折线。
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天新低之间画直线并且向右延长。
DRAWKLINE 绘制K线
用法: DRAWKLINE(HIGH,OPEN,LOW,CLOSE) 以HIGH为最高价,OPEN为开盘价,LOW为最低,CLOSE收盘画K线。
STICKLINE 绘制柱线
在图形上绘制柱线。
用法: STICKLINE(COND,PRICE1,PRICE2,WIDTH,EMPTY),当COND条件满足时,在PRICE1和PRICE2位置之间画柱状线,宽度为WIDTH(10为标准间距),EMPTH不为0则画空心柱。
例如: STICKLINE(CLOSE>OPEN,CLOSE,OPEN,0.8,1)表示画K线中阳线的空心柱体部分。
DRAWICON 绘制图标
在图形上绘制小图标。
用法: DRAWICON(COND,PRICE,TYPE),当COND条件满足时,在PRICE位置画TYPE号图标。
例如: DRAWICON(CLOSE>OPEN,LOW,1) 表示当收阳时在最低价位置画1号图标。图标一共有九个,图形如附图。序号,最下面的是"1"号,最上面的是"9"号。
DRAWTEXT 显示文字
在图形上显示文字。
用法: DRAWTEXT(COND,PRICE,TEXT),当COND条件满足时,在PRICE位置书写文字TEXT。
例如: DRAWTEXT(CLOSE/OPEN>1.08,LOW,'大阳线')表示当日涨幅大于8%时在最低价位置显示'大阳线'字样。
4.12财务函数
FINANCE(1) 总股本(股)
FINANCE(2) 国家股(股)
FINANCE(3) 发起人法人股(万股)
FINANCE(4) 法人股(股)
FINANCE(5) B股(股)
FINANCE(6) H股(股)
FINANCE(7) 流通股本(股)
CAPITAL 流通股本(手)
FINANCE(8) 职工股(股)
FINANCE(10) 总资产
FINANCE(11) 流动资产
FINANCE(12) 固定资产
FINANCE(13) 无形资产
FINANCE(14) 长期投资
FINANCE(15) 流动负债
FINANCE(16) 长期负债
FINANCE(17) 资本公积金
FINANCE(18) 每股公积金
FINANCE(19) 股东权益
FINANCE(20) 主营收入
FINANCE(21) 主营利益
FINANCE(22) 其它利益
FINANCE(23) 营业利益
FINANCE(24) 投资收益
FINANCE(25) 补贴收入
FINANCE(26) 营业外收支
FINANCE(27) 上年损益调整
FINANCE(28) 利益总额
FINANCE(29) 税后利益
FINANCE(30) 净利益
FINANCE(31) 未分配利益
FINANCE(32) 每股未分配利润
FINANCE(33) 每股收益
FINANCE(34) 每股净资产
FINANCE(35) 调整每股净资产
FINANCE(36) 股东权益比
FINANCE(40) 流通市值
FINANCE(41) 总市值
FINANCE(42) 上市日期
4.13动态行情函数
DYNAINFO(3) 前收盘价
DYNAINFO(4) 今开
DYNAINFO(5) 最高
DYNAINFO(6) 最低
DYNAINFO(7) 现价
DYNAINFO(8) 总手
DYNAINFO(9) 现手
DYNAINFO(10) 总成交金额
DYNAINFO(11) 均价
DYNAINFO(12) 日升跌
DYNAINFO(13) 振幅度
DYNAINFO(14) 涨幅度
DYNAINFO(15) 委托比
DYNAINFO(16) 委量差
DYNAINFO(17) 量比
DYNAINFO(20) 最新叫买价
DYNAINFO(21) 最新叫卖价
DYNAINFO(22) 内盘
DYNAINFO(23) 外盘
DYNAINFO(25) 买一量
DYNAINFO(26) 买二量
DYNAINFO(27) 买三量
DYNAINFO(28) 买一价
DYNAINFO(29) 买二价
DYNAINFO(30) 买三价
DYNAINFO(31) 卖一量
DYNAINFO(32) 卖二量
DYNAINFO(33) 卖三量
DYNAINFO(34) 卖一价
DYNAINFO(35) 卖二价
DYNAINFO(36) 卖三价
DYNAINFO(37) 换手率
DYNAINFO(39) 市盈率
DYNAINFO(40) 成交方向
DYNAINFO(50) 采样点数
DYNAINFO(51) 内外比
DYNAINFO(52) 多空平衡
DYNAINFO(53) 多头获利
DYNAINFO(54) 空头回补
DYNAINFO(55) 多头止损
DYNAINFO(56) 空头止损
DYNAINFO(57) 笔升跌
4.14线形和颜色属性
COLOR 自定义色
格式为COLOR+"RRGGBB":RR、GG、BB表示红色、绿色和蓝色的分量,每种颜色的取值范围是00-FF,采用了16进制。
例如:MA5:MA(CLOSE,5),COLOR00FFFF 表示纯红色与纯绿色的混合色:COLOR808000表示淡蓝色和淡绿色的混合色。
COLORBLACK 画黑色
COLORBLUE 画蓝色 COLORff0000
COLORGREEN 画绿色 COLOR00FF00
COLORCYAN 画青色
COLORRED 画红色 COLOR0000FF
COLORMAGENTA 画洋红色
COLORBROWN 画棕色
COLORLIGRAY 画淡灰色
COLORGRAY 画深灰色
COLORLIBLUE 画淡蓝色
COLORLIGREEN 画淡绿色
COLORLICYAN 画淡青色
COLORLIRED 画淡红色
COLORLIMAGENTA 画淡洋红色
COLORYELLOW 画黄色
COLORWHITE 画白色
LINETHICK 线型粗细
格式:"LINETHICK+(1-9)" 参数的取值范围在1—9之间,"LINETHICK1"表示最细的线,而"LINETHICK9"表示最粗的线。
STICK 画柱状线
COLORSTICK 画彩色柱状线
VOLSTICK 画彩色柱状线
成交量柱状线,当股价上涨时显示红色空心柱,则显示绿色实心柱
LINESTICK 同时画出柱状线和指标线
CROSSDOT 画小叉线
CIRCLEDOT 画小圆圈线
POINTDOT 画小圆点线
公式系统(中级)
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倍:
VOL/REF(VOL,1)<0.5;
今日的五日均量比五天前的五日均量缩小了一半:
AA:=MA(VOL,5);
BB:=REF(AA,5);
AA/BB<0.5;
今天的成交量不足整个流通盘的0.5%:
VOL/CAPITAL<0.5/100;
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);
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%以内。
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日均线多头排列
定义:均线多头排列,是指从短周期到长周期均线,从上而下的依次排列
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;
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);
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线上方出现了一个绿色的向下箭头,提示卖出。效果如下:
黄昏之星是一个卖出信号,与之相对应的是一个买入信号,称为早晨之星,如下图:
指标源码请参考通达信中的相关选股公式。
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);
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的分析界面形成图表、曲线,以方便和寻找有意义的技术图形和技术特征。
3.2 条件选股公式编辑器
也就是通常意义上解释的智能选股。但我们的目的在于建立一个完全开放、自由的选股平台,可以通过对该平台的熟练使用,借助计算机的高速和准确的检索功能寻找满足您的理解的股票形态和技术特征,如果和预警系统结合起来用,将可以在盘中实时提示符合条件的股票。条件选股公式有且仅有一个输出,这是它和技术指标不同的地方。
3.3 五彩K线公式编辑器
准确讲,该编辑器的功能是附属于条件选股功能之上的,我们可以通过该功能将满足条件的连续K线形态赋予颜色,区别了其它的K线。 条件选股公式与五彩K线公式的区别:条件选股公式和五彩K线公式都有且仅有一个输出,其目的都是为投资者提供买入或卖出点的指示,不同之处在于:条件选股公式仅对最近数据提示买入或卖出,而五彩K线公式则对输入的所有历史数据进行提示。另外,五彩K线公式的输出是在K线图上,通过各种颜色对提示数据进行标识,条件选股公式的输出是找出符合最近条件的所有股票。
3.4 交易系统公式编辑器
交易系统公式是通过设定买入和卖出点(有且仅有这两个输出),由计算机进行模拟操作。以此为依据,系统一方面可以进行五彩K线公式的功能,同时提示买入和卖出;另一方面可以通过模拟操作,对指标买卖的收益、指标的最佳参数及最佳指标等各情形进行测试。交易系统是在条件选股功能上的一次大的延伸,旨在建立一套完整的交易规则体系,通过该编辑器对各个相关的交易环节,包括买入的切入、卖出、止损以及整体的交易性能检验等等作出定量的规定,帮助投资者建立一套属于自己的买卖规则和理论。
公式系统(高级)
1. 特殊公式脚本编写
要编写一个公式,必须要明确这个公式对应的理论知识。一套完整的理论知识且能在通达信的公式平台上做成公式还要满足如下要求:
从该理论应能分析出公式启动的起始数据。如股票的开高低收价格、成交量、各财务数据、各即时数据、时间数据、一些常见的技术分析概念、其他理论的结果等,这些数据大部分是系统提供的,而最后两项则要从其他公式中得来也就是对应于公式编写中的指标引用操作(当然在这公式编写前要确保该要引用的指标已实现)。
从理论中应能分析出起始数据到结果的明确运算过程。在公式平台中提供了一些系统函数,这些函数包含了部分常用的运算过程(如HHV(X,N) 可求N周期内X最高值)。如果理论中的运算过程拆解完全后,能由公式平台中的函数及允许的基本运算全部组成就可以编写成公式了。
在之前的学习当中,我们已经对公式系统、公式脚本编辑有了基本的认识。公式系统提供给我们的基本函数、系统公式,就是我们运用公式系统编写自己的公式时的基本元素。对于一些常见的技术分析概念的编写在上一章节已经给出了介绍和示例,本章节主要来介绍一下在公式脚本编写如果用系统函数及基本运算来解决一些特殊难题。
1.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线的时间得来的。
1.2 跨周期引用数据
在同一个公式脚本中,所有变量的数据周期都是相同的,就是调用公式时设置的周期。在公式脚本中要用其它周期的数据,共有两种方式:
对变量用变周期符号(#),改变其周期。这种方式有局限性,只能在小周期公式中得到大周期数据,且仅适用于一些基本数据,如close,high,low,open等。
示例脚本:
日最高价:H;
周最高价:H#WEEK;
运行示例:
在公式脚本中调用其它公式以取得其它周期的数据。调用其它公式,并用#设置其周期。如,公式脚本在日线下运行时,可用Kdj.k#week;来获得kdj在周线下的k值,另属于于同一周线的日线将获得相同的K值。
示例脚本:
公式1:
公式名称:JBSJ
公式描述:基本数据
公式脚本:
JC:C;{当前周期收盘价}
JH:H;{当前周期最高价}
JL:L;{当前周期最低价}
JO:O;{当前周期开盘价}
JYC:REF(C,1);{前一个周期收盘价}
公式2:
公式名称:TEST049
公式脚本:
日线开盘价:JBSJ.JO#DAY;
周线开盘价:O;
月线开盘价:JBSJ.JO#MONTH;
运行示例:
使用跨周期引用数据时要注意:
1.可供引用的周期类型有:
MIN1,MIN5,MIN15,MIN30,MIN60,DAY,WEEK,MONTH
分别表示将1,5,15,30,60分钟K线数据,以及日,周,月K线数据,代入被引用的公式,进行运算。
2.意义:
可将大周期内跑的数据,引用到小周期内来跑;也可将小周期内跑的数据,引用到大周期内来跑。
3.切勿对开高低收以外的数据直接使用变周期转换!
4.切勿对大周期内跑的数据使用小周期转换!无论是开高低收等基本数据、还是自定义变量,都无法从大周期数据直接转换成小周期数据,只能通过公式引用来获得小周期数据。
1.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日间的最高价}
2)某相对时间段最高价
60天前到40天前之间的最高价
REF(HHV(H,60-40),40);
1.4 在某个时间段内某条件满足
TT:=C/REF(C,1)>1.095;{是否涨停}
COUNT(TT,20)>0;{二十个交易日内时候涨停过}
上面的脚本配合1.3中示例可以写出历史某绝对时间段,或相对时间内是否涨停过的选股公式。
上图中的效果还可以借助Filter这个函数来实现。
1.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);
运行示例:
1.6 创新高周期数
成交量创新高周期数脚本:
FV:=IF(BARSCOUNT(C)=0,9999999999,VOL);
量创新高周期数:SUMBARS(REF(FV,1)-FV,0);
{这里的关键是 REF(FV,1)-FV ,想想看写成 FV-REF(FV,1) 行不行?};
1.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);
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:="JBSJ.JYC#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:="FZMN.DJH#MIN5";
JO:=" FZMN.DJO#MIN5";
JLC:=" FZMN.DJL#MIN5";
JC:=" FZMN.DJC#MIN5";
DRAWKLINE(JH,JO,JLC,JC);
附录:全部指标函数
行情函数
HIGH 最高价
H 最高价
LOW 最低价
L 最低价
CLOSE 收盘价
C 收盘价
VOL 成交量(手)
V 成交量(手)
OPEN 开盘价
O 开盘价
ADVANCE 上涨家数
DECLINE 下跌家数
AMOUNT 成交额(元)
VOLINSTK 期货持仓量
QHJSJ 期货结算价
BUYVOL 外盘(手)
SELLVOL 内盘(手)
ISBUYORDER 主动性买单
DHIGH 不定周期最高价
DOPEN 不定周期开盘价
DLOW 不定周期最低价
DCLOSE 不定周期收盘价
DVOL 不定周期成交量
SETCODE 深沪市场类型
时间函数
PERIOD 周期
DATE 日期
TIME 时间
YEAR 年份
MONTH 月份
WEEKOFYEAR 年内星期
WEEKDAY 星期
DAY 日
HOUR 小时
MINUTE 分钟
FROMOPEN 开盘分钟数
TOTALFZNUM 总分钟数
DATETODAY 转换天数
DAYTODATE 转换日期
TIMETOSEC 当日秒数
SECTOTIME 转换时间
引用函数
DRAWNULL 无效数
BACKSET 向前赋值
ALIGNRIGHT 有效数据右对齐
BARSCOUNT 有效数据周期数
BARSTATUS 数据位置状态
CURRBARSCOUNT 到最后交易的周期
TOTALBARSCOUNT 总的周期数
ISLASTBAR 是否最后一个周期
BARSLAST 上一条件成立位置
BARSNEXT 下一条件成立位置
BARSSINCEN N周期内首个条件成立位置
BARSSINCE 首个条件成立位置
COUNT 统计
BARSLASTCOUNT 条件连续成立次数
DMA 动态移动平均
HHV 最高值
HHVBARS 上一高点位置
HOD 高值名次
LLV 最低值
LLVBARS 上一低点位置
LOD 低值名次
REVERSE 求相反数
REF 日前的
REFV 日前的
REFX 日后的
REFXV 日后的
REFDATE 日
CALCSTOCKINDEX 指标引用
SUM 累和
MULAR 累乘
FILTER 过滤
FILTERX 反向过滤
TFILT 区间过滤
TFILTER 交易信号过滤
TTFILTER 交易信号过滤
TR 真实波幅
SUMBARS 累加到指定值的周期数
SMA 移动平均
TMA 移动平均
MA 简单移动平均
WMA 加权移动平均
EMA 指数移动平均
MEMA 平滑移动平均
EXPMA 指数移动平均
EXPMEMA 指数平滑移动平均
XMA 偏移移动平均
RANGE 介于某个范围之间
CONST 取值设为常数
TOPRANGE 当前值是近多少周期内...
LOWRANGE 当前值是近多少周期内...
FINDHIGH 寻找指定周期内的特定...
FINDHIGHBARS 寻找指定周期内的特定...
FINDLOW 寻找指定周期内的特定...
FINDLOWBARS 寻找指定周期内的特定...
SIGNALS_SYS 系统信号读取函数
SIGNALS_USER 引用自定义序列数据
EXTERNSTR 引用自定义外部字符串...
EXTERNVALUE 引用自定义外部数值数据
字串和板块函数
CODE 股票代码
STKNAME 股票名称
HYBLOCK 所属行业(字串)
DYBLOCK 所属地域(字串)
GNBLOCK 所属概念板块(字串)
FGBLOCK 所属风格板块(字串)
ZSBLOCK 所属指数板块(字串)
ZHBLOCK 所属组合板块(字串)
ZDBLOCK 所属自定义板块(字串)
GNBLOCKNUM 所属概念板块(个数)
FGBLOCKNUM 所属风格板块(个数)
ZSBLOCKNUM 所属指数板块(个数)
ZHBLOCKNUM 所属组合板块(个数)
ZDBLOCKNUM 所属自定义板块(个数)
INBLOCK 属于某板块
NAMELIKE 模糊股票名称
CODELIKE 模糊股票代码
CON2STR 取值转为字符串
VAR2STR 取值转为字符串
STR2CON 字符串转为数字
STRCAT 字符串相加
STRCMP 字符串比较
FINDSTR 字符串查找
CROSS 上穿
LONGCROSS 持续周期后上穿
UPNDAY 连涨
DOWNNDAY 连跌
NDAY 连大
EXIST 存在
EVERY 一直存在
LAST 持续存在
TESTSKIP 是否就此返回
算术函数
NOT 取反
IFC 逻辑判断
IF 逻辑判断
IFF 逻辑判断
IFN 逻辑判断
MAX 较大值
MIN 较小值
数学函数
ACOS 反余弦
ASIN 反正弦
ATAN 反正切
COS 余弦
SIN 正弦
TAN 正切
EXP 指数
LN 自然对数
LOG 对数
SQRT 开方
ABS 绝对值
POW 乘幂
CEILING 向上舍入
FLOOR 向下舍入
INTPART 整数部分
BETWEEN 介于
FRACPART 小数部分
ROUND 四舍五入
SIGN 符号
MOD 模
RAND 随机正整数
统计函数
AVEDEV 平均绝对偏差
DEVSQ 数据偏差平方和
FORCAST 线性回归预测值
SLOPE 线性回归斜率
STD 估算标准差
STDP 总体标准差
VAR 估算样本方差
VARP 总体样本方差
COVAR 协方差
RELATE 相关系数
BETA β(Beta)系数
BETAEX 相关放大系数
横向统计
BLOCKSETNUM 板块股个数
HORCALC 多股统计
INSORT 板块排序选股
INSUM 板块指标统计
形态函数
COST 成本分布
PEAK 波峰值
PEAKBARS 波峰位置
SAR 抛物转向
SARTURN 抛物转向点
TROUGH 波谷值
TROUGHBARS 波谷位置
WINNER 获利盘比例
LWINNER 近期获利盘比例
PWINNER 远期获利盘比例
COSTEX 区域成本
PPART 远期成本分布比例
ZIG 之字转向
NEWSAR 新抛物转向
LFS 锁定因子
指数函数
INDEXA 大盘的成交额
INDEXADV 大盘的上涨家数
INDEXDEC 大盘的下跌家数
INDEXC 大盘的收盘价
INDEXH 大盘的最高价
INDEXL 大盘的最低价
INDEXO 大盘的开盘价
INDEXV 大盘的成交量
HY_INDEXA 行业指数的成交额
HY_INDEXADV 行业指数的上涨家数
HY_INDEXDEC 行业指数的下跌家数
HY_INDEXC 行业指数的收盘价
HY_INDEXH 行业指数的最高价
HY_INDEXL 行业指数的最低价
HY_INDEXO 行业指数的开盘价
HY_INDEXV 行业指数的成交量
日线统计函数
TRADENUM 总成交单数
TRADEINNUM 逐笔买入成交单数
TRADEOUTNUM 逐笔卖出成交单数
LARGETRDINNUM 逐笔买入大单成交单数
LARGETRDOUTNUM 逐笔卖出大单成交单数
L2_VOLNUM 单数分档
L2_VOL 成交量分档
L2_AMO 成交额分档
CUR_BUYORDER 当前总委买量
CUR_SELLORDER 当前总委卖量
ACTINVOL 主动买成交量
ACTOUTVOL 主动卖成交量
LARGEINTRDVOL 逐笔买入大单成交量
LARGEOUTTRDVOL 逐笔卖出大单成交量
BIDORDERVOL 累计总有效委买量
BIDCANCELVOL 累计总有效撤买量
AVGBIDPX 最新委买均价
OFFERORDERVOL 累计总有效委卖量
OFFERCANCELVOL 累计总有效撤卖量
AVGOFFERPX 最新委卖均价
绘图函数
PLOYLINE 折线段
DRAWLINE 直线段
DRAWKLINE K线
STICKLINE 柱状线
DRAWICON 图标
DRAWTEXT 文字
DRAWTEXT_FIX 定点文字
DRAWNUMBER 画数字
DRAWNUMBER_FIX 画定点数字
RGB 自定色
DRAWBAND 画带状线
DRAWBMP 画图片
DRAWGBK 填充背景
DRAWRECTREL 相对位置上画矩形
财务和关联函数
FINANCE(1) 总股本(股)
TOTALCAPITAL 当前总股本(手)
FINANCE(2) 市场类型
FINANCE(3) 深沪品种类型
FINANCE(5) B股
FINANCE(6) H股
FINANCE(7) 流通股本(股)
FINANCE(8) 股东人数
CAPITAL 当前流通股本(手)
FINANCE(10) 总资产
FINANCE(11) 流动资产
FINANCE(12) 固定资产
FINANCE(13) 无形资产
FINANCE(15) 流动负债
FINANCE(16) 少数股东权益
FINANCE(17) 资本公积金
FINANCE(18) 每股公积金
FINANCE(19) 股东权益(净资产)
FINANCE(20) 营业收入
FINANCE(21) 营业成本
FINANCE(22) 应收帐款
FINANCE(23) 营业利润
FINANCE(24) 投资收益
FINANCE(25) 经营现金流量
FINANCE(26) 总现金流量
FINANCE(27) 存货
FINANCE(28) 利润总额
FINANCE(29) 税后利润
FINANCE(30) 净利润
FINANCE(31) 未分配利润
FINANCE(32) 每股未分配利润
FINANCE(33) 每股收益(全年折算)
FINANCE(34) 每股净资产
FINANCE(35) 季报调整净资产
FINANCE(36) 股东权益比
FINANCE(37) 第几季报
FINANCE(40) 流通市值
FINANCE(41) 总市值
FINANCE(42) 上市的天数
FINANCE(43) 利润同比%
FINANCE(44) 收入同比%
FINANCE(50) 是否属于沪深300
FINANCE(51) 是否含可转债
FINANCE(52) 是否为融资融券标的
FINANCE(60) 行权比例(权证)
FINANCE(61) 行权价(权证)
FINANCE(62) 杠杆比例(权证)
FINANCE(63) 内在价值(权证)
FINANCE(64) 溢价率(权证)
即时行情函数
DYNAINFO(3) 前收盘价
DYNAINFO(4) 今开
DYNAINFO(5) 最高
DYNAINFO(6) 最低
DYNAINFO(7) 现价
DYNAINFO(8) 总手
DYNAINFO(9) 现手
DYNAINFO(10) 成交金额
DYNAINFO(11) 均价
DYNAINFO(12) 日涨跌
DYNAINFO(13) 振幅度
DYNAINFO(14) 涨幅度
DYNAINFO(16) 前5日每分钟均量
DYNAINFO(17) 量比
DYNAINFO(18) 上涨家数
DYNAINFO(19) 下跌家数
DYNAINFO(20) 买入价(即买价一)
DYNAINFO(21) 卖出价(即卖价一)
DYNAINFO(22) 内盘
DYNAINFO(23) 外盘
DYNAINFO(37) 换手率
DYNAINFO(39) 市盈率(动)
DYNAINFO(40) 成交方向
DYNAINFO(50) 采样点数
DYNAINFO(51) 内外比
DYNAINFO(57) 笔涨跌
DYNAINFO(58) 叫买量(即买一量)
DYNAINFO(59) 叫卖量(即卖一量)
DYNAINFO(60) 深沪总上涨家数
DYNAINFO(61) 深沪总下跌家数
DYNAINFO(62) 深沪总成交金额
线形和颜色
COLOR 自定义色
COLORBLACK 黑色
COLORBLUE 蓝色
COLORGREEN 绿色
COLORCYAN 青色
COLORRED 红色
COLORMAGENTA 洋红色
COLORBROWN 棕色
COLORLIGRAY 淡灰色
COLORGRAY 深灰色
COLORLIBLUE 淡蓝色
COLORLIGREEN 淡绿色
COLORLICYAN 淡青色
COLORLIRED 淡红色
COLORLIMAGENTA 淡洋红色
COLORYELLOW 黄色
COLORWHITE 白色
LINETHICK 线型粗细
DRAWABOVE 显示在位置之上
STICK 柱状线
COLORSTICK 彩色柱状线
VOLSTICK 彩色柱状线
LINESTICK 同时画出柱状线和指标线
CROSSDOT 小叉线
CIRCLEDOT 小圆圈线
POINTDOT 小圆点线
DOTLINE 虚线
NODRAW 空线条
操作符函数
+ 加
- 减
* 乘
/ 除
< 小于
> 大于
<= 小于等于
>= 大于等于
= 等于
!= 不等于
{ 注释符号
AND 并且
OR 或者
&& 并且
|| 或者
$ 引用特定数据
( 括号
) 反括号
, 逗号
: 输出
:= 赋值
" 引号
. 点号
; 分号
# 变周期符号
交易和帐户函数
BUY 多头建仓
SELL 多头平仓
SELLSHORT 空头建仓
BUYSHORT 空头平仓
评论