文华财经“麦语言”函数手册(2011年10月更新)文华财经资讯有限公司1“麦语言”源于2004年文华推出的国内第一套程序化函数库,经过6年的发展,吸收几十万用户的意见反馈,一点一点完善起来的,是一套成熟稳定的模型开发平台。麦语言,是国内使用人数最多的程序化模型开发平台。麦语言倡导的是积木式的编程理念,把复杂算法封装到一个个的函数里,采用“小语法,大函数”的构建模式。语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用一、自编策略模型支持的函数1.历史数据引用AVPRICE取得均价(在盘后对于国内三个期货交易所指结算价)SETTLE取得结算价(只有在日线周期盘后才能取得当日的结算价)说明:如果用在周期小于'日'的K线上如5分钟K线,一小时k线,每根k线返回的值表示这根k线当日开盘时到这根k线的为止的结算价(均价)如果用在周期大于等于'日'的K线上,返回当根K线结束时间所在日的结算价.CLOSE取得收盘价(在盘中指最新价),也可简写为C。HIGH求高价,也可简写为H。LOW求最低价,也可简写为L。OPEN求开盘价,也可简写为O。OPI取持仓量REF(X,N)引用X在N个周期前的值例:REF(CLOSE,5);表示引用当前周期前第5个周期的收盘价REFX(X,N)引用N个周期后的数据。(N为大于等于1的整数)『未来函数』例:REFX(CLOSE,5);表示引用自当前周期后第5个周期的收盘价本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!#IMPORT引用某品种在某个周期上加载了某个指标的数据。用法:#IMPORT[CODE,PERIOD,FORMULA]ASVAR。引用CODE所对应的合约PERIOD2周期下指标FORMULA的数据。CODE文华码,PERIOD周期,FORMULA引用指标名,VAR定义变量名注意:1.只能引用.FML/.XFML文件2.只能引用如下周期:MIN1MIN3MIN5MIN15MIN30HOUR1DAYWEEKMONTHs3.只能短周期引用长周期4.被引用的指标中不能存在引用5.如果不写文华码,默认引用当前合约MINPRICE返回某品种的最小变动价位。用法:MINPRICE(CODE);返回CODE所对应合约的最小变动价位。CODE文华码或交易代码。例:MINPRICE('IF1107');表示返回IF1007的最小变动价位。注意:某些合约(如橡胶指数)查不到最小变动价位,返回0。VOL求成交量,也可简写为V。2.日内高频数据引用L2_BID1取秒周期末买1价(K线图)或该笔TICK时刻的买1价(Tick图)。用法:L2_BID1K线图时返回当前秒周期最后时刻的买1价。TICK图时返回该笔TICK时刻的买1价。L2_BID2取秒周期末买2价(K线图)或该笔TICK时刻的买2价(Tick图)。用法:L2_BID2K线图时返回当前秒周期最后时刻的买2价。TICK图时返回该笔TICK时刻的买2价。L2_BID3取秒周期末买3价(K线图)或该笔TICK时刻的买3价(Tick图)。用法:L2_BID3K线图时返回当前秒周期最后时刻的买3价。TICK图时返回该笔TICK时刻的买3价。L2_BID4取秒周期末买4价(K线图)或该笔TICK时刻的买4价(Tick图)。3用法:L2_BID4K线图时返回当前秒周期最后时刻的买4价。TICK图时返回该笔TICK时刻的买4价。L2_BID5取秒周期末买5价(K线图)或该笔TICK时刻的买5价(Tick图)。用法:L2_BID5K线图时返回当前秒周期最后时刻的买5价。TICK图时返回该笔TICK时刻的买5价。L2_ASK1取秒周期末卖1价(K线图)或该笔TICK时刻的卖1价(Tick图)。用法:L2_ASK1K线图时返回当前秒周期最后时刻的卖1价。TICK图时返回该笔TICK时刻的卖1价。L2_ASK2取秒周期末卖2价(K线图)或该笔TICK时刻的卖2价(Tick图)。用法:L2_ASK2K线图时返回当前秒周期最后时刻的卖2价。TICK图时返回该笔TICK时刻的卖2价。L2_ASK3取秒周期末卖3价(K线图)或该笔TICK时刻的卖3价(Tick图)。用法:L2_ASK3K线图时返回当前秒周期最后时刻的卖3价。TICK图时返回该笔TICK时刻的卖3价。L2_ASK4取秒周期末卖4价(K线图)或该笔TICK时刻的卖4价(Tick图)。用法:L2_ASK4K线图时返回当前秒周期最后时刻的卖4价。TICK图时返回该笔TICK时刻的卖4价。L2_ASK5取秒周期末卖5价(K线图)或该笔TICK时刻的卖5价(Tick图)。用法:L2_ASK5K线图时返回当前秒周期最后时刻的卖5价。TICK图时返回该笔TICK时刻的卖5价。L2_BIDVOL1取秒周期末买1量(K线图)或该笔TICK时刻的买1量(Tick图)。用法:4L2_BID1K线图时返回当前秒周期最后时刻的买1量。TICK图时返回该笔TICK时刻的买1量。L2_BIDVOL2取秒周期末买2量(K线图)或该笔TICK时刻的买2量(Tick图)。用法:L2_BID2K线图时返回当前秒周期最后时刻的买2量。TICK图时返回该笔TICK时刻的买2量。L2_BIDVOL3取秒周期末买3量(K线图)或该笔TICK时刻的买3量(Tick图)。用法:L2_BID3K线图时返回当前秒周期最后时刻的买3量。TICK图时返回该笔TICK时刻的买3量。L2_BIDVOL4取秒周期末买4量(K线图)或该笔TICK时刻的买4量(Tick图)。用法:L2_BID4K线图时返回当前秒周期最后时刻的买4量。TICK图时返回该笔TICK时刻的买4量。L2_BIDVOL5取秒周期末买5量(K线图)或该笔TICK时刻的买5量(Tick图)。用法:L2_BID5K线图时返回当前秒周期最后时刻的买5量。TICK图时返回该笔TICK时刻的买5量。L2_ASKVOL1取秒周期末卖1量(K线图)或该笔TICK时刻的卖1量(Tick图)。用法:L2_ASK1K线图时返回当前秒周期最后时刻的卖1量。TICK图时返回该笔TICK时刻的卖1量。L2_ASKVOL2取秒周期末卖2量(K线图)或该笔TICK时刻的卖2量(Tick图)。用法:L2_ASK2K线图时返回当前秒周期最后时刻的卖2量。TICK图时返回该笔TICK时刻的卖2量。L2_ASKVOL3取秒周期末卖3量(K线图)或该笔TICK时刻的卖3量(Tick图)。用法:L2_ASK3K线图时返回当前秒周期最后时刻的卖3量。TICK图时返回该笔TICK5时刻的卖3量。L2_ASKVOL4取秒周期末卖4量(K线图)或该笔TICK时刻的卖4量(Tick图)。用法:L2_ASK4K线图时返回当前秒周期最后时刻的卖4量。TICK图时返回该笔TICK时刻的卖4量。L2_ASKVOL5取秒周期末卖5量(K线图)或该笔TICK时刻的卖5量(Tick图)。用法:L2_ASK5K线图时返回当前秒周期最后时刻的卖5量。TICK图时返回该笔TICK时刻的卖5量。L2_PRICE取Tick图中该笔TICK的成交价。用法:L2_PRICE返回TICK图中该笔TICK的成交价。L2_VOLUME取TICK图中该笔TICK的成交量。用法:L2_VOLUME返回TICK图中该笔TICK的成交量。ASKBIGVOLPRICETICK图中该笔Tick盘口中空头满足大单条件的与最新价的最近价格。用法:ASKBIGVOLPRICE返回TICK图中该笔Tick盘口满足大单条件的与最新价的最近价格,注模型中需调用一次CALVOLPRICELIST函数BIDBIGVOLPRICETICK图中该笔Tick盘口中多头满足大单条件的与最新价的最近价格。用法:BIDBIGVOLPRICE返回TICK图中该笔Tick盘口满足大单条件的与最新价的最近价格,注模型中需调用一次CALVOLPRICELIST函数CALVOLPRICELISTTICK图中初始化盘口大单价格表,主要在BIDBIGVOLPRICE与ASKBIGVOLPRICE前使用,提供初始化。用法:CALVOLPRICELISTL2_SETBIGVOL设置大单成交手数阈值用法:6L2_SETBIGVOL(nVol)成交手数大于nVol的为大单,例:L2_SETBIGVOL(10);//大于10手的是大单L2_BKBIGCOUNT;//查看买开的大单成交次数;L2_BIDVOL取秒周期主动买的成交量。用法:L2_BIDVOL返回当前秒周期主动买的成交量L2_ASKVOL取秒周期主动卖的成交量。用法:L2_ASKVOL返回当前秒周期主动卖的成交量L2_BIDBIGCOUNT取秒周期主动买的大单成交次数。用法:L2_BIDBIGCOUNT返回当前秒周期主动买的大单成交次数L2_ASKBIGCOUNT取秒周期主动卖的大单成交次数。用法:L2_ASKBIGCOUNT返回当前秒周期主动卖的大单成交次数L2_BIDBIGTOTVOL取秒周期主动买的大单成交量。用法:L2_BIDBIGTOTVOL返回当前秒周期主动买的大单成交量L2_ASKBIGTOTVOL取秒周期主动卖的大单成交量。用法:L2_ASKBIGTOTVOL返回当前秒周期主动卖的大单成交量L2_BKVOL取秒周期买开的成交量。用法:L2_BKVOL返回当前秒周期买开的成交量L2_SKVOL取秒周期卖开的成交量。用法:L2_SKVOL返回当前秒周期卖开的成交量L2_BPVOL取秒周期买平的成交量。7用法:L2_BPVOL返回当前秒周期买平的成交量L2_SPVOL取秒周期卖平的成交量。用法:L2_SPVOL返回当前秒周期卖平的成交量L2_BKBIGCOUNT取秒周期买开的大单成交次数。用法:L2_BKBIGCOUNT返回当前秒周期买开的大单成交次数L2_SKBIGCOUNT取秒周期卖开的大单成交次数。用法:L2_SKBIGCOUNT返回当前秒周期卖开的大单成交次数L2_BPBIGCOUNT取秒周期买平的大单成交次数。用法:L2_BPBIGCOUNT返回当前秒周期买平的大单成交次数L2_SPBIGCOUNT取秒周期卖平的大单成交次数。用法:L2_SPBIGCOUNT返回当前秒周期卖平的大单成交次数L2_BKBIGTOTVOL取秒周期买开的大单成交量。用法:L2_BKBIGTOTVOL返回当前秒周期买开的大单成交量L2_SKBIGTOTVOL取秒周期卖开的大单成交量。用法:L2_SKBIGTOTVOL返回当前秒周期卖开的大单成交量L2_BPBIGTOTVOL取秒周期买平的大单成交量。用法:L2_BPBIGTOTVOL返回当前秒周期买平的大单成交量L2_SPBIGTOTVOL取秒周期卖平的大单成交量。用法:8L2_SPBIGTOTVOL返回当前秒周期卖平的大单成交量3.行情数据引用GETPRICE(N)根据文华码取出某一品种的最新价。例:GETPRICE(1209);返回文华码为1209的合约品种的最新价。4.金融统计BACKSET(X,N)若X条件成立,则将当前位置到N周期前的数值设为1。『未来函数』例:BACKSET(CLOSEOPEN,3);表示当K线收阳时,自当前位置到3周期前的数值设为1BARSLAST(X)求上一次条件成立到当前的周期数。COUNT(X,N)表示统计在N周期内满足X条件的周期数。如果N为0则表示从已申请到的数据的第一天开始算起。例:WR:=-100*(HHV(HIGH,N)-CLOSE)/(HHV(HIGH,N)-LLV(LOW,N));COUNT(WR80,5);表示统计在5个周期内满足WR80的次数DMA(X,A)返回X的动态移动平均,其中A为常数,并且必须介于0及1之间。计算方法:DMA(N)=DMA(N-1)*(1-A)+X(N)*A其中DMA(N-1)为第(N-1)天的DM