带状疱疹可以抽烟吗:飞狐函数逐个数

来源:百度文库 编辑:偶看新闻 时间:2024/05/02 19:31:17
--------------------------------------------------------------------------------
 飞狐函数逐个数所属类别: 控制语句  参数数量: 0引用操作符
例如:
"INDIE.VAR"(P1,P2) 引用INDI指标的VAR输出,计算参数为P1,P2
"SYSTEM.FMLNAME.ENTERLONG"(P1,P2) 引用交易系统FMLNAME的多头买入信号
"EXPLORER.FMLNAME"(P1,P2) 引用条件选股FMLNAME的选股信号
"VOL##DAY" 引用日线数据的前一周期的VOL指标,数据类型有MIN1、MIN5、MIN15、MIN30、MIN60、DAY、WEEK、MONTH、YEAR、MULTIDAY、MULTIMIN、MULTISEC
"MACD#WEEK"(26,10,5) 引用周线数据的MACD指标
"SZ000001$CLOSE" 引用SZ市场的000001证券的收盘价
"DLLNAME@FNCNAME"(P1,P2) 引用DLLNAME.DLL的FNCNAME函数,计算参数为P1,P2 所属类别: 控制语句  参数数量: 0对下标对应的数组或序列元素进行取值或赋值
数组下标从1开始直到数据数量
例如:
VARIABLE:VARR1[10]=0,SARR[5]='str';VARR1[1]=VARR1[10];
定义1个含10个元素的数组并进行取值和赋值
又如移动平均线可通过如下循环语句和数组操作实现:
INPUT:N(5,2,500);      //参数申明
VARIABLE:i=0,s=0,VAR1:=C; //变量申明
FOR j=1 TO DATACOUNT DO BEGIN
s:=s+VAR1[j];
IF j>=n THEN BEGIN
  IF j>n THEN
    s:=s-VAR1[j-n];
  MA1[j]:s/n;        //实现MA(C,N)
  i:=0;
END;
END; 别名: 绝对值
所属类别: 数学函数  参数数量: 1求绝对值。
用法:
ABS(X)返回X的绝对值
例如:
ABS(-23)返回23
别名: 反余弦值
所属类别: 数学函数  参数数量: 1反余弦值。
用法:
ACOS(X)
返回X的反余弦值 
 --------------------------------------------------------------------------------
 别名: 上涨家数
所属类别: 行情函数  参数数量: 0取得该周期市场上涨家数。(本函数仅对大盘指数有效)
用法:
ADVANCE
所属类别: 线型描述  参数数量: 0画图标、文字的对齐方式
对于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;
别名: EVERY, 一直存在
所属类别: 逻辑函数  参数数量: 2一直存在
用法:
EVERY (X,N)返回N周期内一直满足条件X,N可为常数或变量,若N=0则从第一个有效值开始
例如:
EVERY (C>O,10)表示10个周期内一直是阳线 别名: 成交额
所属类别: 行情函数  参数数量: 0取得该周期成交额。
用法:
AMOUNT 
01行情函数
        advance   上涨家数--取得该周期市场上涨家数。(本函数仅对大盘有效)
amount    成交金额--取得该周期成交额。
askprice  委卖价--取得委卖1-委卖3价格。用法:askprice(n),n取1—3,(本函数仅个股在分笔成交分析周期有效)
askvol    委卖量--取得委卖1-委卖3量。用法:askvol(n),n取1—3,(本函数仅个股在分笔成交分析周期有效)
bidprice  委买价--取得委买1-委买3价格。用法:bidvol(n),n取1—3,(本函数仅个股在分笔成交分析周期有效)
bidvol    委买量--取得委买1-委买3量。用法:bidvol(n),n取1—3,(本函数仅个股在分笔成交分析周期有效)
buyvol    主动性买单--取得主动性买单量。当成交为主动性买盘时,其数值为该笔成交量,否则为0(本函数仅个股在分笔成交分析有效)
close     收盘价--取得该周期收盘价。
data2     引用另一证券数据--用法:data2.open, data2.high, data2.low, data2.close, data2.vol, data2.amount从data2到data10可引用其他9只证券的行情数据表示另一只证券的开、高、低、收、量额;例如: relate(c, data2.close, 10);对于指标图表示计算与主图叠加的证券的收盘价10周期相关系数
decline   下跌家数--取得该周期市场下跌家数。(本函数仅对大盘指数有效)
dividbars 派息发生周期数--用法:dividbars(n),取得之前第n次派息到当前的周期数,例如:dividbars(0)=0表示当天发生派息
dividend  派息--每股派息数量,用法:dividend(n),取得之前第n次每股派息数量,例如:dividend(0)表示最近一次派息的数量
high      最高价
indexa    对应大盘成交额       indexv  对应大盘成交量     indexadv  对应大盘上涨家数       indexdec  对应大盘下跌家数
indexo    对应大盘开盘价       indexc  对应大盘收盘价     indexh    对应大盘最高价         indexl    对应大盘最低价
isbuyorder是否主动性买单--当本笔成交为主动性买盘时,返回1,否则为0(仅个股在分笔成交分析周期有效)
not(isbuyorder)*0.5 是否为主动性卖单
low       最低价               open     开盘价             vol       成交量
openint   持仓量--持仓量 取得期货品种该周期最后时刻持仓量。用法:openint
qt        成交笔数成交笔数--取得该周期成交笔数。用法:qt
sellvol   动性卖单量--当本笔成交为主动性卖盘时,其数值为该笔成交量,否则为0(本函数仅个股在分笔成交分析周期有效)
split     除权比例--用法:split(n),取得之前第n次除权(送股或配股)的除权比例,表示除权后股价将下跌该比例。例如:split(0)=0.5表示最近一次除权可能是10送10,股价下跌一半
splitbars 除权发生的周期数--用法:splitbars(n),取得之前第n次除权到当前的周期数,例如:splitbars(0)=0表示当天发生除权。
splitdata 除权数据--用法:splitdata(n) 取得对应除权数据, n参数表示取那种分红数据,n=0 有除权时为1,否则为0,n=1 红股,得到当时每十股送几股 n=2 配股,得到当时每十股配几股,n=3 配股价,得到当时配股价格 n=4 红利,得到当时每十股派息几元。 
 --------------------------------------------------------------------------------
 02动态行情dynainfo
       
