分享

《飞狐公式编写基础》和《通达信公式教程》--5-- 指标公...

 木衲 2010-03-29

飞狐基本函数简介之扩展数据函数

一、横向统计函数

函数: 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分钟、日、周、月、年、多日、多分钟

238种常用颜色代码速查表




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多