飞狐函数表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
飞狐函数表
? 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=总资产增长率
&=4-5
? 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) 说明:取得该周期的年份。
&=6
? 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)
&=7-8
? 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 正切值
&=9-10
? 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
? 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的最大值。
当出。