3   前收        4   今开        5   最高        6   最低        7   最新        8   总手        9   现手
10  总额        11  均价        12  涨跌        13  震幅        14  涨幅        15  委比        16  委差
17  量比        18  委买        19  委卖        20  委买价        21  委卖价        22  内盘        23  外盘
24  涨速        25  买一量        26  买二量        27  买三量        28  买一价        29  买二价        30  买三价
31  卖一量        32  卖二量        33  卖三量        34  卖一价        35  卖二价        36  卖三价        37  换手率
38  五日均量        39  市盈率        40  成交方向        41  总市值        42  流通市值        43  买四量        44  买五量
45  买四价        46  买五价        47  卖四量        48卖五量        49  卖四价        50  卖五价        51  成交笔数
52  每笔均量 03财务数据finance
       
0=更新日期        1=总股本(万股)        2=国家股        3=发起人法人股        4=法人股
5=b股        6=h股        7=流通a股        8=职工股        9=a2转配股
10=总资产(千元)        11=流动资产        12=固定资产        13=无形资产        14=长期投资
15=流动负债        16=长期负债        17=资本公积金        18=每股公积金        19=股东权益
20=主营收入        21=主营利润        22=其他利润        23=营业利润        24=投资收益
25=补贴收入        26=营业外收支        27=损益调整        28=利润总额        29=税后利润
30=净利润        31=未分配利润        32=每股未分配        33=每股收益        34=每股净资产
35=调整每股净资        36=股东权益比        37=净资收益率        38=经营现金流入        39=经营现金流出
40=经营现金流量        41=投资现金流入        42=投资现金流出        43=投资现金流量        44=筹资现金流入
45=筹资现金流出        46=筹资现金流        47=现金及等价物        48=应收帐款周转率        49=存货周转率
50=股东总数        51=发行价        52=速动比率        53=主营业务增长率        54=税后利润增长率
55=净资产增长率        56=总资产增长率                        04扩展数据
        estdata   横向统计数据--用法:estdata(n),n取1--n 或者 estdata(s),s为数据名称,在[横向统计管理]中定义并计算数据。我们用基本公式做出的主图和副图公式,显示在个股或指数中,是纵向的,遍历当时显示的个股或指数中的每根k线。然后指标大小、变化、交叉情况等,都体现在某一个股或指数中。甲股和乙股,哪个kdj中的k值大?用纵向变量(指标),就一点招数都没有。又比如,两市a股中,今天有几只个股的收盘价在10日均线之上,用纵向变量(指标)也没有办法,因为纵向变量(指标)只能在某一个股或指数中才可以比较。而多股间横向的比较和统计,是很有参考价值的。
extdata   扩展数据--用法:extdata(n),n取1--13 或者 extdata(s),s为数据名称,在[扩展数据管理]中定义并计算数据。(本函数仅在日线分析周期有效)1,在公式设计时,由于系统的限制,无法在公式中直接实现横向排名的功能,例如,在公式中无法知道某股票的涨幅的排名,这时可将涨幅数据放入扩展数据库中,让飞狐自动对涨幅数据进行排序,从而获得股票的涨幅排名数据。2,由于考虑到磁盘空间及系统的效率,飞狐收盘时,保存的数据并未包含实时接收的全部数据,出于研究股票的需要,您可能需要其中的某些数据,这时可以把这些数据存入扩展数据库,以供调用。3,由于系统及磁盘空间的限制,一般保存的短周期的数据有时段限制,例如设置了只保存10天的分笔数据,超过10天的分笔数据将被自动删除,此时若想对分笔数据进行统计研究,将无法进行,这时可将分笔统计数据存入扩展数据库。
4,由于系统的限制,公式中无法从长周期引用短周期的指标数据,这时可将短周期的指标数据存入扩展数据库。
selfdata  自定义数据--用法:selfdata(s),s为数据名称例如:selfdata('发行价'),返回自定义的'发行价'数据,在[自定义数据管理]中定义并计算或编辑数据。(本函数仅在日线分析周期有效) 
 --------------------------------------------------------------------------------
 05时间函数
       
