收藏 分享(赏)

飞狐编程说明.doc

上传人:精品资料 文档编号:11001441 上传时间:2020-01-30 格式:DOC 页数:81 大小:128KB
下载 相关 举报
飞狐编程说明.doc_第1页
第1页 / 共81页
飞狐编程说明.doc_第2页
第2页 / 共81页
飞狐编程说明.doc_第3页
第3页 / 共81页
飞狐编程说明.doc_第4页
第4页 / 共81页
飞狐编程说明.doc_第5页
第5页 / 共81页
点击查看更多>>
资源描述

1、这组函数的功能是在主图或副图上设定条件输出图象、图标、直线、文字、数字、指标线、指标柱等,全部可以单独使用。个人感觉,飞狐的强大功能,在此组函数中有淋漓尽致的发挥。无论在表面(美感),还是实质(提高工作效率)上,都有良好表现。毫无例外的是,这组函数中,都带有 COND。CONDITION,条件,状态。COND 在这里可作为条件理解。为了能找到合适的 COND,用于举例子,请允许我先介绍一组概念。高点:在 2N+1 根 K 线中,中间这根 K 线的 H,要大于等于左右 N 根 K 线的 H。在 N+1 根 K线中,有等高点出现,取最先出现的。低点:在 2N+1 根 K 线中,中间这根 K 线的

2、L,要小于等于左右 N 根 K 线的 L。在 N+1 根 K线中,有等低点出现,取最先出现的。峰点:高点和低点,合称为峰点。(这个定义,意合于技术分析的老祖宗道氏:“只要平均指数的最高点超过了前期的最高点,它就处于牛市时期;当最低点低于前期的最低点时,它处于熊市时期。”这里我们撇开向上、向下分形和分形峰状点等概念,以免把概念复杂化。)也为了不让公式一来就过于复杂,我们先取 N 为 2 来做公式。简介到后面,可以看到,N是可以作为峰点公式的参数进行调整的。公式名称:FENG2公式说明:供引用公式内容:峰点参数暂定为 2A:=REF(H,2);中间 K 线的最高价B:=A=REF(H,4) AND

3、 A=REF(H,3) AND A=REF(H,1) AND A=H;中间 K 线的最高价大于等于两边共四根 K 线的最高价D:=BACKSET(B,3);将当前位置和之前 2 个周期的数值设为 1HD:FILTER(D,2);找到高点后,过滤掉其后 2 周期内可能出现的等高点。输出高点A2:=REF(L,2);中间 K 线的最低价B2:=A2OPEN,LOW,1);表示当收阳时在最低价位置画 1 号图DRAWICON(CO,L,MyBMP)表示当收阳时在最低价位置画 FmlDLL 子目录下的自制图标 MyBMP.BMP1、COND 条件,一般是指判断的结果,不是 0 就是 1。如用其它数据,

