原文地址:飞狐其它函数作者:安阳周易研究 其它函数 checkuser(0) 检测用户 限制公式使用.用法:check:=checkuser(0)注册用户返回1,否则返回0. check:=checkuser(1)对非注册用户不可用该公式 colorrgb(r,g,b) rgb颜色值 rgb颜色值.用法:colorrgb(r,g,b)返回rgb颜色值(常数).例如:drawgbk(co, colorrgb(255,0,0), colorrgb(255,255,0),0);表示图形上最后一组co时从左到右从红色到黄色渐变填充子图. fft(x,n) 傅立叶变换 傅立叶变换.用法:fft(x,n):对序列x进行傅立叶变换或变换处理后反变换. 例如:fft(close,30)当n=0时对序列x进行傅立叶变换. 当n=1时对序列x进行傅立叶变换并反变换回来,与原x一致. 当n1时对序列x进行傅立叶变换并略去周期小于n的成分再反变换回来 linevalue(cond1,price1,cond2,price2,expand,log) 趋势线数值 计算趋势线数值.用法:linevalue(cond1,price1,cond2,price2,expand,log)计算(cond1,price1)和(cond2,price2)2点决定的直线的数值.cond为数组,price为数组或常数,log为1表示按对数计算,expand为1表示向左延长.可用于趋势线预警,选股等.计算方式:先得到cond2条件满足的后点,再向左求cond1条件满足的前点,仅根据此2点计算.如:linevalue(date=,low,date=,low,0,1) 表示计算连接2002年1月29日低点和2002年6月6日低点的以对数方式计算的趋势线 sort(x,d,n1,n2) 排序 对序列或数组进行排序.用法:sort(x,d,n1,n2),对x序列或数组从序号n1到n2进行排序,d为0升序,d为1降序.返回n1到n2的数据数量. 例如: sortpos(x,d,n1,n2) 排序位置 对序列或数组进行排序后的原本位置.用法:sortpos(x,d,n1,n2),对x序列或数组从序号n1到n2进行排序后x存放原数值对应的位置,d为0升序,d为1降序.返回n1到n2的数据数量. 例如: stkindi(stklabel,indiname,inditype,period) 引用指标 引用任意证券任意周期的任意指标输出.用法:stkindi(stklabel,indiname,inditype,period) stklabel指定证券代码,如为空表示当前证券.inditype为指标类型,有效值范围为(0-2),依次表示技术指标,条件选股,交易系统公式; period为周期类型,有效值范围为(-1-12),依次表示:当前周期,分笔成交,1分钟,5分钟,15分钟,30分钟,60分钟,日,周,月,年,多日,多分钟,多秒线 例如:stkindi( 1a0001 , ma.ma1 ,0,dataperiod);计算1a0001的当前周期ma指标的ma1指标线 stkindi( , rsi.rsi1 ,0,dataperiod);计算当前证券的当前周期ma指标的ma1指标线 username 取用户注册名 取用户注册名.用法:username. check:=strcmp(username, serid )0,为0表示用户注册名为 serid 绘图函数 drawbkbmp(cond,bmp) 画背景图 根据条件设置背景图.用法:drawbkbmp(cond,bmp);当图形上最后一组cond条件满足时,以mybmp做背景.例如:drawbkbmp(co, mybmp );表示图形上最后一组co时背景显示子fmldll目录下的mybmp.bmp图. drawgbk(cond,color1,color2,d) 画渐变背景色 绘制渐变背景色.用法:drawgbk(cond,color1,color2,d);当cond条件满足时,以color1到color2渐变色填充子图区域,d=0表示从左到右,d=1表示从上到下.例如:drawgbk(co, colorrgb(255,0,0), colorrgb(255,255,0),0);表示图形上最后一组co时从左到右从红色到黄色渐变填充子图. drawicon(cond,price,type) 画图标 在图形上绘制小图标.用法: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(closeopen,low,4)表示当收阳时在最低价位置画4号图标.drawicon(co, l, mybmp )表示当收阳时在最低价位置画fmldll子目录下的自制图标mybmp.bmp drawline(cond1,price1,cond2,price2,expand) 画直线 在图形上绘制直线段.用法: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天新低之间画直线并且向右延长. drawnumber(cond,price,number,precision) 显示数字 在图形上显示数字.用法:drawnumber(cond,price,number,precision).当cond条件满足时,在price位置书写数字number(可以为常数或数组序列)precision为小数显示位数(取值范围0-3).可align0-5定义对齐方式r. 例如:drawnumber(closeopen1.08,high,(close-ref(c,1))ref(c,1)*100,2) 表示当日涨幅大于8%时在最高价位置显示涨幅(相对开盘价的百分比). drawsl(cond,price,slope,len,d) 画斜线 在图形上绘制指定斜率,长度和方向的直线.用法:drawsl(cond,price,slope,len,d)当cond条件满足时,以price位置为起点绘制斜率为每个周期价差slope,长度为len周期的直线,len为0则无限延伸,d为1,2分别表示从起点向左,双向绘制,其余表示向右绘制. 例如:drawsl(low=llv(low,50),low,(refx(low,5)-low)5,5,1) drawtext(cond,price,text) 显示文字 在图形上显示文字.用法:drawtext(cond,price,text)当cond条件满足时,在price位置书写文字text,可用 n 换行,可align0-5定义对齐方式.例如:drawtext(closeopen1.08,low, 大阳线 )表示当日涨幅大于8%时在最低价位置显示 大阳线 字样. drawyitext(cond,price,code,type) 显示易学文字 在图形上显示易学文字,可align0-3定义对齐方式.用法:drawyitext(cond,price,code,type) 当cond条件满足时,在price位置书写type类型的code的对应文字.type为常数,取0--1,分别表示计算的是干支,64卦,code为对应的代码.例如:drawyitext(closeopen1.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)表示连二阳时在最低价位置显示k线卦象. fillrgn(cond,price1,price2) 画区间彩带 绘制指标区间彩带.用法:fillrgn(cond,price1,price2),当cond条件满足时,以color填充price1和price2的区间. 例如:fillrgn(ma1ma2, ma1,ma2),colorred 表示ma1ma2时以红色填充ma1和ma2之间的区域. partline(cond,price) 画分段线 分段绘制指标线.用法:partline(cond,price),满足cond条件绘制price连线. 例如:partline(cref(c,1),c),colorred表示收盘大于前收以红色绘制收盘价连线. polyline(cond,price) 画折线 在图形上绘制折线段.用法:polyline(cond,price),当cond条件满足时,以price位置为顶点画折线连接.例如:polyline(high=hhv(high,10),high)表示在创10天新高点之间画折线. stickline(cond,price1,price2,width,empty) 画柱线 在图形上绘制柱线.用法:stickline(cond,price1,price2,width,empty)当cond条件满足时,在price1和price2位置之间画柱状线.宽度为width(10为标准间距),empth大于1则画空心柱.例如:stickline(closeopen,close,open,8,1)表示画k线中阳线的空心柱体部分. stickline(closeopen,high,low,0.8,1)表示画k线中阳线的高低线部分. vertline(cond) 画垂直线 在图形上绘制垂直线段.用法:vertline(cond),在cond条件满足的周期处画垂直线. 例如:vertline(high=hhv(high,20))表示在创20天新高时画垂直线. 线型描述 aligh 画图标,文字的对齐方式 画图标,文字的对齐方式.对于drawicon,0图标中对齐;1图标上缘;2图标中缘;3图中;4图上;5图下 对于drawtext,drawnumber,0中对齐;1左对齐;2右对齐;3图中;4图上;5图下.对于drawyitext,3为竖排 例如:drawicon(cross(ma(c,5),ma(c,20)),h,3),align3; circledot 小圆圈线 画小圆圈线.例如: close,circledot; color 改变指标线颜色 改变指标线颜色.例如:  黑色:colorblack; 蓝色:colorblue; 棕色:colorbrown; 青色:colorcyan; 灰色:colorgray; 绿色:colorgreen; 晶红色:colormagenta; 红色:colorred; 白色:colorwhite; 黄色:coloryellow; colorstick 彩色棒状线 以零轴为中心画彩色棒状线,零轴下为阴线颜色,零轴上为阳线颜色.例如: close-open,colorstick; crossdot 叉状线或x状线 画叉状线或x状线.例如: close,crossdot; linedash 长虚线 画长虚状.例如: ma(close,20),linedash; linedashdot 长短虚线 画长短虚线.例如: ma(close,20),linedashdot; linedot 短虚线 画短虚线.例如: ma(close,20),linedot; linestick 棒状指标线 同时画棒状线与指标线.例如: vol,linestick; linethick 改变指标线粗细 改变指标线粗细.例如: 表示不画出指标线,不影响坐标,但可在顶部显示数值 pointdot 点状线 画点状线.例如: close,pointdot; precision 显示x位小数 指标图上指标数值显示x位小数,x取值范围0-7.例如:ma1: round(ma(c,10)),precision0; 显示四舍五入的整数 shift 指标线右移 指标线向后(向右)偏移x个周期.例如:ma1: ma(c,10),shift2; 将ma1指标线向后偏移2个周期.最多可偏移255个周期 stick 棒状线 画棒状线.例如: vol,stick; volstick 成交量柱状线 画成交量柱状线.例如: vol,volstick; 控制语句 ".#$@" 引用操作符 引用操作符.例如: "indie.var"(p1,p2) 引用indi指标的var输出,计算参数为p1,p2 "system.fmlname.enterlong"(p1,p2) 引用交易系统fmlname的多头买入信号 "explorer.fmlname"(p1,p2) 引用条件选股fmlname的选股信号 "macd#week"(26,10,5) 引用周线数据的macd指标 "vol##day" 引用日线数据的前一周期的vol指标 "sz000001$close" 引用sz市场的000001证券的收盘价 "dllname@fncname"(p1,p2) 引用dllname.dll的fncname函数,计算参数为p1,p2 [] 数组下标 对下标对应的数组或序列元素进行取值或赋值.数组下标从1开始直到数据数量 例如: str ;varr1[1]=varr1[10];定义1个含10个元素的数组并进行取值和赋值 and 逻辑与 逻辑与运算.用法: a and b 表示条件a与条件b同时成立 begin...end 复合语句 把多条语句看作一条语句.语法:begin...end break 跳出循环 跳出循环.语法:break; do 执行语句 执行语句.语法:for var=n1 to n2 do expr;while cond do expr enterlong 多头买入信号 交易系统之多头买入信号.例如: entershort 空头买入信号 交易系统之空头买入信号.例如: exit 终止公式执行 终止公式执行.语法:exit; exitlong 多头卖出信号 交易系统之多头卖出信号.例如: exitshort 空头卖出信号 交易系统之空头卖出信号.例如: ffl.vardata 传递数组数据 与vbs,js脚本间传递数组变量数据.例如:var = ffl.vardata("var1") ffl.varstartindex 传回数组数值起始位置 vbs,js脚本传回数组变量有效数值起始位置.例如:ffl.varstartindex("var1")=10 for 循环语句 for循环语句.语法:for var=n1 to n2 do expr;从 var=n1 开始到 var=n2 开始循环执行 expr 语句,每执行一次var加1.for var=n1 downto n2 do expr2;从 var=n1 开始到 var=n2 开始循环执行 expr 语句,每执行一次var减1 if 条件语句 if条件语句.