barpos        数据位置--返回当前是第几根k线。对于日线数据就表示从上市到现在总共有多少交日.=barscount(c)
barstatus     数据位置状态。1表示第1根k线,2表示最后1根k线,0表示中间的k线。
d1970todate   1970日转换为日期 --得到1970日期x的日期值。用法:d1970todate(x)
date          日期--返回(700101-1341231),表示19700101-20341231.说明: 取得该周期从1900以来的的年月日。
datediff      时间间隔--datediff(date1,date2).参数:date1,2为序列变量或常数,格式与date同,有效值范围为(800101-1301231),表示19800101-20301231 返回date1、date2两个日期之间的相差的天数,如果date1晚于date2,则datediff函数返回负数。示例: datediff(lsolartermdate(3),date)表示求当年立春到当前周期相差的天数
datetod1970   日期转换为1970日--得到日期x距离1970年1月1日以来的天数。用法:datetod1970(x)例如:datetod1970(date),返回当天距离1970年1月1日的天数。
day           天--返回有效值范围为(1-31)。说明:取得该周期的日期。
days1970      从1970以来的天数--天数 取得该周期从1970以来的天数。函数返回自从1970年1月1日以来天数,例如在1971年1月1日返回365。它与day函数不同,前者表示的是天数间隔,后者表示的是日期。用法:days1970
hour          小时--返回(0-23),对于日线及更长的分析周期值为0。说明: 取得该周期的小时数。
lday          农历日--返回有效值范围为(1-30). 说明: 取得该周期的农历日期。
lmonth        农历月--返回有效值范围为(1-12).说明: 取得该周期的农历月份。
lsolarterm    节气--lsolarterm(x).参数:x为序列,格式与date同,有效值范围为(700101-1341231),表示19700101-20341231 。返回有效值范围为(0-24),0表示该周期不在节气日中,1-24分别表示1=小寒、2=大寒、3=立春、4=雨水、5=惊蛰、6=春分、7=清明、8=谷雨、9=立夏、10=小满、11=芒种、12=夏至 、13=小暑、14=大暑、15=立秋、16=处暑、17=白露、18=秋分、19=寒露、20=霜降、21=立冬、22=小雪、23=大雪、24=冬至。示例:lsolarterm(date)表示求当前周期节气
lsolartermdat 节气日期--lsolartermdate(x) 参数: x为序列变量或常数,格式与date同,有效值范围为(700101-1341231),表示19700101-20341231 例: lsolartermdate(3):求当年的立春的日期,返回的序列中2001年之内的都为1010204
lsolartermday 节后第几日--lsolartermday(x)。参数: x为序列变量或常数,格式与date同,有效值范围为(800101-1301231),表示19800101-20301231。示例: lsolartermday(date)表示求当前周期是前一节气后的第几日
lyear         农历年--返回有效值范围为(1970-2038).说明: 取得该周期的农历年份。
minute        分钟--返回有效值范围为(0-59),对于日线及更长的分析周期值为0。说明: 取得该周期的分钟数。
moonth        月--返回有效值范围为(1-12) 说明: 取得该周期的月份。
openminutes   开盘分钟数--用法:openminutes(time)返回已开盘分钟数(1-总开盘分钟数),开盘前的都为1,收盘后都为总开盘分钟数,例如:openminutes(currenttime)在日线上得到现在已开盘分钟数,openminutes(time)在分钟线上得到当时已开盘分钟数
tototime      秒化时间--秒数转换为时间 得到从0点开始x秒后的时间值。用法:t0totime(x)
time          时分秒--返回有效值范围为(000000-235959)。小周期k线中使用大周期的时间函数不成问题,反之则不行。比如在分笔成交图中,也可以取得年、月等。在较大时间周期的k线中,比如日k线中,不能输出时分秒函数。
time0         秒数--秒数 取得该周期从当日0点以来的秒数。函数返回自从当日0点以来的秒数,对于日线以上的分析周期返回0
timetot0      时间化秒--时间转化为秒数 得到时间x距离当日0点的秒数。
weekday       周--返回有效值范围为(0-6),0表示星期天。说明: 取得该周期的星期数。
year          年--返回有效值范围为(1970-2038) 说明: 取得该周期的年份。 06引用函数
        backset   向前赋值--backset(x,n):若x非0,则将当前位置到n周期前的数值设为1?backset(c>o,2)若收阳则将该周期及前一周期数值设为1,否则为0,用于一些想使用未来数据的场合。