4、大于等于 1 的,条件满足;小于 1,条件就不满足。2、TYPE 图标,现在已经有 12 种,用下面的公式,在 000829 上可以全部显示出来。当 TYPE 取大于等于 12 的数时,都显示黄球。当 TYPE 取 0 时,显示的是笑脸(这个公式中没有做进去,自己可以试一下)。B:=“FENG2.HD“;D:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);A:=DREF(D,1);DRAWICON(REF(A,1),1.05*H,1);DRAWICON(REF(A,2),1.05*H,2);DRAWICON(REF(A,3),1.05*H,3);DRAWICON(RE

5、F(A,4),1.05*H,4);DRAWICON(REF(A,5),1.05*H,5);DRAWICON(REF(A,6),1.05*H,6);DRAWICON(REF(A,7),1.05*H,7);DRAWICON(REF(A,8),1.05*H,8);DRAWICON(REF(A,9),1.05*H,9);DRAWICON(REF(A,10),1.05*H,10);DRAWICON(REF(A,11),1.05*H,11);DRAWICON(REF(A,12),1.05*H,12);DRAWICON(REF(A,13),1.05*H,13);DRAWICON(REF(A,14),1.05

6、*H,100);主图叠加当红球和绿球连续显示时,立体感会强一些。DRAWICON(C=MA(C,30),MA(C,30),10);DRAWICON(CREF(D,1);E:=REF(H,1);DRAWICON(A,E,10),ALIGN0;DRAWICON(A,E,11),ALIGN1;DRAWICON(A,E,12),ALIGN2;DRAWICON(A,E,3),ALIGN3;DRAWICON(A,E,4),ALIGN4;DRAWICON(A,E,5),ALIGN5;可以初步得出结论:ALIGN0:信号出现在 PRICE 的正中;ALIGN1:信号出现在 PRICE 下边(十分靠近);ALI

7、GN2:信号出现在 PRICE 上边(十分靠近);ALIGN3:信号出现在主图的中间;ALIGN4:信号出现在主图的最上边;ALIGN5:信号出现在主图的最下边;在高低点上作图标,可以使高低点更明确了。A:=“FENG2.LD“;B:=“FENG2.HD“;DRAWICON(A,L,11),ALIGN1;DRAWICON(B,H,10),ALIGN2;主图叠加4、可以自由调用 MyBMP.BMP 图到显示位置,大大增强了输出的效果。你只要看到好看的图,可以随时抓拍过来,做成 BMP 文件,放到 FmlDLL 子目录下,就可以调用了。A:=“FENG2.LD“;B:=“FENG2.HD“;DRA

8、WICON(A,L,PIG),ALIGN1;DRAWICON(B,H,PIG),ALIGN2;主图叠加。如果你没有 PIG.BMP 文件,则不可显示。DRAWICON(1,MA(C,5),S28);DRAWICON(1,MA(C,10),S31);DRAWICON(1,MA(C,20),S14);DRAWICON(1,MA(C,30),S25);主图叠加。如果你想要这个公式有显示,可到楼下下载,解压缩到 FmlDLL 子目录下内有 40 个不同颜色的小球。二、函数: DRAWLINE 参数: 无用法: DRAWLINE(COND1,PRICE1,COND2,PRICE2,EXPAND),当 C

9、OND1 条件满足时,在 PRICE1位置画直线起点,当 COND2 条件满足时,在 PRICE2 位置画直线终点,EXPAND 为延长类型。说明: 在图形上绘制直线段。 示例: DRAWILINE(HIGH=HHV(HIGH,20),HIGH,LOWREF(D,1);F:=BACKSET(E,REF(BARSLAST(B),1)+2);G:=FREF(F,1);DRAWLINE(G,H,E,H,1),pointdot,linethick1,coloryellow;主图叠加这根线有些趋势线的意思了。由于趋势线的主观性颇强,只有多设参数才能满足多数人的要求,以后有机会再作介绍。DRAWLINE

10、画出的线,应该比手工画出的线精确一些。(DRAWLINE 画线的灵敏度,要比手工画线低,所以说 DRAWLINE 画出的线精确,就未必对。)主要用于画斜线,水平线我们一般可以另想办法。因为在图中显示直线,并非 DRAWLINE 的“专利”。比如:A:=“FENG2.LD“;B:=“FENG2.HD“;D:=BACKSET(ISLASTPERIOD,BARSLAST(A)+1);E:=DREF(D,1);F:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);G:=FREF(F,1);前高:REF(H,BARSLAST(G);前低:REF(L,BARSLAST(E);主图叠

11、加这里出个“难题”吧:怎么在主图上画一根直线?直线的高度是今天收盘价。就是这个样子的:三、函数: DRAWTEXT 参数: 无用法: DRAWTEXT(COND,PRICE,TEXT),当 COND 条件满足时,在 PRICE 位置书写文字 TEXT,可显示多行文本,用“换行。 说明: 在图形上显示文字。 示例: DRAWTEXT(CLOSE/OPEN1.08,LOW,大阳线);表示当日涨幅大于 8%时在最低价位置显示大阳线字样。DRAWTEXT(CLOSE/OPEN1.08,LOW,好呀大涨啦);可显示多行文本,用“换行;在某些满足条件的地方直接显示文字或字符,比显示图标要更直观一些。此函数

12、可以用 ALIGN 来定位水平位置。而 ALIGN 用在 DRAWICON 上定位的是高低的位置。从下面例子可以看到,ALIGN(02)定义水平位置的意义:ALIGN0:居中;ALIGN1:偏右;ALIGN2:偏左。也可以用 SHIFT 函数进行向右水平移位。所显示的文字或字符,可以用 COLOR 函数来定义颜色。至于文字的大小,则采用系统默认的大小,在此函数中无法定义。此函数单独使用有其用途,与 DRAWNUMBER 配合应用时,效果更不错。后面介绍到 DRAWNUMBER 时再举例子。A:=“FENG2.LD“;B:=“FENG2.HD“;DRAWICON(A,L,11),ALIGN1;D

13、RAWICON(B,H,10),ALIGN2;D1:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);E1:=D1REF(D1,1);离目前最近的一个高点D2:=BACKSET(E1,REF(BARSLAST(B),1)+2);E2:=D2REF(D2,1);倒数第二个高点D3:=BACKSET(E2,REF(BARSLAST(B),1)+2);E3:=D3REF(D3,1);倒数第三个高点DRAWTEXT(E1,H*1.01,TEXT:),COLORRED,ALIGN0;DRAWTEXT(E2,H*1.01,TEXT:),COLORGREEN,ALIGN1;DRAWT

14、EXT(E3,H*1.01,TEXT:),COLORYELLOW,ALIGN2;主图叠加四、函数: POLYLINE 参数: 无用法: POLYLINE(COND,PRICE),当 COND 条件满足时,以 PRICE 位置为顶点画折线连接。 说明: 在图形上绘制折线段。 示例: POLYLINE(HIGH=HHV(HIGH,20),HIGH);表示在创 20 天新高点之间画折线。 POLY,多个的。支持 POINTDOT、LINETHICK、COLOR、SHIFT 这四个描述函数。A:=“FENG2.LD“;B:=“FENG2.HD“;DRAWICON(A,L,11),ALIGN1;DRAW

15、ICON(B,H,10),ALIGN2;POLYLINE(A,L),POINTDOT,COLORGREEN;POLYLINE(B,H),LINETHICK2,COLORMAGENTA;主图叠加五、函数: STICKLINE 参数: 无用法: STICKLINE(COND,PRICE1,PRICE2,WIDTH,EMPTY),当 COND 条件满足时,在 PRICE1 和PRICE2 位置之间画柱状线,宽度为 WIDTH 可为 0-100(10 为标准间距),EMPTH 不为 0 则画空心柱。 说明: 在图形上绘制柱线。 示例: STICKLINE(CLOSEOPEN,CLOSE,OPEN,0.

16、8,1);表示画 K 线中阳线的空心柱体部分。 再说明三点:1、PRICE1 和 PRICE2 没有顺序关系,即何者在前何者在后都不影响语句的执行。2、WIDTH 宽度,支持小数。用 1 和用 0.1,会有很大的差别。取 7 时和主图的 K 线宽度差不多。以下的副图公式,画出的 K 线,与主图中显示的 K 线差不多。有些“主图叠加公式”,叠加在副图中也未尝不可了。STICKLINE(CO OR (C=O AND CREF(C,1),O,C,7,1),colorred;画出红 K 实体STICKLINE(CO AND CREF(C,1),C,H,0.1,0),colorred;画出红 K上影线S

17、TICKLINE(CO AND LREF(C,1),L,O,0.1,0),colorred;画出红 K下影线STICKLINE(CO;STICKLINE(B,O,O+A/4,8,0),COLORFF99FF;STICKLINE(B,O+A/4,O+A*2/4,8,0),COLORFF00FF;STICKLINE(B,O+A*2/4,O+A*3/4,8,0),COLOR9900FF;STICKLINE(B,O+A*3/4,O+A,8,0),COLOR0000FF;主图叠加还有一种方法就是纵向的了。先在较宽的 K 线中加颜色,然后把宽度逐步收窄,再加颜色覆盖以前的的,这样从纵向看,一根 K 线中就

18、有不同颜色了。效果做得好的,可以做到赏心悦目。B:=CO;STICKLINE(B,O,C,8,0),COLORFF99FF;STICKLINE(B,O,C,6,0),COLORFF00FF;STICKLINE(B,O,C,4,0),COLOR9900FF;STICKLINE(B,O,C,2,0),COLOR0000FF;主图叠加六、函数: DRAWNUMBER(COND,PRICE,NUMBER,PRECISION) 参数: NUMBER(可以为常数或数组序列),PRECISION 为精度(取值范围 0-3),即显示到小数点后 PRECISION 位。 用法: DRAWNUMBER(COND,

19、PRICE,NUMBER,PRECISION),当 COND 条件满足时,在 PRICE 位置书写数字 说明: 在图形上显示数字。 示例: DRAWNUMBER(CLOSE/OPEN1.08,HIGH,(CLOSE-OPEN)/OPEN*100,2);表示当日涨幅大于 8%时在最低价位置显示涨幅(相对开盘价的百分比)。 这个函数的特色是,在 NUMBER 位置可以放变量。NUMBER,数字。DRAWNUMBER 是 DRAWTEXT 的“兄弟”,也可以用 ALIGN(02)来定义水平位置,方法相同。A:=“FENG2.LD“;B:=“FENG2.HD“;DRAWICON(A,L,11),ALI

20、GN1;DRAWICON(B,H,10),ALIGN2;D1:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);E1:=D1REF(D1,1);离目前最近的一个高点D2:=BACKSET(E1,REF(BARSLAST(B),1)+2);E2:=D2REF(D2,1);倒数第二个高点DRAWTEXT(E1,H*1.02,高点价:),COLORGREEN,ALIGN2;DRAWNUMBER(E1,H*1.02,H,2),COLORGREEN,ALIGN1;DRAWTEXT(E2,H*1.02,高点价:),COLORYELLOW,ALIGN2;DRAWNUMBER(E2,H

21、*1.02,H,2),COLORYELLOW,ALIGN1;主图叠加七、函数: FILLRGN(COND,PRICE1,PRICE2) 参数: 用法: FILLRGN(COND,PRICE1,PRICE2),当 COND 条件满足时,以 COLOR 填充 PRICE1 和 PRICE2 的区间 说明: 绘制指标区间彩带。 示例: FILLRGN(MA1MA2, MA1,MA2),colorred; 表示 MA1MA2 时以红色填充 MA1 和 MA2之间的区域。 FILL,充满,填充。RGN 可能是 REGION,地区,地域。用这个函数,再加 DRAWICON 可以调用 BMP 图象文件的功能

22、,可以作出象风景一样的图。这里举个简单的例子:A:=MA(C,5);B:=MA(C,10);FILLRGN(1,H*1.01,H*1.02),COLORFFFF66;FILLRGN(A=B,A,B),COLORMAGENTA;FILLRGN(AREF(C,1),C),colorred;表示收盘大于前收以红色绘制收盘价连线。 PART,部分,局部。值得一提的是,PARTLINE 支持多种描述函数,如例所见。A:=MA(C,5);B:=MA(C,10);PARTLINE(A=B,A),COLORRED,POINTDOT;PARTLINE(A=B,B),COLORGREEN,CIRCLEDOT;PA

23、RTLINE(A=HHV(HIGH,20);表示在创 20 天新高时画垂直线 VERTICAL,垂直的。VERTLINE 目前可以用 POINTDOT、LINETHICK、COLOR、SHIFT 这四个描述函数来描述。这个函数,主要是用于画线看时间的。费波纳契周期,可以用这个函数画出来的。这里举个例子,把日 K 线中每月的第一个交易日中,画一根垂直线。A:=MONTHREF(MONTH,1);VERTLINE(A),COLOR808040,POINTDOT;主图叠加十、函数: DRAWYITEXT(COND,PRICE,CODE,TYPE) 参数: 用法: 在 COND 在图形上显示易学文字,

24、可 ALIGN0-3 定义对齐方式。 说明: 当 COND 条件满足时,在 PRICE 位置书写 TYPE 类型的 CODE 的对应文字TYPE 为常数,取 0-1,分别表示计算的是干支、64 卦,CODE 为对应的代码 示例: DRAWYITEXT(CLOSE/OPEN1.05,LOW, GANZHI(DATE*100, 2),0),表示当日涨幅大于5%时在最低价位置显示日干支;DRAWYITEXT(REF(CLOSE,2)REF(OPEN,2) AND REF(CLOSE,1)REF(OPEN,1) AND CLOSEOPEN, LOW, KGUA(1, 1), 1 ),表示连二阳时在最低

25、价位置显示 K 线卦象。如下例子:K 线卦kk:=KGUA(0,6);DRAWYITEXT(c0,mod(BARSCOUNT(c),6),kk,1); 附图指标十一、函数: DRAWBKBMP(COND,BMP) 参数: 用法: 当图形上最后一组 COND 条件满足时,以 MyBMP 做背景: 说明: 根据条件设置背景图 示例: 因为系统 K 线先画,会被后来的指标图覆盖了这种公式 K 线要自己画,以下供参考DRAWBKBMP(c0,mybmp);STICKLINE(co or c=o and cref(c,1),l,h,0.1,0),colorred;STICKLINE(co or c=o

26、and cref(c,1),o,c,7,0),colorred;STICKLINE(cO, COLORRGB(255,0,0), COLORRGB(255,255,0),0);飞狐基本函数简介之时间函数基本函数全是遍历所有从前到后(从第一根到最后一根)K 线的,取得每根 K 线上的时间,就用时间函数了。飞狐有独有的自然日、阴阳历、节气、月相、易学相关分析,在时间函数中就有相应的体现。时间周期分析是技术分析的一大分枝吧,江恩等人乐此不疲。不过也有不少人不相信。一、函数: DAY 参数: 无返回: 返回有效值范围为(1-31). 说明: 取得该周期的日期。 函数: WEEKDAY 参数: 无返回:

27、 返回有效值范围为(0-6),0 表示星期天 说明: 取得该周期的星期数。 函数: MONTH 参数: 无返回: 返回有效值范围为(1-12) 说明: 取得该周期的月份。 函数: YEAR 参数: 无返回: 返回有效值范围为(1970-2038) 说明: 取得该周期的年份。 与 DATE 函数不同,这些函数所输出的数值,与我们平时使用时是真实对应的,比如 DAY 返回 3,当时就是 3 号。小周期 K 线中使用大周期的时间函数不成问题,反之则不行。比如在分笔成交图中,也可以取得年、月等。年:YEAR,LINETHICK0;月:MONTH;周:WEEKDAY;日:DAY;二、函数: DATE 参

28、数: 无返回: 返回有效值范围为(700101-1341231),表示 19700101-20341231 说明: 取得该周期从 1900 以来的的年月日。 为什么当时设计这个函数时,不直接取得年月日?不得而知。后来还是给发现了一些蛛丝马迹,年月日:DATE+19000000;年(200)月日:DATE-1000000;YMD:YEAR*10000+MONTH*1000+DAY;只有第二句的输出始终是对的,其它两句,输出可能都会增 1 或减 1。FH 和 FXJ 一样,都有这个问题。这就是 DATE 不直接取得年月日的原因。对于其它整数部分的位数达 8 位的数的运算,我们也可以知道,个位数的精

29、确度是有问题的。DATE 函数使用的注意事项用公式检测:DATE+19000000;1.有些日期结果不对;2.DATE+19000000+1;不起作用,只有加 2 以上才起作用!是浮点计算造成的误差,写公式时尽量用 DATE 表述。只好“压缩”使用了。比如大盘的成交额,不用元为单位,用万元或亿元为单位。数据的使用,无需追求过多的位数,要看相对误差。目前可以正确处理的整数部分的位数达 8 位,相对误差已经非常的小了。本来可以显示小数的,大概是 1a001 提了建议后,这类数据的显示,限制了小数部分的显示了。只好这样来处理了:mod(YEAR,100)*10000+MONTH*100+DAY年号只

30、用 2 位数表示。三、函数: HOUR 参数: 无返回 飞狐基本函数简介之引用函数引用函数主要是向前引用数据。BACKSET 可以理解为向后引用某些判断信号,并不能引用具体数据。股市技术分析主要是根据已经发生的数据,来推测未来走向的可能,所以引用函数在公式中应用得最多,具体使用时,奥妙也最多。有些东西实在不能铺开多讲,否则篇幅会了无穷尽,只能急刹车。不当之处,请各位多多指正。一、函数: COUNT(X,N) 参数: X 为数组,N 为计算周期返回: 返回数组 说明: 统计 N 周期中满足 X 条件的周期数,若 N=0 则从第一个有效值开始。 示例: COUNT(CLOSEOPEN,20)表示统

31、计 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,

32、10),0);就可以统计出全部的五天均线上穿十天均线的金叉数。用 SUM(CROSS(MA(C,5),MA(C,10),0);和以上得出的结果应该是一样的。股市的不随机规律,隐藏在统计概率之中。用这两个函数,可以统计很多概率性的规律。比如,以两天的收盘价相比,昨天是下跌的,今天的下跌的概率是多少?A:=CREF(C,1);昨天下跌,今天上涨D:=REF(A,1) AND C=REF(C,1);昨天下跌,今天平盘E:=REF(A,1) AND CREF(C,1);前两天下跌,今天上涨D:=REF(A,1) AND C=REF(C,1);前两天下跌,今天平盘E:=REF(A,1) AND CREF

33、(C,1);前三天下跌,今天上涨D:=REF(A,1) AND C=REF(C,1);前三天下跌,今天平盘E:=REF(A,1) AND CLAST THEN VN=LAST+1FOR I=LAST TO LAST-VN+1 STEP-1VH(I)=VH(LAST)VL(I)=VL(LAST)NEXTFFL.VARDATA(“HH“)=VHFFL.VARDATA(“LL“)=VLFFL.VARSTARTINDEX(“HH“)=LAST-VN+1FFL.VARSTARTINDEX(“LL“)=LAST-VN+1%当 N 个周期之内,有两个最高价,即有等高的情况出现,HHVBARS 会返回哪个最高

34、价到当前的周期数呢?用副图公式观察一下,N 取 10:HHVBARS(H,N);如图,我们可以得出结论,返回的是前一个最高价到当前的周期数。同样,当在 N 个周期之内,有两个等低的最低价出现时,LLVBARS 会返回前一个最低价到当前的周期数。九、函数: SUMBARS(X,A) 参数: X 为数组返回: 返回数组 说明: 将 X 向前累加直到大于等于 A,返回这个区间的周期数 示例: SUMBARS(VOL,CAPITAL)求完全换手到现在的周期数 这个函数好用,在于它不但能精确地得到统计结果,而且能得到“模糊”的结果。就以 SUMBARS(VOL,CAPITAL)为例:日期数:SUMBARS(VOL,CAPITAL);返回成交量累加到流通盘的日期数验证:SUM(V,日期数)/CAPITAL;把返回的日期数之内的成交量累计,再除以流通盘运行的结果中,我们可以看到,“验证”的输出,除了 SUMBARS 起算点附近之外,从来没有小于 1 的。可见 SUMBARS 只往多算,不往少算,非常“精明”。十、函数: BARSCOUNT(X) 参数: X 为数组返回: 返回数组

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报