飞狐基本函数简介之扩展数据函数一、横向统计函数
函数: ESTDATA(N) 参数: 1-13 用法: ESTDATA(N) 在[横向统计管理]中定义并计算数据。 (本函数仅在日线分析周期有效)。 说明:取得横向统计日线数据(1-N)。 用法举例: 例:设计一个公式,统计当日A股板块涨停板的股票数。 建立方法如下: ①设计一个公式,判断个股是否涨停,代码如下,设公式名称是“涨停判断”: bl:=if(STKINBLOCK('ST板块'),1.05,1.1);{如果为ST涨停为5%,否则为10%} ztb:(c>=intpart(ref(c,1)*bl*100+0.5)/100);{如果涨停返回1,否则返回0} {注:对新股的涨停未做判断,另外个股因历史的原因,是否被ST或PT处理无法判断,因此对历史数据的判断并不准确} ②建立横向统计数据项:鼠标点菜单“管理/横向统计管理”,在“横向统计管理”对话框中,点“新增”,找到刚才设计的公式“涨停判断”,如下图所示进行设置。 图中,不选除权处理更加合理。应去掉该项选择。 至此,我们就设计了一个横向统计数据项“涨停板”,在图中序号是3,则引用时是estdata(3)。 二、扩展数据库 函数: EXTDATA(N) 参数: 1-13 用法: EXTDATA(N),N取1--13 在[扩展数据管理]中定义并计算数据。 (本函数仅在日线分析周期有效) 说明:取得日线扩展数据(1-13) 飞狐扩展数据简介及示例 飞狐扩展数据库: 一、 扩展数据库的功效: 1、 在公式设计时,由于系统的限制,无法在公式中直接实现横向排名的功能,例如,在公式中无法知道某股票的涨幅的排名,这时可将涨幅数据放入扩展数据库中,让飞狐自动对涨幅数据进行排序,从而获得股票的涨幅排名数据。 2、 由于考虑到磁盘空间及系统的效率,飞狐收盘时,保存的数据并未包含实时接收的全部数据,出于研究股票的需要,您可能需要其中的某些数据,这时可以把这些数据存入扩展数据库,以供调用。 3、 由于系统及磁盘空间的限制,一般保存的短周期的数据有时段的限制,例如设置了只保存10天的分笔数据,超过10天的分笔数据将被自动删除,此时若想对分笔数据进行统计研究,将无法进行,这时可将分笔统计数据存入扩展数据库。 4、 由于系统的限制,公式中无法从长周期引用短周期的指标数据,这时可将短周期的指标数据存入扩展数据库。 二、扩展数据库的调用: 飞狐的扩展数据库,最多可以保存13组数据,保存在扩展数据库中的数据,使用函数EXTDATA(n)来调用,其中n表示第n组数据。 三、 使用扩展数据库示例: 例:如何知道股票在A股板块中的涨幅排名: 1、设计一个公式,设公式名称为“涨幅”,公式代码如下: zf::(c/ref(c,1)-1)*100; 2、鼠标点菜单“管理/管理扩展数据”,弹出如图1所示扩展数据管理框, 由于是新增的一组数据,双击其中某组尚未设置的数据名称,如图2所示,步骤如下: ① 选择我们刚才设计的“涨幅”公式 ② 修改数据名称为“涨幅排名” ③ 选择“生成排名数据(从大到小排)” ④ 去掉“使用除权后的数据”选项(避免涨幅失真) ⑤ “排序方法”选“0-n自然排序” ⑥ “设置范围”选A股板块。 ⑦ 图中,“涨幅排名”的扩展数据,是第2组数据,因此调用的函数为EXTDATA(2) 3、设计一个调用涨幅排名数据的公式,调公式名称为“调用涨幅排名”,参考代码如下: zfpm:extdata(2); 在K线图中,调用“调用涨幅排名”公式,即可获知该股票的当日在A股板块中排列第几名。 说明:在第1步设计的公式中,由于本例中仅需要计算排序的结果,因此公式可以简化(优化),以便减少运算量。 zf::c/ref(c,1); 飞狐基本函数简介之其他函数一、
函数: FFT(X,N) 参数: N为常数,X为数组. 返回: 返回数组 说明: 傅立叶变换,对序列X进行傅立叶变换或变换处理后反变换 示例: 当N=0时对序列X进行傅立叶变换 当N=1时对序列X进行傅立叶变换并反变换回来,与原X一致 当N>1时对序列X进行傅立叶变换并略去周期小于N的成分再反变换回来 FFT(CLOSE,30) 傅立叶变换是最常用的积分变换。原理和对数变换等差不多,无非是变换复杂为简单,广泛应用于工程技术领域。可傅立叶变换的算法,涉及高等数学的微积分知识,非三言两语说得清楚,也超过了本人的能力范围,这里只能从略了。 傅立叶变换的应用方面,见过的有二: 1、比如把FFT(CLOSE,30),在主图中上移下移之后,可以构成非常光滑的通道。 2、用在周期分析上。语见<期货市场技术分析>P407。 aa:=FFT(c,30); aa*1.05; aa*0.95 二、 函数: CHECKUSER(n) 参数: N为常数1或0 返回: 返回数组 说明: 限制公式使用。 示例: check:=CHECKUSER(0) 注册用户返回1,否则返回0 check:=CHECKUSER(1) 对非注册用户不可用该公式 三、 函数: COLORRGB(R,G,B) 参数: N为常数,X为数组. 返回: 返回RGB颜色值(常数) 示例: DRAWGBK(C>O, COLORRGB(255,0,0), COLORRGB(255,255,0),0); 表示图形上最后一组C>O时从左到右从红色到黄色渐变填充子图。效果如下图: 四、 函数: LINEVALUE(COND1,PRICE1,COND2,PRICE2,EXPAND,LOG) 参数:COND为数组,PRICE为数组或常数,LOG为1表示按对数计算,EXPAND为1表示向左延长. 返回: 返回数组 说明: LINEVALUE(COND1,PRICE1,COND2,PRICE2,EXPAND,LOG) 计算(COND1,PRICE1)和(COND2,PRICE2)2点决定的直线的数值 COND为数组,PRICE为数组或常数,LOG为1表示按对数计算,EXPAND为1表示向左延长.可用于趋势线预警、选股等 计算方式:先得到COND2条件满足的后点,再向左求COND1条件满足的前点,仅根据此2点计算 示例: LINEVALUE(DATE=1020129,LOW,DATE=1020606,LOW,0,1);{表示计算连接2002年1月29日低点和2002年6月6日低点的以对数方式计算的趋势线} 五、 函数: USERNAME 参数: N为常数,X为数组. 返回: 返回数组 说明: 取用户注册名。 示例: check:=STRCMP(USERNAME, 'userid') 为0表示用户注册名为userid,可用于公式只给指定用户使用。 六、 函数: USERNAME 参数: 无 返回: 返回值范围为0-11 说明: 当前证券类型。 示例: STKTYPE 返回值范围为0-11, 分别表示指数、A股、B股、基金、债券、其它、外汇、期货、其它股票、商品现货、期权、权证 七、 函数: DATAPERIOD 参数: 无 返回: 返回值范围为0-11 说明: 当前数据周期类型。 示例:DATAPERIOD 返回值范围为0-11,分别表示 分笔成交、1分钟、5分钟、15分钟、30分钟、60分钟、日、周、月、年、多日、多分钟 |
|