barscount 有效值周期数--barscount(x):第一个有效数据到当前的天数。barscount(c)对于日线数据取得上市以来总交易日数,对于分笔成交取得当日成交笔数,对于1分钟线取得当日交易分钟数?一般找第一根k线的位置,就可以写为barscount(c)=1;也是:barpos=1
barslast  上一条件成立位置--barslast(x) 参数: x为数组?说明:上一次x不为0到现在的天数。barslast(close/ref(close,1)>=1.1)表示上一个涨停板到当前的周期数。
barssince 第一条件成立位置--barssince(x):第一次x不为0到现在的天数。barssince(h>20)表示股价第一次超过20元时到当前的周期数。barssince和barscount很象,不过它找的是非零信号?
count     计数--count(x,n):统计n周期中满足x条件的周期数,若n=0则从第一个有效值开始,count(close>open,20)表示统计20周期内收阳的周期数 统计时,数组大于等于1时计入,小于1时不计入。
dma       动态移动平均--dma(x,a)  若y=dma(x,a) 则 y=a*x+(1-a)*y',其中y'表示上一周期y值,a必须小于1?它与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线开始起算dma(close,vol/capital)表示求以换手率作平滑因子的平均价。
ema       指数平滑移动平均--ema(x,n)参数: x为数组,n为计算周期?n可以取到1,不过输出就没有加权的效果了?算法: 若y=ema(x,n) 则y=[2*x+(n-1)*y']/(n+1), 其中y'表示上一周期y值?把算法写成这个样子: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?
filter    信号过滤--filter(x,n):过滤连续出现的信号,x满足条件后,删除其后n周期内的数据置为0。filter(close>open,5)查找阳线,5天内再次出现的阳线不被记录在内。
hhv       最高值--hhv(x,n) 参数: x为数组,n为计算周期,说明: 求n周期内x最高值,n=0则从第一个有效值开始? 示例: hhv(high,30) 表示求30日最高价。
hhvbars   上一高点位置--hhvbars(x,n) 求n周期内x最高值到当前周期数,n=0表示从第一个有效值开始统计。hhvbars(high,0)求得历史新高到到当前的周期数。当在n个周期之内,有两个等高的最高价出现时,hhvbars会返回前一个最高价到当前的周期数?
llv       最低价--llv(x,n) 参数: x为数组,n为计算周期,求n周期内x最低值,n=0则从第一个有效值开始。
示例: llv(low,0) 表示求历史最低价
llvbars   上一低点位置--llvbars(x,n) 求n周期内x最低值到当前周期数,n=0表示从第一个有效值开始统计,llvbars(high,20)求得20日最低点到当前的周期数。当在n个周期之内,有两个等低的最低价出现时,会返回前一个最低价到当前的周期数?
ma        简单移动平均--ma(x,n) 参数:x为数组,n为计算周期 说明: 求x的n日移动平均值。算法:(x1+x2+x3+...+xn)/n。
示例: ma(close,10),表示求10日均价?
ref       向前引用--ref(x,n) 参数: x为数组,n为计算周期,n可以为变量,常用barslast(x)等。说明: 引用n周期前的x值。
示例: ref(close,1) 表示上一周期的收盘价,在日线上就是昨收
refx      向后引用--引用若干周期后的数据?用法:refx(x,a),引用a周期后的x值。
例如:refx(close,1)表示后一周期的收盘价,在日线上就是明收
sma       移动平均--sma(x,n,m) 参数:x为数组,n为计算周期,m为权重?若y=sma(x,n,m) 则 y=[m*x+(n-m)*y')/n, 其中y'表示上一周期y值,n必须大于m?把算法写成这个样子: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);
sum       求和--sum(x,n):统计n周期中x的总和,n=0则从第一个有效值开始.sum(vol,0)统计上市以来的成交量总和.当数组为逻辑运算判断的结果时,count和sum的返回值是一样的?一般对于逻辑运算信号,用count统计,返回其它数值的,用sum统计?count(cross(ma(c,5),ma(c,10)),0)=sum(cross(ma(c,5),ma(c,10)),0);
sumbars   累加到指定值周期数--sumbars(x,a)  将x向前累加直到大于等于a,返回这个区间的周期数。
sumbars(vol,capital)求完全换手到现在的周期数。
tma       递归移动平均。用法:tma(x,n,m),求x的递归移动平均,n、m为权重。算法:若y=tma(x,n,m) 则 y=(n*y'+m*x), 其中y'表示上一周期y值。初值为m*x。例如:tma(close,0.9,0.1)表示求x的递归移动平均
wma       加权移动平均。用法:wma(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) 07逻辑函数
        all=every   一直存在--every(x,n)返回n周期内一直存在满足条件x,n可为常数或变量。every(c>o,10)表示10个周期中一直是阳线
exist=any   是否存在--exist(x,n)返回n周期内是否存在满足条件x,n可为常数或变量。exist(c>o,10)表示10个周期中存在阳线
between     介于--介于两个数之间?between(a,b,c)表示a处于b和c之间时返回1,否则返回0?
例如:between(close,ma(close,10),ma(close,5))表示收盘价介于5日均线和10日均线之间。
cross       交叉--两条线交叉?cross(a,b)表示当a从下方向上穿过b时返回1,否则返回0。
cross(ma(close,5),ma(close,10))表示5日均线与10日均线交金叉。
if          条件函数--条件函数:根据条件求不同的值?用法:if(x,a,b)若x不为0则返回a,否则返回b。
if(close>open,high,low)表示该周期收阳则返回最高值,否则返回最低值。
isdown isequal isup 该周期是否收阴 平盘 收阳?当收盘< - >开盘时,返回值为1,否则为0。
islastbar   是否最后周期--islastbar最后一个周期返回1,其余返回0?解释为最后一根条形图(k线)比较恰当。原为islastperiodr
last        持续存在--last(x,a,b)返回第前a周期到第前b周期是否一直满足条件x,若a为0,表示从第一天开始,b为0,表示到最后日止.这个函数使满足连续条件的信号滞后(往后移)了。
last(c>o,10,5)表示从第前10个周期到第前5个周期内一直是阳线。
longcross   维持交叉        两条线维持一定周期后交叉?longcross(a,b,n)表示a在n周期内都小于b,本周期从下方向上穿过b时返回1,否则返回0?longcross(ma(close,5),ma(close,10),5)表示5日均线维持5周期后与10日均线交金叉。
not         逻辑非--求逻辑非?not(x)返回非x,即当x=0时返回1,否则返回0?not(isup)表示平盘或收阴。
bange       范围--介于某个范围之间?range(a,b,c)表示a大于b同时小于c时返回1,否则返回0?
range(close,ma(close,5),ma(close,10))表示收盘价大于5日均线并且小于10日均线。 08数学函数
        abs       绝对值--求绝对值?用法:abs(x)返回x的绝对值?例如:abs(-34)返回34 相当于if(a>b,a-b,b-a);
acos      反余弦值      asin 反正弦值         atan 反正切值
ceiling   向上舍入--向上舍入:向数值增大方向舍入?用法:ceiling(a)返回沿a数值增大方向最接近的整数?
例如:ceiling(12.3)求得13,ceiling(-3.5)求得-3?
cos       余弦值
exp       指数--指数?exp(x)为e的x次幂?例如:exp(close)返回e的close次幂?
floor     向下舍入--向下舍入:向数值减小方向舍入?用法:floor(a)返回沿a数值减小方向最接近的整数?
例如:floor(12.3)求得12,floor(-3.5)求得-4?
fracpart  取小数部份--取小数部分 取得数据的小数部分?用法:fracpart(x)返回数值的小数部分?
例如:fracpart(12.3)求得0.3,fracpart(-3.5)求得-0.5?
intpart   取整--取整:绝对值减小取整,即取得数据的整数部分?用法:intpart(a)返回沿a绝对值减小方向最接近的整数?
例如:intpart(12.3)求得12,intpart(-3.5)求得-3?
ln        求自然对数--求自然对数?ln(x)以e为底的对数 ?例如:ln(close)求收盘价的对数?
log       求以10为底的对数--求10为底的对数?log(x)取得x的对数 ?例如:log(100)等于2?
max       最大值--求最大值?max(a,b)返回a和b中的较大值?
例如:max(close-open,0)表示若收盘价大于开盘价返回它们的差值,否则返回?
min       最小值--求最小值?min(a,b)返回a和b中的较小值 ?
例如:min(close,open)返回开盘价和收盘价中的较小值?相当于if(a>b,b,a);
mod       求模运算--求模运算?用法:mod(a,b)返回a对b求模?例如:mod(26,10)返回6?
pow       乘幂--乘幂?pow(a,b)返回a的b次幂 ?例如:pow(close,3)求得收盘价的3次方?
power(a,b)中的b支持小数,即可用0.5,那么pow(a,0.5)=sqrt(a)?
rand      随机整数--随机整数?用法:rand(n)返回一个范围在1-n的随机整数?
例如:close*(rand(10)/10+0.4)输出收盘价乘以[0.5-1.4]的随机系数?
reverse   求相反数--求相反数?用法:reverse(x)返回-x ?例如reverse(close)返回-close?
round     四舍五入为整数--四舍五入为整数,显示时不带小数用法:round(x)将x四舍五入为整数?
例如:round(3.3)求得3,round(3.5)求得4,round(-3.5)求得-4?
sgn       求符号值--求符号值?用法:sgn(x),当x>0,x=0,x<0分别返回1,0,-1?
sin       正弦值--sin(x)=a/c,cos(x)=b/c,tg(x)=a/b,ctg(x)=b/a?
角度x,一般有两种表达方式,一种是一个圆周为360度,还有一种是一个圆周为2π弧度?
sqrt      开平方--开平方?sqrt(x)为x的平方根?例如:sqrt(close)收盘价的平方根?
tan       正切值 
 --------------------------------------------------------------------------------
 09统计函数
        avedev  平均绝对偏差--avedev(x,n)为x的n日平均绝对偏差
devsq   线性回归预测值--forcast(x,n)为x的n周期线性回归预测值 例如:forcast(close,10)表示求10周期线性回归预测本周期收盘价 用最小二乘法,求出n周期内,x的一元线性回归线上的当天的值?与以上介绍的a值不同,a值是(n-1)周期前的回归线上的值?n取值为1时没有意义?
slope   线性回归斜率--slope(x,n)为x的n周期线性回归线的斜率。例如:slope(close,10)表示求10周期线性回归线的斜率,用最小二乘法,求出n周期内,x的一元线性回归线的斜率,相当于以上介绍的b值?在k线图上是(价差/时间差)的关系,与角度没有任何关系?n取值为1时没有意义?
std     估算标准差--std(x,n)为x的n日估算标准差        stdp    总体标准差--stdp(x,n)为x的n日总体标准差
var     估算样本方差--var(x,n)为x的n日估算样本方差    varp    总体样本方差--varp(x,n)为x的n日总体样本方差
统计对象可以看成是一个数列,数列中数据的总个数为n,以五天内的600036招商银行收盘价为例,n就为5。
数列的内容为:{9.17,9.24,9.11,8.85,8.87}。
1、算术平均值:数据总和除以总个数n。(9.17+9.24+9.11+8.85+8.87)/5=9.048。
2、偏差:每个数据,减去算术平均值的结果。9.17-9.048=0.122, 9.24-9.048=0.192, 9.11-9.048=0.062, 8.85-9.048=-0.198,   8.87-9.048=-0.178,各偏差相加,应该是等于0的。
3、平均绝对偏差:将偏差的绝对值相加,除以总个数n。(0.122+0.192+0.062+0.198+0.178)/5=0.150。
3  平均绝对偏差:avedev(c,5);{=0.150}。
4、(总体样本)方差:将偏差的平方相加,总和除以总个数n。用公式可以这样算:   (pow(0.122,2)+pow(0.192,2)+pow(0.062,2)+pow(0.198,2)+pow(0.178,2))/5=0.025。   方差的算法,经过化简,也可以这样算:每个数据的平方的平均数,减去平均数的平方。 在公式里就可以这样编了:ma(pow(c,2),5)-pow(ma(c,5),2);{0.025}。
4  devsq(c,5)/5;{=0.025}总体样本方差:varp(c,5);{=0.025}。
5、估算样本方差:是总体方差的n/(n-1)倍。0.025*5/(5-1)=0.031。它总比总体样本方差大一点,当n够大时,两者趋于相等。
5  varp(c,5)*(5/(5-1));{=0.032}估算样本方差:var(c,5);{=0.032}。
6、(总体)标准差:方差的开方。pow(0.025,0.5);{0.158}。
6  pow(varp(c,5),0.5);{=0.159}总体标准差:stdp(c,5);{=0.159}。
7、估算标准差:估算样本方差的开方。pow(0.031,0.5);{0.176}。
   同样,估算标准差也比总体标准差大一点,当n够大时,两者趋于相等。
7  pow(var(c,5),0.5);{=0.178}估算标准差:std(c,5);{=0.178}。
8、最小二乘法求回归直线方程。
   以上六个统计函数,除了第一个,其它五个,只要求出方差,就可以找到相应关系,全部求出来。而方差,可以用公式ma(pow(c,2),5)-pow(ma(c,5),2);求出,所以说,新东西只有一个:平均绝对偏差。
两个变量之间的回归分析称为简单回归或一元回归,三个以上变量之间的回归分析称为复回归或多元回归。如果变量间相关关系表现为线性相关的回归称为线性回归,表现为曲线相关的回归称为非线性回归。所谓一元线性回归,则是指两个变之间表现为线性相关关系的回归。一元线性回归的方法,就是在众多的点中,找到一根直线,而这根直线,最能代表众多点的平均“趋势”.直线的表达方程是:y=a+bx。只要两个参数a、b定下来,直线的位置就定了。求参数a、b的方法一般有两种,一种较为简便,但精度不够,称为平均数法。还有一种精度较高,应用也最多,叫最小二乘法。可想而知,飞狐中的线性回归预测值,是根据最小二乘法求出来的。这里就只介绍最小二乘法。设在众多点中穿过的回归直线的方程是y'=a+bx。而每个点的垂直高度为y。那么对应于每个点,都可得到类似于偏差的值y-y'。这些值的平方的总和达到最小,而求出参数a、b,就是最小二乘法的基本原理.y-y'=y-a-bx。每个点,都有对应的x、y值,那么将这些值,分别代入(y-a-bx),求平方,最后进行累计。最终的表达式q中,就只有a和b两个变量了。为使q具有最小值,必须使其对a,b的偏导数等于0。由这两个等式中,就可以求出a、b的值了。同例,x:{0,1,2,3,4}, y:{9.17,9.24,9.11,8.85,8.87}, xy:{0,9.24,18.22,26.55,35.48}。x的平均值是:(0+1+2+3+4)/5=2,x的平均值的平方是:4,y的平均值是:9.048, x平方{0,1,4,9,16},x平方总和是:30。b=(89.49-5*2*9.048)/(30-5*4)=-0.99/10=-0.099,a=9.048-(-0.099*2)=9.246。
y=9.246-0.099*x。这就是我们求出的回归直线方程。在前四天,y值为9.246,在今天,y=9.246-0.099*4=8.85。有了这两个值,就可以在主图上画线了:a:=backset(islastbar,5);b:=a>ref(a,1);drawicon(a,c,10);drawline(b,9.246,islastbar,8.85,0);{主图叠加}
用最小二乘法,求出n周期内,x的一元线性回归线上的当天的值。与以上介绍的a值不同,a值是(n-1)周期前的回归线上的值。n取值为1时没有意义。forcast(close,10){主图叠加}{8.85}.用最小二乘法,求出n周期内,x的一元线性回归线的斜率,相当于以上介绍的b值。在k线图上是(价差/时间差)的关系,与角度没有任何关系。n取值为1时没有意义。slope(c,5);{-0.099}.那么有了这两个函数,要画出回归线还是不容易。今天的回归线的值和斜率知道了,可(n-1)天之前的回归线上的值(相当于前面说的a值)还是不知道,因为指标均为序列变量,无法倒推。一般有两种方法,一种是全用基本函数,用起来有点麻烦,要调整参数。还有一种是借用vbs来倒推数据。 10期权函数
        delta       (期权价格变动对其标的物价格变动的比率)用法:delta(o, t, p, x, i, v, d) 参数说明请参见option函数
gamma       (delta指标变动对其标的物价格变动的比率)用法:gamma(o, t, p, x, i, v, d) 参数说明请参见option函数
option      期权定价,用法:option(o, t, p, x, i, v, d), o为期权类型,0表示看涨期权,1表示看跌期权,2表示期货看涨期权,1表示期货看跌期权, t为到期天数,p为标的物现价,x为履约价格,i为年利率,v为年波动率,d为年红利率,例如:option(0, 100, 22, 20, 6, 15, 0),求标的物现价为22,履约价格为20,年利率为6%,波动率为12%的100天后到期的看涨期权定价,option(1, datediff(date,1040615), close, 20, 6, 15, 0),求履约期满日为2004年6月1日的看跌涨期权定价
rho         (期权价格变动对利率变动的比率)用法:rho(o, t, p, x, i, v, d) 参数说明请参见option函数
theta       (期权价格变动对时间变动的比率)用法:theta(o, t, p, x, i, v, d) 参数说明请参见option函数
vega        (期权价格变动对其标的物价格波动率变动的比率)用法:vega(o, t, p, x, i, v, d) 参数说明请参见option函数
volo        波动率,用法: (x, n, m)为样本数为n的x序列的波动率,m为交易周期数,例如:volo(close,90,250) 表示计算90个样本收盘价数据的年波动率(输出以百分比为单位),以年250交易日计算 11指标函数
        cost        成本分布情况--cost(10),表示10%获利盘的价格是多少,即有10%的持仓量在该价格以下,其余90%在该价格以上为套牢盘?该函数仅对日线分析周期有效?
flatzig     归一化之字转向。用法:flatzig(x,n),当序列或k线变化量超过n%时转向,x为序列或常数,为常数时表示0:开盘价,1:最高价,2:最低价,3:收盘价,4:高点用最高价、低点用最低价,与zig函数不同的是本函数返回值在0-1之间。例如:flatzig(3,10)表示收盘价的10%的flatzig转向,flatzig(ma(c,20),10)表示均线的10%的flatzig转向
flatziga    归一化之字转向(绝对变化量)。用法:flatziga(x,n),当序列x变化量超过n时转向,与ziga函数不同的是本函数返回值在0-1之间。例如:flatziga(rsi1,10)
peak        前m个zig转向波峰值        peak(k,n,m)表示之字转向zig(k,n)的前m个波峰的数值,m必须大于等于1?例如:peak(1,5,1)表示%5最高价zig转向的上一个波峰的数值?
peaka       前m个ziga转向波峰值(绝对变化量)。用法:peaka(x,n,m)表示之字转向ziga(x,n)的前m个波峰的数值,m必须大于等于1,例如:peaka(rsi1,10,1)
peakbars    前m个zig转向波峰到当前距离        例如:peak(0,5,1)表示%5开盘价zig转向的上一个波峰到当前的周期数?
peakbarsa   前m个ziga转向波峰到当前周期数(绝对变化量)。用法:peakbarsa(x,n,m)表示之字转向ziga(x,n)的前m个波峰到当前的周期数,m必须大于等于1,例如:peakbarsa(rsi1,10,1)
ppart       远期成本比例--ppart(n):n为常数,表示n周期前的成本占总成本的比例,
如返回0.3表示30%,ppart(20); 20天前的成本占总成本的比例?
pwinner     远期获利盘比例--pwinner(n,x),n为常数,x为数组或常数。pwinner(20,close);表示20天前的那部分成本以当前收市价卖出的获利盘比例,例如返回0.2表示20%获利盘?
sar         抛物转向--sar(n,s,m),n计算周期,s步长,m极值?例sar(10,2,20)表示计算10日抛物转向,步长为2%,极限值为20%?
sarturn     抛物转向点--sarturn(n,s,m),n为计算周期,s为步长,m为极值,若发生向上转向则返回1,若发生向下转向则返回-1,否则的化为0?其用法与sar函数相同?
trough      前m个zig转向波谷值--trough(k,n,m)表示之字转向zig(k,n)的前m个波谷的数值,m必须大于等于1?例如:trough(2,5,2)表示%5最低价zig转向的前2个波谷的数值?
trougha     前m个ziga转向波谷值(绝对变化量)。用法:trougha(x,n,m)表示之字转向ziga(x,n)的前m个波谷的数值,m必须大于等于1。例如:trougha(rsi1,10,2)
troughbars  前m个zig转向波谷到当前距离--troughbars(k,n,m)表示之字转向zig(k,n)的前m个波谷到当前的周期数,m>=1?例如:trough(2,5,2)表示%5最低价zig转向的前2个波谷到当前的周期数?
troughbarsa m个ziga转向波谷到当前周期数(绝对变化量)。用法:troughbarsa(x,n,m)表示之字转向ziga(x,n)的前m个波谷到当前的周期数,m必须大于等于1,例如:troughbarsa(rsi1,10,2)
winer       获利盘比例--winner(close),表示以当前收市价卖出的获利盘比例,例如返回0.1表示10%获利盘。winner(10.5)表示10.5元价格的获利盘比例?该函数仅对日线分析周期有效?
zig         之字转向--zig(k,n),当价格变化量超过n%时转向,k表示0:开盘价,1:最高价,2:最低价,3:收盘价?例如:zig(3,5)表示收盘价的5%的zig转向?
ziga        绝对变化量之字转向。用法:ziga(x,n),当序列x变化量超过n时转向,例如:ziga(rsi1,10)
附一、zig线的画法。以zig(c,5),即收盘价转向,转向要求5%。从第一根k线上的收盘价,慢慢往后看。直到当天的c,和以前的k线的最低c值相比的涨幅,或与最高c值相比的跌幅超过5%时,才在当天作出记号,称之为拐点。涨幅超过5%的,称向上的拐点,跌幅过5%的,称向下的拐点。先有向下的拐点,于是第一根k线上的c值,就是高点了。在向下的拐点出现之后的每根k线上,相比较记录最低之c值。然后把当天的c值,比较,看有没有涨幅超过5%。向上的拐点出现之后,回过头,在与上一个向下的拐点之间,找到一个最低的c,作为zig的低点。产生向上拐点之后,就在之后的k线中记录c的最大值。当出现当天的c值,与最大c值相比,跌幅超过5%时,记为向下的拐点。于是从向下的拐点回过头来,在与上一个向上的拐点之间,找到一个最高的c,作为zig的高点。如此循环。也就是说,zig的高点和低点,是根据向上和向下的拐点出来之后,回溯过去才找到的。这就是zig未来数据的实质所在。且看最近期间的zig线是怎么画出的。从最后一根k线往前,如果先出现向下的拐点,则在此拐点到目前的k线中求出最小收盘价所在的k线,为低点。这个低点可能与目前的k线重合。重合的话目前的k线为低点,不重合的话目前k线为高点。如果先出现向上的拐点,则在此拐点到目前的k线中求出最高收盘价所在的k线,为高点。此高点与目前的k线重合,则目前的k线为高点,否则低点。
sar只跟k线中的h、l有关,与o、c无关。一、起画点,当n取5时,起画点就在第六根k线上。第一步要做的事,就是由第一根k线到第五根k线判断是看涨还是看跌。如是看涨,就要把起画点画成看涨sar,如是看跌,就要把起画点画成看跌sar。a:(h-ref(h,1)+l-ref(l,1))>0 and barscount(c)=2;如果a成立,则先画看跌sar(sar在k线之上);如果a不成立,则先画看涨sar。就是说不管n取多少,起画点是根据第一、二根k线上的h、l决定的。二、看涨sar:第一个看涨sar的值,是前五天的最低价,即ref(llv(l,5),1);然后看看sar值是不是比l小,是的话继续,否则在下一天跳转。第二个看涨sar的值,是sar(2)=sar(1)+af1*(ref(hhv(h,5),1)-sar(1)),sar(1)即为第一个看涨sar的值。af1是调整系数,如果当天的h比前五天的最高h大,则要+0.02(得0.04),否则还是取0.02。然后看看sar值是不是比l小,是的话继续,否则在下一天跳转。第三个看涨sar的值,是sar(3)=sar(2)+af2*(ref(hhv(h,5),1)-sar(2)),计算方法与求第二个看涨sar类同,只是当天的h是否比前五天的最高h大还要判断,是的话af2=af1+0.02,否则取af1。然后看看sar值是不是比l小,是的话继续,否则在下一天跳转。因为没有跳转的话,ref(hhv(h,5),1)-sar(2)的值肯定大于0,所以看涨sar一直是向上升的。如此循环往复,直到跳转条件成立就跳转,去画看跌sar了。而调整系数af的值,经过反复累积的话,最大是不能超过0.2的。三、看跌sar:第一个看跌sar的值,是前五天的最高价,即ref(hhv(h,5),1);然后看看sar值是不是比h大,是的话继续,否则要在下一天跳转。第二个看跌sar的值,是sar(2)=sar(1)+af1*(ref(llv(l,5),1)-sar(1)),sar(1)即为第一个看跌sar的值。af1是调整系数,如果当天的l比前五天的最低l小,则要+0.02(得0.04),否则还是取0.02。然后看看sar值是不是比h大,是的话继续,否则在下一天跳转。第三个看跌sar的值,是sar(3)=sar(2)+af2*(ref(llv(l,5),1)-sar(2)),计算方法与求第二个看跌sar类同,只是当天的l是否比前五天的最低l小还要判断,
是的话af2=af1+0.02,否则取af1。然后看看sar值是不是比h大,是的话继续,否则在下一天跳转。因为没有跳转的话,ref(llv(l,5),1)-sar(2)的值肯定小于0,所以看跌sar一直是向下跌的。如此循环往复,直到跳转条件成立就跳转,去画看涨sar了。而调整系数af的值,经过反复累积的话,最大是不能超过0.2的。sar没有未来之嫌,但nsm的调整对sar影响很大,感觉灵敏性过大。