日:DAY; 二、
函数: DATE
参数: 无
返回: 返回有效值范围为(700101-1341231),表示19700101-20341231
说明: 取得该周期从1900以来的的年月日。
为什么当时设计这个函数时,不直接取得年月日?不得而知。
后来还是给发现了一些蛛丝马迹,
年月日:DATE+19000000;
年(200)月日:DATE-1000000;
YMD:YEAR*10000+MONTH*1000+DAY;
只有第二句的输出始终是对的,其它两句,输出可能都会增1或减1。FH和FXJ一样,都有这个问题。
这就是DATE不直接取得年月日的原因。对于其它整数部分的位数达8位的数的运算,我们也可以知道,个位数的精确度是有问题的。
********************************************
DATE 函数使用的注意事项
用公式检测:
DATE+19000000;
1.有些日期结果不对;
2.DATE+19000000+1;不起作用,只有加2以上才起作用!
是浮点计算造成的误差,写公式时尽量用DATE表述。
只好“压缩”使用了。
比如大盘的成交额,不用元为单位,用万元或亿元为单位。
数据的使用,无需追求过多的位数,要看相对误差。
目前可以正确处理的整数部分的位数达8位,相对误差已经非常的小了。
本来可以显示小数的,大概是1a001提了建议后,这类数据的显示,限制了小数部分的显示了。
只好这样来处理了:
mod(YEAR,100)*10000+MONTH*100+DAY
年号只用2位数表示。
****************************************** 三、
函数: HOUR
参数: 无
返回
飞狐基本函数简介之引用函数
引用函数主要是向前引用数据。BACKSET可以理解为向后引用某些判断信号,并不能引用具体数据。
股市技术分析主要是根据已经发生的数据,来推测未来走向的可能,所以引用函数在公式中应用得最多,具体使用时,奥妙也最多。有些东西实在不能铺开多讲,否则篇幅会了无穷尽,只能急刹车。不当之处,请各位多多指正。 一、
函数: COUNT(X,N)
参数: X为数组,N为计算周期
返回: 返回数组
说明: 统计N周期中满足X条件的周期数,若N=0则从第一个有效值开始。
示例: COUNT(CLOSE>OPEN,20)
表示统计20周期内收阳的周期数
函数: SUM(X,N)
参数: X为数组,N为计算周期
返回: 返回数组
说明: 统计N周期中X的总和,N=0则从第一个有效值开始。
示例: SUM(VOL,0)
表示统计从上市第一天以来的成交量总和
COUNT,计数。SUM,总数、和。
当数组为逻辑运算判断的结果时,COUNT和SUM的返回值是一样的。一般习惯上,对于逻辑运算信号,用COUNT统计,返回其它数值的,用SUM统计。当COUNT统计一般数值时,数组大于等于1时,计入;小于1时,不计入。这两个函数,主要用于统计。
用COUNT(CROSS(MA(C,5),MA(C,10)),0);就可以统计出全部的五天均线上穿十天均线的金叉数。
用SUM(CROSS(MA(C,5),MA(C,10)),0);和以上得出的结果应该是一样的。
股市的不随机规律,隐藏在统计概率之中。用这两个函数,可以统计很多概率性的规律。
比如,以两天的收盘价相比,昨天是下跌的,今天的下跌的概率是多少?
A:=C B:=REF(A,1) AND C>REF(C,1);{昨天下跌,今天上涨} D:=REF(A,1) AND C=REF(C,1);{昨天下跌,今天平盘} E:=REF(A,1) AND C F:=COUNT(B,0)+COUNT(D,0)+COUNT(E,0); 上升概率:100*COUNT(B,0)/F; 下跌概率:100*COUNT(E,0)/F; 平盘概率:100*COUNT(D,0)/F; 从两市指数看,昨天下跌,今天下跌的概率始终大于50%。 那么连跌两天之后,第三天收盘的各种概率是多少? A:=C B:=REF(A,1) AND C>REF(C,1);{前两天下跌,今天上涨} D:=REF(A,1) AND C=REF(C,1);{前两天下跌,今天平盘} E:=REF(A,1) AND C F:=COUNT(B,0)+COUNT(D,0)+COUNT(E,0); 上升概率:100*COUNT(B,0)/F; 下跌概率:100*COUNT(E,0)/F; 平盘概率:100*COUNT(D,0)/F; 从指数的输出看,概率更明显了。 连跌三天之后呢? A:=C B:=REF(A,1) AND C>REF(C,1);{前三天下跌,今天上涨}