个股流通盘怎么看的函数是哪个

>> 价值宝拥有价值评估核心技术,应用科学投资决策方法。是执行价值投资的实际应用软件。
→ 股票分析软件公式函数汇编
您是本帖的第 12477 个阅读者
标题:股票分析软件公式函数汇编
等级:版主
积分:3835
门派:无门无派
股票分析软件公式函数汇编
股票分析软件的公式编写系统使用了多类的函数,以达到快速提取数据和提高运算能力,同时简化计算过程的要求。因此在不同类型的函数我们赋予了相当精确的含义,有的函数定义为行情数据提取函数,那么它的功能就是从静态历史上的行情数据或者动态的及时盘中数据提取我们所需要的数据以方便以后的分析和计算;有的函数定义为运算函数,是考虑到一些复杂的数学计算过程过于冗长,从而设计的简化运算的函数等等。
&& (1)、函数的基本模型:
K(X1,X2,X3......)
&&&&1、K表示函数的名称;
&&&&2、X1,X2,X3......表示该函数的所有参数。
&&&&不同参数用逗号分隔并用括号将所有参数括起来列于函数名称之后;参数的取值可以是变量也可以是一个常量,具体取值和含义因函数不同而不同;
&& (2)、函数的引用周期:
应不同的使用者在分析周期习惯上的差异,特别设定了周期选择,这主要是针对在引用类函数在引用数据时锁定自己所需要的周期,例如在日线上,或者在周线上等等的要求。可以从分笔到多日线等多类中选择。
等级:版主
积分:3835
门派:无门无派
这一组中的函数,全部不能单独使用,一定要和其它指标一起用才能发挥效力,因为它们都是描述其它指标的。
指标在主图或副图中的显示,主要分为棒状(柱状)和线状两种。这一组中的函数,全部是为了指挥指标的显示而设计的。
掌握好这组函数,可以使指标输出显示丰富多彩,色彩缤纷。
使用的一般形式:指标,描述函数1,描述函数2,...;
----------------------------------
函数:ALIGN
描述:对齐方式
类别:线形
说明:画图标、文字的对齐方式
示例:drawicon(cross(ma(c,5),ma(c,20)),H,3),align3;
对于DRAWICON,0图标中对齐;1图标上缘;2图标中缘;3图中;4图上;5图下。
对于DRAWTEXT,DRAWNUMBER,0中对齐;1左对齐;2右对齐;3图中;4图上;5图下。对于DRAWYITEXT,3为竖排。
----------------------------------
函数:CIRCLEDOT
描述:小圆圈线
类别:线形
说明:画小圆圈线
CIRCLE,圆圈。把CROSSDOT的X显示换成圆圈的样子。如果结合后面的COLOR函数一起用,可以画出不同颜色的圈圈,有时也比较实用。
----------------------------------
函数:COLOR
描述:指标线颜色
类别:线形
参数:000000-FFFFFF
说明:改变指标线颜色
示例:ma1:ma(close,5),或ma1:ma(close,5),colorff0000;&&
COLORBLACK
COLORBROWN
COLORGREEN
COLORMAGENTA
COLORWHITE
COLORYELLOW
附录:238种常用颜色代码速查表(略)
&&&& COLOR,颜色,色彩。是这组函数中最常用的一个。不但能定义指标线(柱)的颜色,而且能定义顶部指标文字的颜色--用LINETHICK0时也一样。
颜色的种类应该够用了。至于各指标线(柱)之间的颜色搭配,实在是一种很艺术性的事。既要有美感,又要不触目惊心。
----------------------------------
函数:COLORSTICK
描述:彩色棒状线
类别:线形
说明:以零轴为中心画彩色棒状线,零轴下为阴线颜色,零轴上为阳线颜色
这样零轴就如楚汉交界,泾渭分明了。
C-REF(C,1),COLORSTICK;{副图指标}
----------------------------------
函数:CROSSDOT
描述:叉状线或X状线
类别:线形
说明:画叉状线或x状线
叉状线和X状线有什么区别?应该是一样的吧。
CROSS是交叉,DOT是点。
当指标线连续性较好时,显示交叉点比较顺眼。连续性不好时,看起来比较凌乱。
0.98*L,CROSSDOT;
MA(C,30),CROSSDOT;{主图叠加}
----------------------------------
函数:LINESTICK
描述:棒状指标线
类别:线形
说明:同时画棒状线与指标线。
LINE是线,STICK是棒,LINESTICK自然是线棒一起显示了。
A:=C-REF(C,1);
A,LINESTICK;{不作说明,都认为是副图指标}
那么,即想显示指标线和棒状线,又想以零轴为中心显示彩色棒状线,怎么写公式呢?这样行吗?
A:=C-REF(C,1);
A,LINESTICK,COLORSTICK;
结论是否定的。结果是只有彩色柱,没有指标线了。
这样我们初步可以得出一个结论:在同一个指标中,有多个相同性质的描述函数时,软件只认最后一个描述函数。
即想显示指标线和棒状线,又想以零轴为中心显示彩色棒状线,可以用分开的两句语句来达成目标:
A:=C-REF(C,1);
A,LINESTICK;
A,COLORSTICK;
----------------------------------
函数:LINETHICK&&
描述:指标线粗细
类别:线形
参数:0-7,分析家1-7
说明:改变指标线粗细,数值越大线条越粗
示例:ma1:ma(close,5),linethick3;
LINETHICK0 表示不画出指标线,不影响坐标,但可在顶部显示数值。
ma1:ma(close,5),linethick0;表示不画出ma1指标线,不影响坐标,但可在顶部显示ma1数值。
THICK,厚的。LINETHICK就可以理解为线(棒)的粗细了。
V,STICK,LINETHICKN;
N分别取1、2、3、4、5、6、7,这个N也是不能做成参数调整的。
LINETHICK0是非常常用的,因为一个公式中指标一多,显示会很乱,把有些显示去掉,就用这一招。
有时会碰到相反的情况,指标线(柱)显示不多,而顶部数值的显示太多了,那么怎么画出指标线,而又在顶部不显示数值呢?
一般用STICKLINE(画柱)、ARTLINE(画线)等绘图函数来解决。
PARTLINE(1,MA(C,30));{主图叠加}
----------------------------------
函数:POINTDOT
描述:点状线
类别:线形
说明:画点状线
POINT是点、加点的意思。这个点状线,在K线显示数不多的情况下,看起来太小了。正因如此,在K线显示数较多的情况下,就可以弥补CIRCLEDOT显示太大的缺陷。
0.98*L,CIRCLEDOT;
MA(C,30),POINTDOT;{主图叠加}
----------------------------------
函数:PRECISION
描述:小数位数
类别:线形
说明:显示小数位数
示例:MA1: ROUND(MA(C,10)),PRECISION0; 显示四舍五入的整数。&&
指标图上指标数值显示x位小数,x取值范围0-7。
----------------------------------
函数:SHIFT
描述:指标线偏移
类别:线形
参数:1--127
说明:指标线向后(向右)偏移x个周期
示例:MA1: MA(C,10),SHIFT2; 将MA1指标线向后偏移2个周期。
SHIFT,移位。这是个飞狐比较有特色的函数。
以以下公式为例子:
MA(C,30),POINTDOT,SHIFT5;{主图叠加}
要注意两个问题:
1、移位后的指标显示数值和不移位时的数值是不一样的。移位了五个时间单位,就显示五个时间单位之前的原数值。
2、所移位的周期数,不能设为参数来调整。移位的最大周期数是127。如果写成SHIFT666,调试公式也能通过,不过软件自动取了127来移位。
另外说点题外话。
用SHIFT10之后,当前日的指标显示的就是原10天前的指标数值。也就是说,把最近十天的K线数据,置之不理了。
从人的记忆的特征来看,越近发生的事,对目前的影响力就越大。这样看,用SHIFT就一无是处了,因为它抛弃了最近的数据,而去找较早的数据。
从混沌学牵一发就能动全身的观点看,SHIFT就大有道理了。佛教中说前世的因,后世的果,相差时间长的就不好说了。
----------------------------------
函数:STICK
描述:棒状线
类别:线形
说明:画棒状线
STICK的英文是棍、棒的意思。
一般指标的显示,在软件中默认是线状的。即如果不加指标线形描述函数,则指标以线状的形式输出显示。
0.98*L;{主图叠加}
得到的显示如下:
如加上棒状线的描述,则变成这样了:
0.98*L,STICK;{主图叠加}
一般的信号,不加描述函数,会成箭头状。加了STICK之后,就成棒状了。
副图1公式:C&REF(C,1) AND C&REF(C,2);
副图2公式:C&REF(C,1) AND C&REF(C,2),STICK;
还是副图1的显示清楚,因为可以看到连续信号的出现。
----------------------------------
函数:VOLSTICK
描述:成交量柱状线
类别:线形
说明:画成交量柱状线
这是专门为显示成交量设计的。
股票软件不同,显示成交量的阴阳线是很不同的。总的来说,是根据价来定的,具体方法各有不同,很难说哪种方法就好了,哪种方法就不好了。
飞狐中的方法是这样的:今天的收盘价大于昨天的收盘价,显示阳柱;小于等于则显示阴柱。
等级:版主
积分:3835
门派:无门无派
这组函数的功能是在主图或副图上设定条件输出图象、图标、直线、文字、数字、指标线、指标柱等,全部可以单独使用。
飞狐的强大功能,在此组函数中有淋漓尽致的发挥。无论在表面(美感),还是实质(提高工作效率)上,都有良好表现。
毫无例外的是,这组函数中,都带有COND。CONDITION,条件,状态。COND在这里可作为条件理解。
为了能找到合适的COND,用于举例子,先介绍一组概念。
高点:在2N+1根K线中,中间这根K线的H,要大于等于左右N根K线的H。在N+1根K线中,有等高点出现,取最先出现的。
低点:在2N+1根K线中,中间这根K线的L,要小于等于左右N根K线的L。在N+1根K线中,有等低点出现,取最先出现的。
峰点:高点和低点,合称为峰点。
(这个定义,意合于技术分析的老祖宗道氏:“只要平均指数的最高点超过了前期的最高点,它就处于牛市时期;当最低点低于前期的最低点时,它处于熊市时期。”这里我们撇开向上、向下分形和分形峰状点等概念,以免把概念复杂化。)
也为了不让公式一来就过于复杂,我们先取N为2来做公式。简介到后面,可以看到,N是可以作为峰点公式的参数进行调整的。
公式名称:FENG2
公式说明:供引用
公式内容:
{峰点参数暂定为2}
A:=REF(H,2);{中间K线的最高价}
B:=A&=REF(H,4) AND A&=REF(H,3) AND A&=REF(H,1) AND A&=H;{中间K线的最高价大于等于两边共四根K线的最高价}
D:=BACKSET(B,3);{将当前位置和之前2个周期的数值设为1}
HD:FILTER(D,2);{找到高点后,过滤掉其后2周期内可能出现的等高点。输出高点}
A2:=REF(L,2);{中间K线的最低价}
B2:=A2&=REF(L,4) AND A2&=REF(L,3) AND A2&=REF(L,1) AND A2&=L;{中间K线的最低价小于等于两边共四根K线的最低价}
D2:=BACKSET(B2,3);{将当前位置和之前2个周期的数值设为1}
LD:FILTER(D2,2);{找到低点后,过滤掉其后2周期内可能出现的等低点。输出低点}
{后面有些例子,就从这个公式中引用信号。}
----------------------------------
函数:DRAWBKBMP
描述:设置背景图
类别:绘图
说明:根据条件设置背景图
用法: DRAWBKBMP(COND,BMP);当图形上最后一组COND条件满足时,以MyBMP做背景。
示例:DRAWBKBMP(C&O, 'MyBMP');表示图形上最后一组C&O时背景显示子FmlDLL目录下的MyBMP.bmp图。
----------------------------------
函数:DRAWGBK
描述:渐变背景色
类别:绘图
说明:绘制渐变背景色
用法: DRAWGBK(COND,COLOR1, COLOR2,D);当COND条件满足时,以COLOR1到COLOR2渐变色填充子图区域,D=0表示从左到右,D=1表示从上到下。
示例:DRAWGBK(C&O, COLORRGB(255,0,0), COLORRGB(255,255,0),0);表示图形上最后一组C&O时从左到右从红色到黄色渐变填充子图。
----------------------------------
函数:DRAWICON
描述:绘制小图标
类别:绘图
说明:在图形上绘制小图标
用法: DRAWICON(COND,PRICE,TYPE),当COND条件满足时,在PRICE位置画TYPE号图标。15种图标编码为1-15(1-3为小脸,4-5为上下箭头,6-7为红绿小旗,8-9为三角形,10-12为信号灯,13-15为O、X、四方形)。TYPE为字符串时可显示用户自制BMP图。
示例:DRAWICON(CLOSE&OPEN,LOW,4)表示当收阳时在最低价位置画4号图标。
DRAWICON(C&O, L, 'MyBMP')表示当收阳时在最低价位置画FmlDLL子目录下的自制图标MyBMP.BMP。
这个说明有点老了,飞狐升级飞快,以致帮助文件跟不上变化了。基本意思如说明一样,其它作些补充。
1、COND条件,一般是指判断的结果,不是0就是1。如用其它数据,大于等于1的,条件满足;小于1,条件就不满足。
2、TYPE图标,现在已经有12种,用下面的公式,在000829上可以全部显示出来。当TYPE取大于等于12的数时,都显示黄球。
当TYPE取0时,显示的是笑脸(这个公式中没有做进去,自己可以试一下)。
B:="FENG2.HD";
D:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);
A:=D&REF(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(REF(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*H,100);{主图叠加}
当红球和绿球连续显示时,立体感会强一些。
DRAWICON(C&=MA(C,30),MA(C,30),10);
DRAWICON(C&MA(C,30),MA(C,30),11);{主图叠加}
3、PRICE是用于定位图标的位置的。一般用1.01*H,或者0.99*L等。现在可用ALIGN(0-5)指定对齐位置。
用这个公式来试(主图叠加)
B:="FENG2.HD";
D:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);
A:=D&REF(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下边(十分靠近);
ALIGN2:信号出现在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";
DRAWICON(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');{主图叠加。如果你没有PIG.BMP文件,则不可显示。}
----------------------------------
函数:DRAWLINE
描述:绘制直线
类别:绘图
说明:在图形上绘制直线段
用法: DRAWLINE(COND1,PRICE1,COND2,PRICE2,EXPAND),当COND1条件满足时,在PRICE1位置画直线起点,当COND2条件满足时,在PRICE2位置画直线终点,EXPAND为延长类型。&&&&
示例:DRAWLINE(HIGH&=HHV(HIGH,10),HIGH,LOW&=LLV(LOW,10),LOW,1)表示在创10天新高与创10天新低之间画直线并且向右延长。
DRAWLINE是唯一一个一句里面用到两个COND的绘图函数。因为它需要两个点来决定一直线。
COND1相当于指定K线位置(横坐标),PRICE1相当于是指定价位(纵坐标),这样一个点在平面上的位置就决定了。
DRAWLINE是从第一点画到第二点的,即有起点与终点的顺序关系:第一点出现的时间,要在第二点之前。否则线是画不出来的。
EXPAND,扩张、发展,这里是延伸的意思吧。一般取0,不延长;取1,延长。实际上是取大于等于1的数就延长,小于1就不延长。
DRAWLINE目前支持POINTDOT、LINETHICK、COLOR、SHIFT这四个描述函数。
举个例子吧。
A:="FENG2.LD";
B:="FENG2.HD";
DRAWICON(A,L,11),ALIGN1;
DRAWICON(B,H,10),ALIGN2;
D:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);
E:=D&REF(D,1);
F:=BACKSET(E,REF(BARSLAST(B),1)+2);
G:=F&REF(F,1);
DRAWLINE(G,H,E,H,1),pointdot,linethick1,{主图叠加}
这根线有些趋势线的意思了。由于趋势线的主观性颇强,只有多设参数才能满足多数人的要求。
DRAWLINE画出的线,应该比手工画出的线精确一些。(DRAWLINE画线的灵敏度,要比手工画线低,所以说DRAWLINE画出的线精确,就未必对。)
主要用于画斜线,水平线我们一般可以另想办法。因为在图中显示直线,并非DRAWLINE的“专利”。
A:="FENG2.LD";
B:="FENG2.HD";
D:=BACKSET(ISLASTPERIOD,BARSLAST(A)+1);
E:=D&REF(D,1);
F:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);
G:=F&REF(F,1);
前高:REF(H,BARSLAST(G));
前低:REF(L,BARSLAST(E));{主图叠加}
----------------------------------
函数:DRAWNUMBER
描述:显示数字
类别:绘图
说明:在图形上显示数字
用法: DRAWNUMBER(COND,PRICE,NUMBER,PRECISION),当COND条件满足时,在PRICE位置书写数字NUMBER(可以为常数或数组序列),PRECISION为小数显示位数(取值范围0-3)。可ALIGN0-5定义对齐方式。
示例:DRAWNUMBER(CLOSE/OPEN&1.08,HIGH,(CLOSE-REF(C,1))/REF(C,1)*100,2)表示当日涨幅大于8%时在最高价位置显示涨幅(相对开盘价的百分比)。
这个函数的特色是,在NUMBER位置可以放变量。
NUMBER,数字。DRAWNUMBER是DRAWTEXT的“兄弟”,也可以用ALIGN(0-5)来定义水平位置,方法相同。
A:="FENG2.LD";
B:="FENG2.HD";
DRAWICON(A,L,11),ALIGN1;
DRAWICON(B,H,10),ALIGN2;
D1:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);
E1:=D1&REF(D1,1);{离目前最近的一个高点}
D2:=BACKSET(E1,REF(BARSLAST(B),1)+2);
E2:=D2&REF(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*1.02,H,2),COLORYELLOW,ALIGN1;{主图叠加}
----------------------------------
等级:版主
积分:3835
门派:无门无派
函数:DRAWTEXT
描述:加入文字
类别:绘图
说明:在图形上显示文字
用法: DRAWTEXT(COND,PRICE,TEXT),当COND条件满足时,在PRICE位置书写文字TEXT,可用'\n'换行,可ALIGN0-5定义对齐方式,分析家、通达信不可换行。
示例:DRAWTEXT(CLOSE/OPEN&1.08,LOW,'大阳线')表示当日涨幅大于8%时在最低价位置显示'大阳线'字样。
DRAWTEXT(CLOSE/OPEN&1.08,LOW,'好呀\n大涨啦');可显示多行文本,用"\n"换行。
在某些满足条件的地方直接显示文字或字符,比显示图标要更直观一些。
此函数可以用ALIGN来定位水平位置。而ALIGN用在DRAWICON上定位的是高低的位置。
从下面例子可以看到,ALIGN(0~2)定义水平位置的意义:
ALIGN0:居中;
ALIGN1:偏右;
ALIGN2:偏左。
也可以用SHIFT函数进行向右水平移位。
所显示的文字或字符,可以用COLOR函数来定义颜色。至于文字的大小,则采用系统默认的大小,在此函数中无法定义。
此函数单独使用有其用途,与DRAWNUMBER配合应用时,效果更不错。后面介绍到DRAWNUMBER时再举例子。
A:="FENG2.LD";
B:="FENG2.HD";
DRAWICON(A,L,11),ALIGN1;
DRAWICON(B,H,10),ALIGN2;
D1:=BACKSET(ISLASTPERIOD,BARSLAST(B)+1);
E1:=D1&REF(D1,1);{离目前最近的一个高点}
D2:=BACKSET(E1,REF(BARSLAST(B),1)+2);
E2:=D2&REF(D2,1);{倒数第二个高点}
D3:=BACKSET(E2,REF(BARSLAST(B),1)+2);
E3:=D3&REF(D3,1);{倒数第三个高点}
DRAWTEXT(E1,H*1.01,'☆TEXT:'),COLORRED,ALIGN0;
DRAWTEXT(E2,H*1.01,'★TEXT:'),COLORGREEN,ALIGN1;
DRAWTEXT(E3,H*1.01,'TEXT:'),COLORYELLOW,ALIGN2;{主图叠加}
----------------------------------
函数:DRAWYITEXT
描述:易学文字
类别:绘图
说明:在图形上显示易学文字,可ALIGN0-3定义对齐方式
用法: DRAWYITEXT(COND,PRICE,CODE,TYPE),当COND条件满足时,在PRICE位置书写TYPE类型的CODE的对应文字。TYPE为常数,取0--1,分别表示计算的是干支、64卦,CODE为对应的代码。
示例:DRAWYITEXT(CLOSE/OPEN&1.05,LOW, GANZHI(DATE*100, 2),0)表示当日涨幅大于5%时在最低价位置显示日干支。
DRAWYITEXT(REF(CLOSE,2)&REF(OPEN,2) AND REF(CLOSE,1)&REF(OPEN,1) AND CLOSE&OPEN, LOW, KGUA(1, 1), 1 )表示连二阳时在最低价位置显示K线卦象。
-----------------------------------------------
函数:FILLRGN
描述:区间彩带
类别:绘图
说明:绘制指标区间彩带
用法: FILLRGN(COND,PRICE1,PRICE2),当COND条件满足时,以COLOR填充PRICE1和PRICE2的区间。
示例:FILLRGN(MA1&MA2, MA1,MA2),colorred 表示MA1&MA2时以红色填充MA1和MA2之间的区域。
FILL,充满,填充。RGN可能是REGION,地区,地域。
用这个函数,再加DRAWICON可以调用BMP图象文件的功能,可以作出象风景一样的图。
这里举个简单的例子:
A:=MA(C,5);
B:=MA(C,10);
FILLRGN(1,H*1.01,H*1.02),COLORFFFF66;
FILLRGN(A&=B,A,B),COLORMAGENTA;
FILLRGN(A&B,A,B),COLORGREEN;
FILLRGN(1,L*0.99,L*0.98),COLORFF99CC;{主图叠加}
----------------------------------
函数:PARTLINE
描述:分段绘制指标线
类别:绘图
说明:分段绘制指标线
用法: PARTLINE(COND,PRICE),满足COND条件绘制PRICE连线。
示例:PARTLINE(C&REF(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;
PARTLINE(A&B,A),COLORGREEN,CROSSDOT,LINETHICK3;
PARTLINE(A&B,B),COLORRED,SHIFT2;{主图叠加}
----------------------------------
函数:POLYLINE
描述:绘制折线段
类别:绘图
说明:在图形上绘制折线段
用法: POLYLINE(COND,PRICE),当COND条件满足时,以PRICE位置为顶点画折线连接。
示例:POLYLINE(HIGH&=HHV(HIGH,10),HIGH)表示在创10天新高点之间画折线。
POLY,多个的。
支持POINTDOT、LINETHICK、COLOR、SHIFT这四个描述函数。
A:="FENG2.LD";
B:="FENG2.HD";
DRAWICON(A,L,11),ALIGN1;
DRAWICON(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大于等于1则画空心柱。宽度为WIDTH(10为标准间距)。
示例:STICKLINE(CLOSE&OPEN,CLOSE,OPEN,8,1)表示画K线中阳线的空心柱体部分。STICKLINE(CLOSE&OPEN,HIGH,LOW,0.8,1)表示画K线中阳线的高低线部分。
说明三点:
1、PRICE1和PRICE2没有顺序关系,即何者在前何者在后都不影响语句的执行。
2、WIDTH宽度,支持小数。用1和用0.1,会有很大的差别。取7时和主图的K线宽度差不多。
&&&&以下的副图公式,画出的K线,与主图中显示的K线差不多。有些“主图叠加公式”,叠加在副图中也未尝不可了。
STICKLINE(C&O OR (C=O AND C&REF(C,1)),O,C,7,1),{画出红K实体}
STICKLINE((C&O AND C&&H) OR (C=O AND C&REF(C,1)),C,H,0.1,0),{画出红K上影线}
STICKLINE((C&O AND L&&O) OR (C=O AND C&REF(C,1)),L,O,0.1,0),{画出红K下影线}
STICKLINE(C&O OR (C=O AND C&=REF(C,1)),C,O,7,0),{画出青K实体}
STICKLINE(C&O OR (C=O AND C&=REF(C,1)),L,H,0.1,0),{画出青K影线。因为青K是实心的,所以影线从中穿过}
3、用STICKLINE可以用两种方法做出多色彩K线效果。
一种是横向的,将K线实体从O到C分为N等份,每个小格中放入不同的但比较连续的颜色。
这里随便举个例子,N取4,只对阳线加了效果。其它变化,道理是一样的。
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线中就有不同颜色了。效果做得好的,可以做到赏心悦目。
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;{主图叠加}
----------------------------------
函数:VERTLINE
描述:绘制垂直线段
类别:绘图
说明:在图形上绘制垂直线段
用法: VERTLINE(COND),在COND条件满足的周期处画垂直线。
示例:VERTLINE(HIGH&=HHV(HIGH,20))表示在创20天新高时画垂直线。
VERTICAL,垂直的。
VERTLINE目前可以用POINTDOT、LINETHICK、COLOR、SHIFT这四个描述函数来描述。
这个函数,主要是用于画线看时间的。费波纳契周期,可以用这个函数画出来的。
这里举个例子,把日K线中每月的第一个交易日中,画一根垂直线。
A:=MONTH&REF(MONTH,1);
VERTLINE(A),COLOR808040,POINTDOT;{主图叠加}
等级:版主
积分:3835
门派:无门无派
时间函数返回本周期的时间特性,使用它们可以得到数据的年、月、日、时、分钟特性。
基本函数全是遍历所有从前到后(从第一根到最后一根)K线的,取得每根K线上的时间,就用时间函数了。
飞狐有独有的自然日、阴阳历、节气、月相、易学相关分析,在时间函数中就有相应的体现。
时间周期分析是技术分析的一大分枝吧,江恩等人乐此不疲。不过也有不少人不相信。
----------------------------------
函数:DATE
描述:年月日
类别:时间
返回:函数返回有效值范围为(1231),表示41231
说明:取得该周期从1900以来的年月日。
用法: DATE
为什么当时设计这个函数时,不直接取得年月日?不得而知。
后来还是给发现了一些蛛丝马迹,
年月日:DATE+;
年(200)月日:DATE-1000000;
YMD:YEAR*10000+MONTH*1000+DAY;
只有第二句的输出始终是对的,其它两句,输出可能都会增1或减1。FH和FXJ一样,都有这个问题。
这就是DATE不直接取得年月日的原因。对于其它整数部分的位数达8位的数的运算,我们也可以知道,个位数的精确度是有问题的。
DATE函数的BUG!
用公式检测:
1.有些日期结果不对;
2.DATE+;不起作用,只有加2以上才起作用!
是浮点计算造成的误差,写公式时尽量用DATE表述。
只好“压缩”使用了。
比如大盘的成交额,不用元为单位,用万元或亿元为单位。
数据的使用,无需追求过多的位数,要看相对误差。
目前可以正确处理的整数部分的位数达8位,相对误差已经非常的小了。
本来可以显示小数的,大概是1a001提了意见后,这类数据的显示,限制了小数部分的显示了。
只好这样来处理了:
mod(YEAR,100)*10000+MONTH*100+DAY
年号只用2位数表示。
----------------------------------
函数:DATEDIFF(DATE1,DATE2)
描述:日期之间的时间间隔
类别:时间
参数:DATE1,DATE2为序列变量或常数,格式与DATE同,有效值范围为(1231),表示01231
返回: 返回DATE1、DATE2两个日期之间的相差的天数,如果 DATE1晚于 DATE2,则 DATEDIFF函数返回负数
说明:取得日期之间的时间间隔。
示例:DATEDIFF(LSOLARTERMDATE(1),DATE)表示求当年立春到当前周期相差的天数
这个函数返回两个自然日之间相隔的天数。因为一般K线是按交易日排列的,手工算自然日的相隔天数就大为麻烦。
低点和前一个高点相差的自然日天数:
A:="FENG2.LD";
B:="FENG2.HD";
DRAWICON(A,L,11),ALIGN1;
DRAWICON(B,H,10),ALIGN2;
D:=DATEDIFF(REF(DATE,BARSLAST(B)),DATE);
DRAWNUMBER(A,0.99*L,D,0);{主图叠加}
----------------------------------
描述:日期
类别:时间
返回:函数返回有效值范围为(1-31)
说明:取得该周期的日期。
与DATE函数不同,DAY、WEEKDAY、MONTH、YEAR这些函数所输出的数值,与我们平时使用时是真实对应的,比如DAY返回3,当时就是3号。
小周期K线中使用大周期的时间函数不成问题,反之则不行。比如在分笔成交图中,也可以取得年、月等。
年:YEAR,LINETHICK0;
周:WEEKDAY;
----------------------------------
函数:HOUR
描述:小时
类别:时间
返回:函数返回有效值范围为(0-23),对于日线及更长的分析周期值为0
说明:取得该周期的小时数。
用法: HOUR
观察一下应该就可以知道了。在较大时间周期的K线中,比如日K线中,不能输出时分秒函数。
在分笔成交周期中运行如下公式:
分:MINUTE;
时分秒:TIME,LINETHICK0;
秒好象取不到。
----------------------------------
函数:LDAY
描述:农历日期
类别:时间
返回:函数返回有效值范围为(1-30)
说明:取得该周期的农历日期。
用法: LDAY
----------------------------------
函数:LMONTH
描述:农历月份
类别:时间
返回:函数返回有效值范围为(1-12)
说明:取得该周期的农历月份。
用法: LMONTH
----------------------------------
函数:LSOLARTERM(X)
描述:二十四节气
类别:时间
参数:X为序列变量或常数,格式与DATE同,有效值范围为(1231),表示41231
返回:返回有效值范围为(0-24).0表示该周期不在节气日中,1-24分别表示小寒、大寒、立春、雨水、惊蛰、春分、清明、谷雨、立夏、小满、芒种、夏至、小暑、大暑、立秋、处暑、白露、秋分、寒露、霜降、立冬、小雪、大雪、冬至
说明:取得日期所在的二十四节气。
示例:LSOLARTERM(DATE)表示求当前周期节气
----------------------------------
函数:LSOLARTERMDATE(X)
描述:节气日期
类别:时间
参数: X为序列变量或常数,格式与DATE同,有效值范围为(1231),表示41231
返回:返回当年的节气日期
说明:取得当年的节气日期。
示例:LSOLARTERMDATE(1),求当年的小寒日期,返回的序列中2001年之内的都为1010105
----------------------------------
函数:LSOLARTERMDAY(X)
描述:节气后第几日
类别:时间
参数: X为序列变量或常数,格式与DATE同,有效值范围为(1231),表示01231
返回:返回序列日期是前一节气后的第几日
说明:取得节气后的第几日。
示例:LSOLARTERMDAY(DATE)表示求当前周期是前一节气后的第几日
----------------------------------
函数:LYEAR
描述:农历年份
类别:时间
返回:函数返回有效值范围为()
说明:取得该周期的农历年份。
用法: LYEAR
阴阳历对照表:
年:YEAR,LINETHICK0;
农历年:LYEAR,LINETHICK0;
农历月:LMONTH;
农历日:LDAY;
----------------------------------
函数:MINUTE
描述:分钟
类别:时间
返回:函数返回有效值范围为(0-59),对于日线及更长的分析周期值为0
说明:取得该周期的分钟数。
用法: MINUTE
----------------------------------
函数:MONTH
描述:月份
类别:时间
返回:函数返回有效值范围为(1-12)
说明:取得该周期的月份。
用法: MONTH
----------------------------------
函数:TIME
描述:时分秒
类别:时间
返回:函数返回有效值范围为(959)
说明:取得该周期的时分秒。
用法: TIME
----------------------------------
函数:WEEK
描述:星期
类别:时间
返回:函数返回有效值范围为(0-6),0表示星期天
说明:取得该周期的星期数。
用法: WEEK
----------------------------------
函数:WEEKDAY
描述:星期
类别:时间
返回:函数返回有效值范围为(0-6),0表示星期天
说明:取得该周期的星期数。
用法: WEEKDAY
----------------------------------
函数:YEAR
描述:年份
类别:时间
返回:函数返回有效值范围为()
说明:取得该周期的年份。
用法: YEAR
等级:版主
积分:3835
门派:无门无派
行情函数是最基本的函数,首先,它为我们提供计算所需的函数,这些函数从存储的数据中取得我们所需要的各类数据,而其他多数函数所需的计算数据一般也是由通过引用行情函数产生的。
这些行情函数所取得的数据,是我们所编写的公式的原材料。
如果说公式是衣服,这些行情函数就是布。
有人会说做衣服不一定要布,野草树皮也可以做。对,一个公式中不一定非有行情函数不可,但总感觉透风,缺点什么。
----------------------------------
函数:ADVANCE
描述:上涨家数
类别:行情
说明:取得该周期市场上涨家数。(本函数仅对大盘有效)
用法: ADVANCE
ADVANCE,前进。用于上证指数和深圳成指。
A:=ADVANCE-DECLINE;
SUM(A,50);
这个线形状与指数C线有些不同,反映的是不加权的情况。
----------------------------------
函数:AMOUNT
描述:成交额
类别:行情
说明:取得该周期成交额。
用法: AMOUNT
判断是否为期货券种,期货无AMOUNT数据
AMOUNT,数量、总计。
成交额系统默认单位是元(A股和基金是人民币、沪B股是美元、深B股是港元)。
成交额因为里面有价量因素,有些高手应用时喜欢用之代替成交量。
成交金额万元:AMOUNT/10000,LINETHICK0;
----------------------------------
函数:ASKPRICE(N)
描述:委卖价
类别:行情
参数:N取1--3,表示卖盘档位。
说明:取得委卖1--委卖3价格。
用法: ASKPRICE(1);表示最低叫卖价。
(本函数仅个股在分笔成交分析周期有效)
ASK,询问、要求,这里是卖出报价的意思。
副图公式一:
委买总量:BIDVOL(1)+BIDVOL(2)+BIDVOL(3);
委卖总量:ASKVOL(1)+ASKVOL(2)+ASKVOL(3);
副图公式二:
卖一买一空档:ASKPRICE(1)-BIDPRICE(1);
编写个股在分笔成交分析周期有效的公式时要注意,编好了之后,公式的“禁用周期”就自动设置为除分笔成交及多日线外其他周期禁用。
如果以后要把这个公式修改为其它周期的公式时,不可忘记把“禁用周期”中的设置改过来,否则公式指标输出会没有显示。
----------------------------------
函数:ASKVOL(N)
描述:委卖量
类别:行情
参数:N取1--3,表示卖盘档位。
说明:取得委卖1--委卖3量。
用法: ASKVOL(1)+ASKVOL(2)+ASKVOL(3);表示三档卖盘量总和。&&
(本函数仅个股在分笔成交分析周期有效)
----------------------------------
函数:BIDPRICE(N)
描述:委买价
类别:行情
参数:N取1--3,表示买盘档位
说明:取得委买1--委买3价格。
用法: BIDPRICE(1);表示最高叫买价。
(本函数仅个股在分笔成交分析周期有效)
BID,出价、投标,这里是买进报价的意思。PRICE,价格。
有人可能会说:图中不是有委买8的单子么?呵呵,那是推算出来的,撤单了亦未可知。
----------------------------------
函数:BIDVOL(N)
描述:委买量
类别:行情
参数:N取1--3,表示买盘档位
说明:取得委买1--委买3量。
用法: BIDVOL(1);表示最高叫买量。
(本函数仅个股在分笔成交分析周期有效)
----------------------------------
函数:BUYVOL
描述:主动性买单量
类别:行情
说明:取得主动性买单量。
用法: BUYVOL
当本笔成交为主动性买盘时,其数值等于成交量,否则为0。
(本函数仅个股在分笔成交分析周期有效)
BUY,买。SELL,卖。VOL,VOLUME,量。
在分笔成交分析周期中看:
主动性买单量:BUYVOL;
主动性卖单量:SELLVOL;
之和:BUYVOL+SELLVOL;
总成交量:V;
两者之和必然为总成交量。所以说每笔之成交量,不是主动性买单量,就是主动性之卖单量。
主动性买单量代表多方的力量,主动将挂在卖盘档位的单子吃进,主动性卖单量则反之,代表的是空方的力量。
至于庄家对倒诱空诱多之动作,长期看另当别论,但在当时,确实也代表了多空之一方。
每日之SUM(BUYVOL,0)之类的数据,不能在其它周期中引用,要做成扩展数据才可。
----------------------------------
描述:收盘价
类别:行情
说明:取得该周期收盘价。
----------------------------------
函数:CLOSE
描述:收盘价
类别:行情
说明:取得该周期收盘价,也可简写为 C。
用法: CLOSE
OPEN,打开。HIGH,高度。LOW,低的。CLOSE,关闭、结束。
常言道,巧妇难为无米之炊。此四者,就是我们做价格指标的“米”了。不同周期的K线,均由此四者为原材料画出。
(有人说,家里的米没有味道,于是去割野菜,采野花,日子一长,又说还是家里的米能填饱肚子。)
有人说,价、量、时、人是技术分析的四大要素,那么O、H、L、C便构成了“价”的四大要素。
道氏理论,主要关注的是长期趋势,所以,一般以CLOSE线为主要参考指标。所取前期高、低点,也是CLOSE线的高、低点。
人的心理,常以成败论英雄。所以CLOSE作为一根K线中的“结局”,被视为价格四大要素中的最关键因素。此论似成通论,但有些短线炒手认为,OPEN要比CLOSE更重要。股市本是无定论的地方,仁者见仁,智者见智。
对未来函数和未来数据的看法。关于未来也者,在较为经典的书上很少直接见到这种说法,只是在网上见得多了。
一般带公式平台的股票软件,有“公式检测”这一项,用来判断公式中是否含有未来函数。
目前的信号的产生和保持,如果全依赖于之前的数据,则可认为产生信号的公式中,不含有未来函数和未来数据。
目前的信号的产生和保持,如果部分依赖于之后的数据,则可认为产生信号的公式中,含有未来函数和未来数据。
换句话说,如果公式中产生的信号,随着行情的发展,信号永远不变,则此公式就绝无“未来”之嫌疑;信号可能要逃、要变,则此公式中就有“未来”。
如果此定义成立,则可将“未来”分为两种情况:
1、在一根K线(即时行情)中;
2、在多根K线(盘后)中。
在第一种情况中,以即时行情中的当前日K线为例,除了O之外,其它H、L、C全有未来之嫌。因为在收盘之前,拉高、打压是司空见惯的事,谁也不能保证H、L不会创出当天的新高和新低,更不用说C了。比如日线周期公式“C&REF(C,1);”,前一分钟信号成立,后一分钟可能信号就不成立了。这样说的话,在日K中包括H、L、C的指标,就全有“未来”之嫌疑了。
还有就是引用进来的信号,比如引用了周K和月K指标,因为当前周K和月K还在变动之中,所以也是未来数据。
在第二种情况中,因为在盘后,日K中的四大要素就没有未来之可能了。在多K线中,典型的未来函数有两个:BACKSET、ZIG。这两个未来函数到底未来到什么程度,到以后介绍时再说。就算在盘后,除了周五之外,引用的周K指标也是未来数据;除了在月末,引用的月K指标也是未来数据。
这样说的话,到处是“未来”,我们何处适从?
实际上未来也者,并不是新问题,而是老问题,从有技术分析之日起,这个问题就存在了,只是在经典著作中,并不是以“未来”的字眼出现。
“我们所采取的交易风格越保守,那么,耐心地等待趋势反转的验证信号就越为重要。到底需要等待多久呢?这就得从风险与报偿两个方面来权衡。如果我们选择较为保守的交易风格,宁愿等待趋势反转的验证信号,那么,确实可能承担较少的风险;但是另一方面,我们从交易中取得的报偿也可能减少了。等到趋势反转信号得到确认的时候,获利的空间也许已经缩小了。”
<日本蜡烛图技术>P.159
所以说即时行情中的“未来”也一样,体现的是技术分析中最古老的一个问题。
而多K线中的未来数据,是要好好注意的。如果在ZIG的低点买进,在ZIG的高点卖出,则是全世界最好的交易系统了--可惜是马后炮,因为当时谁也做不到这一点。但也不能说BACKSET、ZIG就一无是处了,有时甚至是不可或缺的。刀剑可能自伤,也可用于杀敌。只要我们熟悉了BACKSET和ZIG的本质,就可以了解它们“未来”到什么程度,拿来用也是不妨的。至于不熟悉的,还是少用为妙。
----------------------------------
函数:DECLINE
描述:下跌家数
类别:行情
说明:取得该周期市场下跌家数。(本函数仅对大盘有效)
用法: DECLINE
DECLINE,下降。用于上证指数和深圳成指。
----------------------------------
描述:最高价
类别:行情
说明:取得该周期最高价。
----------------------------------
函数:HIGH
描述:最高价
类别:行情
说明:取得该周期最高价,也可简写为 H。
用法: HIGH
----------------------------------
函数:ISBUYORDER
描述:主动性买单
类别:行情
说明:取得该成交是否为主动性买单。
用法: ISBUYORDER
当本笔成交为主动性买盘时,返回1,否则为0。
(本函数仅个股在分笔成交分析周期有效)
ORDER,定单。BUYORDER,买单(不是请客吃饭后的买单!)。
在分笔成交分析周期中可以看到,任一笔成交的单子,不是主动买单,就是主动卖单。
主动买单:ISBUYORDER;
主动卖单:NOT(ISBUYORDER)*0.5;
这也就是没有ISSELLORDER函数的原因,因为用NOT(ISBUYORDER)就可以取得相同功能。
----------------------------------
描述:最低价
类别:行情
说明:取得该周期最低价。
----------------------------------
描述:最低价
类别:行情
说明:取得该周期最低价,也可简写为L。
----------------------------------
描述:开盘价
类别:行情
说明:取得该周期开盘价。
----------------------------------
函数:OPEN
描述:开盘价
类别:行情
说明:取得该周期开盘价,也可简写为O。
用法: OPEN
----------------------------------
函数:OPENINT
描述:最后时刻持仓量
类别:行情
说明:取得期货品种该周期最后时刻持仓量。
用法: OPENINT
判断是否为期货券种,非期货无OPENINT数据
----------------------------------
描述:成交笔数
类别:行情
说明:取得该周期成交笔数。
----------------------------------
函数:SELLVOL
描述:主动性卖单量
类别:行情
说明:取得主动性卖单量。
用法: SELLVOL
当本笔成交为主动性卖盘时,其数值等于成交量,否则为0。
(本函数仅个股在分笔成交分析周期有效)
----------------------------------
描述:成交量
类别:行情
说明:取得该周期成交量。
----------------------------------
描述:成交量
类别:行情
说明:取得该周期成交量。
VOLUME,量。
成交量系统默认单位是手(一百股)。
成交量是仅次于价格的技术分析要素。
成交金额万元:AMOUNT/10000,LINETHICK0;
成交量手:VOL,VOLSTICK;
流通盘万股:CAPITAL/100,LINETHICK0;
换手率:100*V/CAPITAL,LINETHICK0;
等级:版主
积分:3835
门派:无门无派
----------------------------------
函数:VOLUNIT
描述:每手股数
类别:动态行情
返回:返回常数
说明:返回每手股数(可在市场管理中设置),对于深沪股票为100,深沪债券为1000。可据此识别股票和债券。
----------------------------------
函数:DYNAINFO(N)
描述:动态行情
类别:动态行情
返回:返回常数
说明:取得参数对应的动态行情数据
总额(持仓)
注:分析家DYNAINFO(10)无持仓;有(40)成交方向、(41)买四量、(42)买四价、(43)卖四量、(44)卖四价、(45)持仓量、(46)应得利息、(47)国债全价。
通达信DYNAINFO(10)无持仓;无(18)委买、(19)委卖、(24)涨速、(38) 5日均量;有(40)笔升跌、(50)采样点数、(51)内外比、(52)多空平衡、(53)多头获利、(54)空头回补、(55)多头止损、(56)空头止损、(57)笔升跌。
需要特别注意的是这些数据就是动态显示牌中显示的数据,它是个常数函数,是不能用REF、MA等函数进行操作的,对于历史行情分析来说,这个数据就是最后一天的价格,是违反时间不变性原则的,除非特别需要,一般不要使用。
等级:版主
积分:3835
门派:无门无派
----------------------------------
函数:ESTDATA(N)
描述:取得横向统计日线数据(1-N)
类别:扩展数据
说明:在[横向统计管理]中定义并计算数据。(本函数仅在日线分析周期有效)
用基本公式做出的主图公式和副图公式,显示在个股或指数中,是纵向的,遍历当时显示的个股或指数中的每根K线。然后指标大小、变化、交叉情况等,都体现在某一个股或指数中。甲股和乙股,哪个KDJ中的K值大?用纵向变量(指标),原来就一点招数都没有。又比如,两市A股中,今天有几只个股的收盘价在10日均线之上,用纵向变量(指标)也没有办法,因为纵向变量(指标)只能在某一个股或指数中才可以比较。而多股间横向的比较和统计,是很有参考价值的。所以,相对于原来的纵向变量(指标),就有了横向变量这一说。
横向指标用在公式中,也是遍历每根K线的,与一般的基本函数的遍历有点不同,因为它的数据来源不同,是对应于每根K线的日子以及哪个日子中对应板块中的个股数和选择条件等。
横向统计涉及全场数据的计算,而且可以增加到数千项之多,运算量惊人,目前无法做到实时刷新(动态显示),只能手工刷新(建议盘后进行)。
横向变量主要用于盘后。要动态刷新,目前没有即时刷新的设置,可能考虑到计算量较大吧。要是不怕麻烦,过几分钟就刷新一下(刷新一次,就相当于重新计算一遍),也可以看到"动态"涨跌值排名。
横向变量在公式中的输出,与K线的日子有绝对的关系,与当时显示的个股或指数没有多大关系,在某个股中的输出和其他任一个股中的输出都一样。
横向变量所用的统计方法,是对所选板块中的个股或指数,进行全盘的统计。最近所加的"最大值"、"最小值"是两个极值,是对排序头尾的取值。而要取横向排序中的第二名、第三名,单用横向变量目前还做不到。但不排除此功能以后会开发出来。
排名名次要用扩展数据!横向变量目前做不到。
如果做横向变量或扩展数据,在当时选择的计算周期如果是日线,则今天刷新,"原本排列"就保存在昨天。横向变量实际上即是横向的,从时间上又是纵向的。
扩展数据是横向的,引用时从时间上又是纵向的。
----------------------------------
函数:EXTDATA(N)
描述:取得日线扩展数据(1-13); 分析家N取1--11
类别:扩展数据
参数:N取1--13
说明:在[扩展数据管理]中定义并计算数据。(本函数仅在日线分析周期有效)
有些数据,非常重要,可是随着时间的推移,就再也找不到了。比如说某个股一天之中的总成交次数,又比如说某个股在上个月的1号,涨幅排名是第几?这些信息,要么以后就查不到了,要么在公式中也无法引用。而扩展数据库能解决这些问题。扩展数据库能够随日线保存这些数据,而且是计算好了的结果,所以引用时速度也很快。
扩展数据有两个用处:1、保存计算值。2、保存计算值的排名结果。目前飞狐的扩展数据,可以最多做13个。太多了好象也没有多大意思,因为扩展数据计算历史数据有点慢,而且也较占空间。历史的数据量大,当然慢了。可是计算好之后,以后只要更新当天的,速度还是较快的。计算扩展数据,某个股,一个交易日,一次只能得到一个结果数据,而且所选之指标,也应该是唯一的。
想保存所有分笔成交记录?扩展数据是做不到的。
缺省数据:某一天,或者说个股停盘等原因,没有计算结果,系统就将缺省数据保存到扩展数据库中。
在进行排序时,有两种排序方式,一种为0-N自然排序,一种为1-1000归一化排序,区别在于:自然排序按自然数来排列名次,排名在第几结果就是几,第一名,返回0;第二名,返回1;第N名,返回N-1。而归一化排序时将排序归一化到0-1000之间,第一位为0,最后一位为1000,采用公式“排名*1000/参加排名的股票数”来进行计算。归一化排序的好处是,不随股票数目的增加而对排序结果有较大的影响。
怎么引用扩展数据?EXTDATA(N);N指引用第几组扩展数据,从1到13。比如把分笔成交次数的扩展数据建立在第一组中,引用时,就用EXTDATA(1);这个公式,在某个股中,就输出此股在当天的总成交次数。扩展数据,有横向的性质,特别是用排名时。同时又是纵向的,只要有数据,以前的日子里,也可以返回所得值。而且从理论上说,扩展数据库是可以永远保存的。由于计算量较大,目前扩展数据不支持即时刷新。不过可以手工刷新。
----------------------------------
函数:FGNDATA(N)
描述:外资数据
类别:扩展数据
返回:返回常数
说明:飞狐台湾版专用。该函数仅在日线分析周期有效
外资尚可投资比率
外资尚可投资量
全体外资持有比率
全体外资持有量
法令投资上限比率
外国法人与自然人
----------------------------------
函数:GALDATA(N)
描述:三大法人
类别:扩展数据
返回:返回常数
说明:飞狐台湾版专用。该函数仅在日线分析周期有效
外资买进量
自营商买进量
外资卖出量
自营商卖出量
投信买进量
三大法人买卖超总计
投信卖出量
----------------------------------
函数:LONDATA(N)
描述:融资融券
类别:扩展数据
返回:返回常数
说明:飞狐台湾版专用。该函数仅在日线分析周期有效
昨日融资余额
昨日融券余额
今日融资买进
今日融券卖出
今日融资卖出
今日融券买进
今日现金偿还
今日限券偿还
今日融资余额
今日融券余额
信用交易限额
等级:版主
积分:3835
门派:无门无派
引用类函数主要用于对前后相邻数据进行操作。
引用函数主要是向前引用数据。BACKSET可以理解为向后引用某些判断信号,并不能引用具体数据。
股市技术分析主要是根据已经发生的数据,来推测未来走向的可能,所以引用函数在公式中应用得最多,具体使用时,奥妙也最多。
举两个综合运用引用函数的例子。
1、RSI(相对强弱指标(Relative Strenth Index),1978年由韦尔斯?王尔德发明)
A、飞狐的反趋向指标中的RSI是这样写的:
LC := REF(CLOSE,1);
RSI1:SMA(MAX(CLOSE-LC,0),N1,1)/SMA(ABS(CLOSE-LC),N1,1)*100;
RSI2:SMA(MAX(CLOSE-LC,0),N2,1)/SMA(ABS(CLOSE-LC),N2,1)*100;
RSI3:SMA(MAX(CLOSE-LC,0),N3,1)/SMA(ABS(CLOSE-LC),N3,1)*100;
{N1:6,2,100&&N2:12,2,100&&N3:24,2,100}
RSI1、RSI2、RSI3三根线是一样的算法,只是所取参数不同。
MAX,在两者之间取大者。ABS,取绝对值。以日K周期为例,LC是昨天的收盘价,C-LC即为两天之间的收盘价差值。
RSI的分母是这个差值的绝对值,进行指数加权平均处理。
RSI的分子是上涨中的差值,进行指数加权平均处理。
分子所占分母的比重的百分比,即得出RSI的值。
B、原始RSI的算法是这样的:
设A为N天内上涨收盘价的平均值,B为N天内下跌收盘价的平均值。
RSI=100-100/(1+RS),其中的RS=A/B。
经过化简,RSI=100*A/(A+B)。写成公式:
LC:=REF(C,1);
D:=IF(C&LC,C-LC,0);&&E:=IF(C&LC,LC-C,0);
A:=SUM(D,N)/N;&&&&&& B:=SUM(E,N)/N;
RSI:100*A/(A+B);&&&& {N:6,2,100}
好了,将两种算法写在一起:
LC:=REF(C,1);
D:=IF(C&LC,C-LC,0);&&E:=IF(C&LC,LC-C,0);
A:=SUM(D,N)/N;&&&&&& B:=SUM(E,N)/N;
原始RSI:100*A/(A+B); {N:6,2,100}
飞狐RSI:SMA(MAX(C-LC,0),N,1)/SMA(ABS(C-LC),N,1)*100;
{坐标线位置:0; 20; 50; 80; 100; }
原始RSI要比飞狐RSI要敏感一些,因为飞狐的RSI经过了指数加权平均处理。
不是说指数加权平均处理就不好了,经过处理后,指标会平滑、稳定一些。
2、参数可调整的峰点公式
A:=REF(H,N)=HHV(H,2*N+1);{当前位置N天之前的最高价是最近2*N+1根K线中的最高价}
B:=FILTER(A,N); {当高点附近有等高的K线出现时,会影响后续高点的判断,所以要过滤}
D:=BACKSET(B,N+1);{将当前位置及前N周期的数值设为1,所以要用N+1}
HD:=FILTER(D,N); {当高点附近有等高的K线出现,取第一个,过滤掉后面N个周期之内出现的}
A2:=REF(L,N)=LLV(L,2*N+1);{求低点的过程与求高点的过程同理}
B2:=FILTER(A2,N);
D2:=BACKSET(B2,N+1);{参数N:1,3,999}
LD:=FILTER(D2,N);{主图叠加}
DRAWICON(HD,H,10),ALIGN2;{在高点附近显示红球}
DRAWICON(LD,L,11),ALIGN1;{在低点附近显示绿球}
可以说,这个公式用了未来函数BACKSET,但是用在日K线中,盘后是没有未来数据的,因为引用的全是已经发生过的不可变的数据了。
至于即时盘中的未来数据,那是说不到底的事,基本所有的公式,都有即时盘中未来数据。
红球绿球作为峰点标志,在显示K线不多的情况下,还比较清楚。但当K线数较多时,因为球的大小是不变的,所以看起来比较乱。故可用以下公式:
A:=REF(H,N)=HHV(H,2*N+1); B:=FILTER(A,N);&& D:=BACKSET(B,N+1);&&HD:=FILTER(D,N);
A2:=REF(L,N)=LLV(L,2*N+1);B2:=FILTER(A2,N); D2:=BACKSET(B2,N+1);LD:=FILTER(D2,N);
STICKLINE(REF(HD,1),REF(H,1),REF(H,1),18,0),COLORMAGENTA;
STICKLINE(REF(LD,1),REF(L,1),REF(L,1),18,0),COLORGREEN;
----------------------------------
函数:BACKSET(X,N)
描述:向前赋值
类别:引用
参数:X为数组,N为正整数
返回:返回数组
说明:若X非0,则将当前位置到N周期前的数值设为1。
示例:BACKSET(CLOSE&OPEN,2)若收阳则将该周期及前一周期数值设为1,否则为0
如果公式检测出来有未来数据,则BACKSET是第一个嫌疑。
BACKSET是往前倒推信号(数据1)的,仅此而已。由于所有基本函数都是序列变量,所以要用基本函数,把当前的数据(比如最高价)往前推是做不到的。所以说,基本函数要往后引用具体数据是做不到的,往后引用信号是可能用BACKSET做到的。
说BACKSET不可或缺,是因为用基本函数在找历史峰点等公式中,如果没有它将一筹莫展。
这个“说明:若X非0,则将当前位置到N周期前的数值设为1。”有点问题,如果数组X是逻辑运算的结果是对的,如果不是就难说了,比如:
A:BACKSET(0.1*ISLASTPERIOD,10);
B:BACKSET(100*ISLASTPERIOD,20);
D:B&REF(B,1);
“A”的输出全为0,“B”的输出就正常了。
----------------------------------
函数:BARSCOUNT(X)
描述:有效值周期数
类别:引用
参数:X为数组
返回:返回数组
说明:第一个有效数据到当前的天数
示例:BARSCOUNT(CLOSE)对于日线数据取得上市以来总交易日数,对于分笔成交取得当日成交笔数,对于1分钟线取得当日交易分钟数
BARS是什么?我们看到,关于取得相隔时间周期的函数中,多数以BARS开头。
查字典,BAR的意思有很多,有条、条形、酒巴、巴等。后来才恍然大悟:相隔时间周期,不就是中间相隔几根条形K线么?
BARSCOUNT(X)是第一个有效数据到当前的天数。那么什么是有效数据?
A:BACKSET(ISLASTPERIOD,10);
零:BARSCOUNT(A);
很小:BARSCOUNT(C/00);
负数:BARSCOUNT(-C);
不存在:BARSCOUNT(MA(C,10));
可见,有效数据并不是全是大于等于1的数据,只要有输出的数据,不管是零,还是负数,均为有效数据。
而MA(C,10)是从第十根K线开始起算的,所以一直要到第十根K线,BARSCOUNT(MA(C,10))才输出1。
这样找一些指标的起算点时间位置,用BARSCOUNT函数就很管用了。
一般找第一根K线的位置,就可以写为BARSCOUNT(C)=1;
----------------------------------
函数:BARSLAST(X)
描述:上一次条件成立位置
类别:引用
参数:X为数组
返回:返回数组
说明:上一次X不为0到现在的天数
示例: BARSLAST(CLOSE/REF(CLOSE,1)&=1.1)表示上一个涨停板到当前的周期数
条件满足的当前周期,BARSLAST返回0。
是“不为0”到现在的天数么?运行这个公式试试:
A1:=0.5*A;
一:BARSLAST(A1);
二:BARSLAST(A2);
三:BARSLAST(A3);
“一”根本就没有输出。初步可得出结论:其绝对值大于等于1的数组信号,BARSLAST(数组)才有输出。
----------------------------------
函数:BARSSINCE(X)
描述:第一个条件成立位置
类别:引用
参数:X为数组
返回:返回数组
说明:第一次X不为0到现在的天数
示例:BARSSINCE(HIGH&20)表示股价超过20元时到当前的周期数
SINCE,自...以后。BARSSINCE和BARSCOUNT很象,不过它找的是非零信号。
A:BACKSET(ISLASTPERIOD,10);
零:BARSsince(A);
很小:BARSsince(C/00);
负数:BARSsince(-C);
不存在:BARSsince(MA(C,10));
可见,零和无效数据,均不被计数。一般BARSSINCE是针对逻辑运算的结果的,因为逻辑运算的结果输出,不是0,就是1。
----------------------------------
函数:COUNT(X,N)
描述:统计总数
类别:引用
参数:X为数组,N为计算周期
返回:返回数组
说明:统计N周期中满足X条件的周期数,若N=0则从第一个有效值开始。
示例:COUNT(CLOSE&OPEN,20)表示统计20周期内收阳的周期数
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&REF(C,1);
B:=REF(A,1) AND C&REF(C,1);{昨天下跌,今天上涨}
D:=REF(A,1) AND C=REF(C,1);{昨天下跌,今天平盘}
E:=REF(A,1) AND C&REF(C,1);{昨天下跌,今天下跌}
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&REF(C,1) and ref(c,1)&ref(c,2);
B:=REF(A,1) AND C&REF(C,1);{前两天下跌,今天上涨}
D:=REF(A,1) AND C=REF(C,1);{前两天下跌,今天平盘}
E:=REF(A,1) AND C&REF(C,1);{前两天下跌,今天下跌}
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&REF(C,1) and ref(c,1)&ref(c,2) and ref(c,2)&ref(c,3);
B:=REF(A,1) AND C&REF(C,1);{前三天下跌,今天上涨}
D:=REF(A,1) AND C=REF(C,1);{前三天下跌,今天平盘}
E:=REF(A,1) AND C&REF(C,1);{前三天下跌,今天下跌}
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;
规律就更明显了。
不要小看这些数据。虽然没有有些“高手”做出的成功率达百分之九十左右的公式那么夸张,但很有意义的。要知道股市中的随机因素太多,平衡性很强,稍稍的统计偏向,足可作为有用的参考。
这只是简单的例子,用这两个函数,可以做出很多的有用的统计数据。
多数的交易系统的“胜率”,可以由此统计出来。
----------------------------------
函数:DMA(X,A)
描述:动态移动平均
类别:引用
参数:X为数组,A为计算周期
返回:返回数组
说明:求X的动态移动平均。
算法: 若Y=DMA(X,A) 则Y=A*X+(1-A)*Y', 其中Y'表示上一周期Y值,A必须小于1。
示例:DMA(CLOSE,VOL/CAPITAL)表示求以换手率作平滑因子的平均价
DMA中的D,是中文的拼音:DONG。也可能是DYNAMIC。
这个函数,与SMA是一家的,看:
Y=M/N*X+(N-M)/N*Y';
Y=A*X+(1-A)*Y';
前者说,N必须大于M,后者说,A必须小于1。然后两者就一样了:A=M/N。
说“A为计算周期”似乎不妥,A明明要取小数才行。DMA在第一根K线就开始起算,SMA要到第二根K线开始起算。
----------------------------------
函数:EMA(X,N)
描述:指数平滑移动平均
类别:引用
参数:X为数组,N为计算周期
返回:返回数组
说明:求X的N日指数平滑移动平均。
算法: 若Y=EMA(X,N) 则Y=[2*X+(N-1)*Y']/(N+1), 其中Y'表示上一周期Y值。
示例:EMA(CLOSE,20)表示求20日指数平滑均价
EMA中的E,可能是EXPONENT,指数、幂。
把算法写成这个样子:Y=2*X/(N+1)+(N-1)/(N+1)*Y',就可以看出,当前周期数组值所占的权重是2/(N+1),而上一周期Y值所占的权重是(N-1)/(N+1)。注意,这两个权重相加,结果为1:2/(N+1)+(N-1)/(N+1)=1。
由于一个很经典的指标指数平滑异同平均线MACD(1979年就发明出来了)里面,要用到EMA,才使EMA还在基本函数中占有一席之地。后面我们可以看到,用SMA也可以达到相同的算法。
N可以取到1,不过输出就没有加权的效果了。
等级:版主
积分:3835
门派:无门无派
函数:FILTER(X,N)
描述:信号过滤
类别:引用
参数:X为数组,N为正整数
返回:返回数组
说明:X满足条件后,删除其后N周期内的数据置为0(过滤连续出现的信号)。
示例:FILTER(CLOSE&OPEN,3)查找阳线,3天内再次出现的阳线不被记录在内
如果说BACKSET能够向后引用信号,那么FILTER就能向后过滤信号--即把有效信号去掉。比如N取3,就把以后3个周期内的有效信号去掉了,所以从连续信号上看,两个信号之间的间隔不可能小于3的。用这个公式观察一下就容易明白了:
FILTER(A,3);
----------------------------------
函数:HHV(X,N)
描述:最高值
类别:引用
参数:X为数组,N为计算周期
返回:返回数组
说明:求N周期内X最高值,N=0则从第一个有效值开始。
示例:HHV(HIGH,30)表示求30日最高价
----------------------------------
函数:HHVBARS(X,N)
描述:上一高点位置
类别:引用
参数:X为数组,N为计算周期
返回:返回数组
说明:求N周期内X最高值到当前周期数,N=0表示从第一个有效值开始统计
示例:HHVBARS(HIGH,0)求得历史新高到当前的周期数
HHV、HHVBARS这两个函数一起用,可以找到当前N天中的最高点。
A:=BACKSET(ISLASTPERIOD,HHVBARS(H,N)+1);
B:=COUNT(A,N)=1;{取得前N个周期内的最高点位置}
REF(H,BARSLAST(B));
DRAWICON(B,H,1),ALIGN2;{主图叠加。N:30,1,9999}
----------------------------------
函数:LLV(X,N)
描述:最低值
类别:引用
参数:X为数组,N为计算周期
返回:返回数组
说明:求N周期内X最低值,N=0则从第一个有效值开始。
示例:LLV(LOW,0)表示求历史最低价
----------------------------------
函数:LLVBARS(X,N)
描述:上一低点位置
类别:引用
说明:求N周期内X最低值到当前周期数,N=0表示从第一个有效值开始统计
示例:LLVBARS(HIGH,10)求得10日最低点到当前的周期数
当前N天之内的最高点和最低点就一目了然了:
A:=BACKSET(ISLASTPERIOD,HHVBARS(H,N)+1);
B:=COUNT(A,N)=1;{取得前N个周期内的最高点位置}
REF(H,BARSLAST(B));
DRAWICON(B,H,1),ALIGN2;
A2:=BACKSET(ISLASTPERIOD,LLVBARS(L,N)+1);
B2:=COUNT(A2,N)=1;{取得前N个周期内的最低点位置}
REF(L,BARSLAST(B2));
DRAWICON(B2,L,2),ALIGN1;{主图叠加。N:30,1,9999}
这个公式求前期高低点,在600036等次新股上试调整参数就露马脚了,并不完善。
问题出在HHVBARS起算点等原因上。
下面这个公式可以说是完美解决方案:
HH:HHV(H,N),LINETHICK2;
LL:LLV(L,N),LINETHICK2;{主图叠加,参数N:30,1,9999}
VH=FFL.VARDATA("HH")
VL=FFL.VARDATA("LL")
VN=FFL.VARDATA("N")
LAST=UBOUND(VH)
IF VN&LAST THEN VN=LAST+1
FOR I=LAST TO LAST-VN+1 STEP-1
&&&&VH(I)=VH(LAST)
&&&&VL(I)=VL(LAST)
FFL.VARDATA("HH")=VH
FFL.VARDATA("LL")=VL
FFL.VARSTARTINDEX("HH")=LAST-VN+1
FFL.VARSTARTINDEX("LL")=LAST-VN+1
当N个周期之内,有两个最高价,即有等高的情况出现,HHVBARS会返回哪个最高价到当前的周期数呢?
用副图公式观察一下,N取10:
HHVBARS(H,N);
我们可以得出结论,返回的是前一个最高价到当前的周期数。
同样,当在N个周期之内,有两个等低的最低价出现时,LLVBARS会返回前一个最低价到当前的周期数。
----------------------------------
函数:MA(X,N)
描述:简单移动平均
类别:引用
参数:X为数组,N为计算周期
返回:返回数组
说明:求X的N日简单移动平均值。&&
算法:(X1+X2+X3+...+Xn)/N
示例:MA(CLOSE,20)表示求20日均价
MA:MOVING AVERAGE,移动平均。
目前飞狐的MA(X,N)函数支持N为序列变量。
这个简单移动平均值,仅仅覆盖最近的N个周期,并且在每个周期中分配的权重是一模一样的,均为1/N。
移动平均线实质上是一种追踪趋势的工具,而且滞后于市场的变化。这些结果的原因,就是它的计算方法了。
从输出看,N所取周期越长,曲线就越平滑。
平滑和敏感是一对矛盾,请看:
A:MA(C,5);
B:MA(A,5);
D:MA(B,5);{主图叠加}
输出线越来越平滑,但敏感性越来越差。
两条简单移动平均线的交叉,何时、何地所选的参数最优,可以参考飞狐中的“探索最佳参数”功能。
线性加权移动平均值的算法函数,飞狐并未提供。
以五天的线性加权移动平均的算法为例:
五天线性加权:(C*5+REF(C,1)*4+REF(C,2)*3+REF(C,3)*2+REF(C,4)*1)/(5+4+3+2+1);
MA(C,5);{主图叠加}
由于算法的原因,线性加权移动平均线由于日子越近的权重越大,比简单移动平均线,跟随趋势要紧密一些,敏感一些。
从图上看,两者的交叉也是极为敏感的。
----------------------------------
函数:REF(X,A)
描述:向前引用
类别:引用
参数:X为数组,A为计算周期
返回:返回数组
说明:引用A周期前的X值。
示例:REF(CLOSE,1)表示上一周期的收盘价,在日线上就是昨收
REF:REFERENCED,参考的、引用的。
A可以为变量,常用BARSLAST(X)等。
----------------------------------
函数:SMA(X,N,M)
描述:移动平均
类别:引用
参数:X为数组,N为计算周期,M为权重
返回:返回数组
说明:求X的N日移动平均,M为权重。
算法: 若Y=SMA(X,N,M) 则 Y=(M*X+(N-M)*Y')/N, 其中Y'表示上一周期Y值,N必须大于M。
示例:SMA(CLOSE,20,1)表示求20日移动平均价
SMA中的S,不会是SIMPLE(简单)的意思吧?由于我们习惯称MA为简单移动平均线,所以称SMA为什么就大伤脑筋。
SMA应该称为指数加权移动平均线。
把算法写成这个样子:Y=M/N*X+(N-M)/N*Y',就可以看出,当前周期数组值所占的权重是M/N,而上一周期Y值所占的权重是(N-M)/N。注意,这两个权重相加,结果为1:M/N+(N-M)/N=1。
看出来了吧?SMA(X,N+1,2)=EMA(X,N);
A:SMA(C,N+1,2);
B:EMA(C,N);{N:5,2,99。主图叠加}
两条线输出一样。在SMA的参数中,N必须大于M,否则没有输出。
SMA中,数组每天所占的权重,是较为复杂的。总的来说,日子越近,所占的权重越大,当天所占的权重是M/N,前一天所占的权重是M*(N-M)/(N*N);日子越远,所占的权重就越小,上市第一天的K线数据中,在目前还有权重的体现,不过已经非常非常小了。
SMA看似解决了MA的两大缺点:1、只有N天内的数据占有权重;2、N天内数据所占权重比重一样。有所得必有所失,SMA自己的缺点体现在光滑有余,敏感不足。
&&&&有一项检测系统得出的结论称:“简单移动平均值方法既胜过线性加权平均值法,也胜过指数加权平均值法。”(<期货市场技术分析>P231),当然他们不是检测中国股市。有兴趣的朋友,可以用这些移动平均函数,做出交易系统,然后进行检测。
----------------------------------
函数:SUM(X,N)
描述:求和
类别:引用
参数:X为数组,N为计算周期
返回:返回数组
说明:统计N周期中X的总和,N=0则从第一个有效值开始。
示例:SUM(VOL,0)表示统计从上市第一天以来的成交量总和
----------------------------------
函数:SUMBARS(X,A)
描述:累加到指定值周期数
类别:引用
参数:X为数组,A为计算周期
返回:返回数组
说明:将X向前累加直到大于等于A,返回这个区间的周期数
示例:SUMBARS(VOL,CAPITAL)求完全换手到现在的周期数
这个函数好用,在于它不但能精确地得到统计结果,而且能得到“模糊”的结果。
就以SUMBARS(VOL,CAPITAL)为例:
日期数:SUMBARS(VOL,CAPITAL);{返回成交量累加到流通盘的日期数}
验证:SUM(V,日期数)/CAPITAL;{把返回的日期数之内的成交量累计,再除以流通盘}
运行的结果中,我们可以看到,“验证”的输出,除了SUMBARS起算点附近之外,从来没有小于1的。可见SUMBARS只往多算,不往少算,非常“精明”。
----------------------------------
函数:WMA(X,A)
描述:加权移动平均
类别:引用
参数:X为数组,A为计算周期
返回:返回数组
说明:求X的加权移动平均。
算法: 若Y=WMA(X,A) 则Y=(N*X0+(N-1)*X1+(N-2)*X2)+...+1*XN)/(N+(N-1)+(N-2)+...+1),X0表示本周期值,X1表示上一周期值...
示例:WMA(CLOSE,20)表示求20日加权均价
----------------------------------
函数:REFDATE(X,A)
描述:指定日期的数据
类别:引用
说明:引用指定日期的数据.引用A日期的X值
示例:REF(CLOSE,),表示日的收盘价
----------------------------------
函数:MEMA(X,M)
描述:平滑移动平均
类别:引用
说明:返回平滑移动平均,X的M日平滑移动平均
----------------------------------
函数:EXPMA(X,M)
描述:加权移动平均
类别:引用
说明:返回加权移动平均,X的M日加权移动平均
----------------------------------
函数:EXPMEMA(X,M)
描述:加权平滑平均
类别:引用
说明:返回加权平滑平均,X的M日加权平滑平均
----------------------------------
函数:RANGE(A,B)
描述:幅差
类别:引用
说明:AB幅差.
示例:RANGE(CLOSE,OPEN),表示(CLOSE-OPEN)/OPEN
创新高投资论坛
Powered By
页面执行时间 0.20313 秒, 7 次数据查询}

我要回帖

更多关于 2016流通盘最小的股票 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信