首页 麦语言函数手册

麦语言函数手册

举报
开通vip

麦语言函数手册 文华财经“麦语言”函数手册 (2011年10月更新) 文华财经资讯有限公司 “麦语言”源于2004年文华推出的国内第一套程序化函数库,经过6年的发展,吸收几十万用户的意见反馈,一点一点完善起来的,是一套成熟稳定的模型开发平台。麦语言,是国内使用人数最多的程序化模型开发平台。 麦语言倡导的是积木式的编程理念,把复杂算法封装到一个个的函数里,采用“小语法,大函数”的构建模式。语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。麦语言的函数库,是经常更新的...

麦语言函数手册
文华财经“麦语言”函数手册 (2011年10月更新) 文华财经资讯有限公司 “麦语言”源于2004年文华推出的国内第一套程序化函数库,经过6年的发展,吸收几十万用户的意见反馈,一点一点完善起来的,是一套成熟稳定的模型开发平台。麦语言,是国内使用人数最多的程序化模型开发平台。 麦语言倡导的是积木式的编程理念,把复杂算法封装到一个个的函数里,采用“小语法,大函数”的构建模式。语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用 1、 自编策略模型支持的函数 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] AS VAR。引用 CODE 所对应的合约 PERIOD 周期下指标 FORMULA 的数据。 CODE 文华码,PERIOD 周期,FORMULA 引用指标名,VAR定义变量名 注意:1.只能引用 .FML/.XFML文件 2.只能引用如下周期:MIN1 MIN3 MIN5 MIN15 MIN30 HOUR1 DAY WEEK MONTH s3.只能短周期引用长周期 4.被引用的指标中不能存在引用 5.如果不写文华码,默认引用当前合约 MINPRICE 返回某品种的最小变动价位。 用法:MINPRICE(CODE); 返回CODE所对应合约的最小变动价位。 CODE 文华码或交易代码。例:MINPRICE('IF1107'); 表示返回IF1007的最小变动价位。 注意:某些合约(如橡胶指数)查不到最小变动价位,返回0。 VOL 求成交量,也可简写为V 。 2.日内高频数据引用 L2_BID1 取秒周期末买1价(K线图)或该笔TICK时刻的买1价(Tick图)。 用法: L2_BID1 K线图时返回当前秒周期最后时刻的买1价。TICK图时返回该笔TICK时刻的买1价。 L2_BID2 取秒周期末买2价(K线图)或该笔TICK时刻的买2价(Tick图)。 用法: L2_BID2 K线图时返回当前秒周期最后时刻的买2价。TICK图时返回该笔TICK时刻的买2价。 L2_BID3 取秒周期末买3价(K线图)或该笔TICK时刻的买3价(Tick图)。 用法: L2_BID3 K线图时返回当前秒周期最后时刻的买3价。TICK图时返回该笔TICK时刻的买3价。 L2_BID4 取秒周期末买4价(K线图)或该笔TICK时刻的买4价(Tick图)。 用法: L2_BID4 K线图时返回当前秒周期最后时刻的买4价。TICK图时返回该笔TICK时刻的买4价。 L2_BID5 取秒周期末买5价(K线图)或该笔TICK时刻的买5价(Tick图)。 用法: L2_BID5 K线图时返回当前秒周期最后时刻的买5价。TICK图时返回该笔TICK时刻的买5价。 L2_ASK1 取秒周期末卖1价(K线图)或该笔TICK时刻的卖1价(Tick图)。 用法: L2_ASK1 K线图时返回当前秒周期最后时刻的卖1价。TICK图时返回该笔TICK时刻的卖1价。 L2_ASK2 取秒周期末卖2价(K线图)或该笔TICK时刻的卖2价(Tick图)。 用法: L2_ASK2 K线图时返回当前秒周期最后时刻的卖2价。TICK图时返回该笔TICK时刻的卖2价。 L2_ASK3 取秒周期末卖3价(K线图)或该笔TICK时刻的卖3价(Tick图)。 用法: L2_ASK3 K线图时返回当前秒周期最后时刻的卖3价。TICK图时返回该笔TICK时刻的卖3价。 L2_ASK4 取秒周期末卖4价(K线图)或该笔TICK时刻的卖4价(Tick图)。 用法: L2_ASK4 K线图时返回当前秒周期最后时刻的卖4价。TICK图时返回该笔TICK时刻的卖4价。 L2_ASK5 取秒周期末卖5价(K线图)或该笔TICK时刻的卖5价(Tick图)。 用法: L2_ASK5 K线图时返回当前秒周期最后时刻的卖5价。TICK图时返回该笔TICK时刻的卖5价。 L2_BIDVOL1 取秒周期末买1量(K线图)或该笔TICK时刻的买1量(Tick图)。 用法: L2_BID1 K线图时返回当前秒周期最后时刻的买1量。TICK图时返回该笔TICK时刻的买1量。 L2_BIDVOL2 取秒周期末买2量(K线图)或该笔TICK时刻的买2量(Tick图)。 用法: L2_BID2 K线图时返回当前秒周期最后时刻的买2量。TICK图时返回该笔TICK时刻的买2量。 L2_BIDVOL3 取秒周期末买3量(K线图)或该笔TICK时刻的买3量(Tick图)。 用法: L2_BID3 K线图时返回当前秒周期最后时刻的买3量。TICK图时返回该笔TICK时刻的买3量。 L2_BIDVOL4 取秒周期末买4量(K线图)或该笔TICK时刻的买4量(Tick图)。 用法: L2_BID4 K线图时返回当前秒周期最后时刻的买4量。TICK图时返回该笔TICK时刻的买4量。 L2_BIDVOL5 取秒周期末买5量(K线图)或该笔TICK时刻的买5量(Tick图)。 用法: L2_BID5 K线图时返回当前秒周期最后时刻的买5量。TICK图时返回该笔TICK时刻的买5量。 L2_ASKVOL1 取秒周期末卖1量(K线图)或该笔TICK时刻的卖1量(Tick图)。 用法: L2_ASK1 K线图时返回当前秒周期最后时刻的卖1量。TICK图时返回该笔TICK时刻的卖1量。 L2_ASKVOL2 取秒周期末卖2量(K线图)或该笔TICK时刻的卖2量(Tick图)。 用法: L2_ASK2 K线图时返回当前秒周期最后时刻的卖2量。TICK图时返回该笔TICK时刻的卖2量。 L2_ASKVOL3 取秒周期末卖3量(K线图)或该笔TICK时刻的卖3量(Tick图)。 用法: L2_ASK3 K线图时返回当前秒周期最后时刻的卖3量。TICK图时返回该笔TICK时刻的卖3量。 L2_ASKVOL4 取秒周期末卖4量(K线图)或该笔TICK时刻的卖4量(Tick图)。 用法: L2_ASK4 K线图时返回当前秒周期最后时刻的卖4量。TICK图时返回该笔TICK时刻的卖4量。 L2_ASKVOL5 取秒周期末卖5量(K线图)或该笔TICK时刻的卖5量(Tick图)。 用法: L2_ASK5 K线图时返回当前秒周期最后时刻的卖5量。TICK图时返回该笔TICK时刻的卖5量。 L2_PRICE 取Tick图中该笔TICK的成交价。 用法: L2_PRICE 返回TICK图中该笔TICK的成交价。 L2_VOLUME 取TICK图中该笔TICK的成交量。 用法: L2_VOLUME 返回TICK图中该笔TICK的成交量。 ASKBIGVOLPRICE TICK图中该笔Tick 盘口中空头满足大单条件的与最新价的最近价格。 用法: ASKBIGVOLPRICE 返回TICK图中该笔Tick 盘口满足大单条件的与最新价的最近价格, 注模型中需调用一次CALVOLPRICELIST函数 BIDBIGVOLPRICE TICK图中该笔Tick 盘口中多头满足大单条件的与最新价的最近价格。 用法: BIDBIGVOLPRICE 返回TICK图中该笔Tick 盘口满足大单条件的与最新价的最近价格, 注模型中需调用一次CALVOLPRICELIST函数 CALVOLPRICELIST TICK图中初始化盘口大单价格表,主要在BIDBIGVOLPRICE 与ASKBIGVOLPRICE 前使用,提供初始化。 用法: CALVOLPRICELIST L2_SETBIGVOL 设置大单成交手数阈值 用法: L2_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 取秒周期买平的成交量。 用法: 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 取秒周期卖平的大单成交量。 用法: L2_SPBIGTOTVOL 返回当前秒周期卖平的大单成交量 3.行情数据引用 GETPRICE(N) 根据文华码取出某一品种的最新价。 例:GETPRICE(1209);返回文华码为1209的合约品种的最新价。 4.金融统计 BACKSET(X,N) 若X条件成立,则将当前位置到N周期前的数值设为1。『未来函数』 例:BACKSET(CLOSE>OPEN,3);表示当K线收阳时,自当前位置到3周期前的数值设为1 BARSLAST(X) 求上一次条件成立到当前的周期数。 COUNT(X,N) 表示统计在N周期内满足X条件的周期数。如果N为0则表示从已申请到的数据的第一天开始算起。 例:WR:=-100*(HHV(HIGH,N)-CLOSE)/(HHV(HIGH,N)-LLV(LOW,N)); COUNT(WR>80,5);表示统计在5个周期内满足WR>80的次数 DMA(X,A) 返回X的动态移动平均,其中A为常数,并且必须介于0及1之间。 计算方法:DMA(N)=DMA(N-1)*(1-A)+X(N)*A 其中DMA(N-1)为第(N-1)天的DMA值。 EMA(X,N) 表示求X在N周期内的平滑移动平均。(指数加权) 计算方法:EMA(X,N)=[2*X+(N-1)*EMA(X,(N-1))]/(N+1) 其中EMA(X,(N-1))为第(N-1)天的EMA值 EMA2(X,N) 表示求X在N周期内的加权平均。(线性加权) 计算方法:EMA2(X,N)=(N*X0+(N-1)*X1+(N-2)*X2+...+1*XN-1)/(N+(N-1)+(N-2)+...+1),X0表示本周期值,X1表示上一周期值... HHV(X,N) 得到X在N周期内的最高值,如果N=0,则从本地数据的第一个有效周期开始算起。 例:HHV(HIGH,13);求13个周期内的最高价的最大值。 HHVBARS(X,N) 得到X在N周期内的最高值位置到当前的周期数。如果N=0,则从本地数据的第一个有效周期开始算起。 例:HHVBARS(VOL,0); 求历史成交量最大的周期到当前的周期数 LLV(X,N) 得到X在N周期内的最小值,如果N=0,则从本地数据的第一个有效周期开始算起。 例:LLV(LOW,25);表示求25个周期内最低价的最小值 LLVBARS(X,N) 得到X在N周期内的最小值的位置到当前的周期数。如果N=0则从本地数据的第一个有效周期开始算起。 例:LLVBARS(VOL,0); 求历史成交量最小的周期到当前的周期数 MA(X,N) 求X在N周期内的简单移动平均。 计算方法:MA=(A1+A2+A3+A4+A5)/5 求A在5个周期内的简单移动平均 SLOPE(X,N) 求线型回归的斜率。 用法: SLOPE(X,N)得到X的N周期的线型回归的斜率。 例:SLOPE(CLOSE,5);表示求收盘价5个周期线性回归线的斜率 ZIGZAG(X,P,N) 之字转向,当X变化量超过P时转向,当N取1,P为百分比数;当N取0,P为价位差值绝对值。『未来函数』 例:ZIGZAG(HIGH,10,1);表示最高价的10%的之字转向 ZIGZAG(MA(HIGH,34),100,0);表示34个周期内最高价均线的100个价位的之字转向 PEAK(X,P,M,N) 取得ZIGZAG前M个波峰的值。其中X为数据,P为转折值(如果N为1,这个值为百分比数,否则为价位差值绝对值),M为大于等于1的整数。『未来函数』 例:PEAK(HIGH,10,1,1);表示最高价的10%的之字转向的上一个波峰的数值; PEAK(MA(HIGH,34),100,1,0);表示34个周期内最高价均线的100个价位的之字转向的上一个波峰的数值 PEAKBARS(X,P,M,N) 取得ZIGZAG前M个波峰到当前周期的周期数。其中X为数据,P为转折值(如果N为1,这个值为百分比数,否则为价位差值绝对值),M为大于等于1的整数。『未来函数』 例:PEAKBARS(HIGH,10,1,1);表示最高价的10%的之字转向的上一个波峰到当前的周期数 PEAKBARS(MA(HIGH,34),100,1,0);表示34个周期内最高价均线的100个价位的之字转向的上一个波峰到当前的周期数 TROUGH(X,P,M,N) 取得ZIGZAG前M个波谷的值。其中X为数据,P为转折值(如果N为1,这个值为百分比数,否则为价位差值绝对值),M为大于等于1的整数。『未来函数』 例:TROUGH(LOW,10,1,1);表示最低价的10%的之字转向的上一个波谷的数值 TROUGH (MA(LOW,34),100,1,0);表示34个周期内最低价均线的100个价位的之字转向的上一个波谷的数值 TROUGHBARS(X,P,M,N) 取得ZIGZAG前M个波谷到当前周期的周期数。其中X为数据,P为转折值(如果N为1,这个值为百分比数,否则为价位差值绝对值),M为大于等于1的整数。『未来函数』 TROUGH(LOW,10,1,1);表示最低价的10%的之字转向的上一个波谷到当前的周期数 TROUGH (MA(LOW,34),100,1,0);表示34个周期内最低价均线的100个价位的之字转向的上一个波谷到当前的周期数 SAR(N,Step,Max) 得到抛物转向值。N为计算周期,Step为步长,Max为极值。(系统函数,计算步骤后台自动完成) 例:SAR(17,0.03,0.3);表示计算17个周期抛物转向,步长为3%,极限值为30% SMA(X,N,M) 得到X在N个周期内的移动平均,M为权重(M为常数)。 计算方法:SMA(N)=SMA(N-1)*(N-M)/N+X(N)*M/N STD(X,N) 求 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 差。 用法: STD(X,N)求X在N个周期内的标准差。 STDP(X,N) 求总体标准差。 用法: STDP(X,N)为X的N日总体标准差。 SUM(X,N) 得到X在N周期内的总和,如果N=0,则从第一个有效周期开始算起。 例: SUM(VOL,10);表示统计10周期内的成交量总和 SUMBARS(X,A) 得到X向前累加直到大于A时的周期数。 TRMA(X,N) 求X在N周期内的三角移动平均。 TSMA(X,N) 求X在N周期内的时间序列移动平均。 计算方法:TSMA(X,N)= FOCAST(X,N)+SLOPE(X,N) 5.数理统计 AVEDEV(X,N) 求X在N周期内的平均绝对偏差 DEVSQ(X,N) 数据偏差平方和。 FORCAST(X,N) 得到X的N周期线性回归预测值。 例:FORCAST(CLOSE,5);表示求5周期线性回归预测 VAR(X,N) 得到X在N周期内的样本方差 VARP(X,N) 得到X在N周期内的总体样本方差 数理统计举例说明: 设一个数列,数列中数据的总个数为N,以今天(2005-10-14)五天内的A0605收盘价为例,N就为5。数列的内容为:{2766,2805,2814,2886,2885}。 1、算术平均值MA(CLOSE,5):数据总和除以总个数N。 (2766+2805+2814+2886+2885)/5=2831.20。 可以用公式MA(CLOSE,5),从今天的值上看出。 2、偏差:每个数据,减去算术平均值的结果。 2766-2831.20=-65.2, 2805-2831.20=-26.2, 2814-2831.20=-17.2, 2886-2831.20=54.8, 2885-2831.20=53.8, 各偏差相加,应该是等于0的。 3、平均绝对偏差AVEDEV(X,N):将偏差的绝对值相加,除以总个数N。 (65.2+26.2+17.2+54.8+53.8)/5=43.44 4、数据偏差平方和DEVSQ(X,N):将偏差的平方相加。 (-65.2)2+ (-26.2)2+ (-17.2)2+ (54.8)2+ (53.8)2=11130.80 5、总体样本方差VARP(X,N):将偏差的平方相加,总和除以总个数N。用公式可以这样算: (-65.2)2+ (-26.2)2+ (-17.2)2+ (54.8)2+ (53.8)2/5=2226.16 6、样本方差VAR(X,N):是总体方差的N/(N-1)倍。 2226.16*5/(5-1)=2782.70 估算样本方差,总比总体样本方差大一点,当N够大时,两者趋于相等。 6.逻辑判断 BETWEEN(A,B,C) 判断条件“A位于B及C之间”是否成立,如果条件成立则返回1 (yes),否则返回0 (no)。 例:BETWEEN(CLOSE,MA5,MA40); 表示收盘价介于5日均线与40日均线之间。 CROSS(X,Y) 表示X上穿Y。 例:CROSS(CLOSE,MA(CLOSE,5));表示收盘线从下方向上穿过5日均线 CROSS2(A,B) 两条线交叉。 用法: CROSS2(A,B)表示当A从下方向上穿过B两次时返回1(Yes),否则返回0(No) 例:CROSS2(CLOSE,MA(CLOSE,5));表示收盘线从下方向上穿过5日均线两次 FILTER(COND,N) 过滤连续出现的信号。 用法: FILTER(COND,N) 当COND条件成立时,将其后N周期内的数据置为0。 例:FILTER(CLOSE>OPEN,3) 查找阳线,3天内再次出现的阳线不被记录在内 注:不能与BKPRICE,BARSBK,SKPRICE,BARSSK一起使用 EXIST(COND,N) 判断N个周期内是否有满足条件COND的情况发生。 例:EXIST(CLOSE>REF(HIGH,1),10);表示10个周期中是否存在收盘价大于前一个周期的最高价 EVERY(COND,N) 判断过去N个周期内是否一直满足条件COND。 例:EVERY(CLOSE>OPEN,5);表示5个周期内一直是阳线 LAST(COND,N1,N2) 判断过去N1到N2周期内是否一直满足条件COND。 例:LAST(CLOSE>OPEN,10,5);表示从过去第10个周期到第5个周期内一直是阳线 LONGCROSS(A,B,N) 如果A在前N个周期内都小于B,本周期上穿B,则返回1。否则返回0。 例:LONGCROSS(CLOSE,MA(CLOSE,10),20);表示收盘线在10日均线之下持续20周期后从下向上穿过10日均线 NOFILTER 交易模型买卖指令信号过滤函数。(仅适用于交易模型的过滤) 交易模型公式后加“NOFILTER;”是指不需要过滤,出现任何交易指令都会执行。公式后不加“NOFILTER;”是指当连续出现同方向的交易指令时,系统只显示出第一个交易指令,其他交易指令自动被过滤。 IFELSE(C,A,B) 如果条件C成立则取A值,否则取B值 例:A:=IFELSE(MA5>MA10,CROSS(DIFF,DEA),IFELSE(CROSS(D,K),2,0));当MA5>MA10时,取是否满足DIFF上穿DEA,否则(MA5不大于MA10),当K,D死叉时,令A赋值为2,若上述条件都不满足,A赋值为0 A=1,BPK;//当MA5>MA10,以DIFF上穿DEA作为开多仓条件 A=2,SPK;//当MA5不大于MA10,以K D死叉作为开空仓条件 ISDOWN 判断该周期是否收阴。 ISEQUAL 判断该周期是否平盘。 ISUP 判断该周期是否收阳。 ISLASTBAR 判断当前周期是否为最后一根K线。 VALUEWHEN(COND,DATA) 当条件COND满足时,取当时的DATA的值,否则取得前面一个满足条件COND的值。 例:VALUEWHEN(HIGH>REF(HIGH,5),HIGH);表示当前最高价大于前五个周期最高价的最大值时返回当前最高价。 7.数学运算 ABS(X) 求X的绝对值 例:ABS(SAR(17,0.03,0.3));返回抛物转向SAR(17,0.03,0.3)的绝对值。 ACOS(X) 求X的反余弦值 ASIN(X) 求X的反正弦值 ATAN(X) 求X的反正切值 COS(X) 返回X的余弦值 EXP(X) 返回e的X次幂 CUBE(X) 返回X的三次方。 CEILING(X) 向上舍入,返回沿X数值增大方向最接近的整数。 FLOOR(X) 向下舍入,返回沿X数值减小方向最接近的整数。 INTPART(X) 取X的整数部分,返回沿X绝对值减小方向最接近的整数。 LN(X) 得到X的自然对数,以e为底的对数。 例:LN(OPEN);求开盘价的自然对数。 LOG(X) 得到X的常用对数,取得X的以10为底的对数。 例:LOG(OPEN);求开盘价的以10为底的对数。 MAX(A,B) 求A,B中的较大者。 例:MAX(CLOSE-OPEN,0);表示若收盘价大于开盘价返回它们的差值,否则返回0。 MIN(A,B) 求A,B中的较小者。 例:MIN(OPEN,CLOSE);返回开盘价和收盘价中的较小值。 MOD(A,B) 返回A对B得到模。 例:MOD(CLOSE,500);收盘价除以500所得余数 NOT(X) 当X为0时返回1,否则返回0。 例:NOT(TIME=090530);表示该周期对应的时间不是9:05:30AM。 POW(A,B) 得到A的B次幂。 例:POW(CLOSE,2);求得收盘价的2次方。 REVERSE(X) 取反,返回符号相反的数值。 例:REVERSE(LOW);返回-LOW。 RANGE(A,B,C) 表示A大于B同时小于C时返回1,否则返回0 SGN(X) 得到X的符号,如果X>0则返回1,如果X<0则返回-1,否则返回0。 SIN(X) 得到X的正弦值。 SQRT(X) 得到X的平方根。 例:SQRT(CLOSE);收盘价的平方根。 SQUARE(X) 得到X的平方。 例:SQUARE(CLOSE);收盘价的平方。 TAN(X) 得到X的正切值。 8.时间函数 BARPOS 取得当前K线的位置。 DATE 取得当前周期的日数(700101-341231)。 DAY 取得当前周期的日数(1-31)。 HOUR 取得当前周期的小时数(0-23)。 MINUTE 取得当前周期的分钟数(0-59)。 MONTH 取得当前周期的月数(1-12)。 TIME 取得当前周期的时间数(0-2359),秒级周期返回值范围为:0-235959。 WEEKDAY 取得当前周期的星期数(0-6)。 YEAR 取得当前周期的年数(1970-2034)。 9.绘图 BACKGROUNDSTYLE(i) 设置背景的样式。 用法: BACKGROUNDSTYLE(i)设置背景的样式。 i = 0 或 1。 DRAWLINE(C1,P1,C2,P2,COLOR) 当条件C1及C2均满足时,从P1画直线到P2,颜色为COLOR。 例:DRAWLINE(MA18< CLOSE,OPEN,MA5 >CLOSE,CLOSE,COLORCYAN); 表示当收盘价大于18日均线并且小于5日均线时,从开盘价画青色直线到收盘价。 DRAWTEXT(C,P,TEXT) 表示当条件C满足时在P上写TEXT文字。 例:DRAWTEXT(CLOSE< OPEN&&REF(CLOSE,1)< REF(OPEN,1) &&REF(VOL,1)*1.1< VOL,LOW,'注'); 表示连续两日收阴并且成交量比前一日至少多10%时,在最低价上写“注”字。 DRAWSL(COND,DATA,SLOPE,LEN,EXPAND, COLOR) 画斜线,当条件COND满足时,从DATA开始以每个周期相差SLOPE个点的斜率画斜线,划线长度为LEN个周期,EXPAND为线段的延长方式(0:不延伸;1:向左延伸;2:向右延伸;3:双向延伸)。 例:DRAWSL(LOW=LLV(LOW,50),LOW,5,3,2,COLORRED); 表示当前最低价等于50周期内的最小值时,从当前最小值开始以每隔5个点的斜率画长度为3个周期向右延伸的斜线,颜色为红色 DRAWNUMBER (COND,DATA,NUMBER,PRECISION,COLOR) 画数字。当条件COND满足时,在DATA位置写数字NUMBER(为数组),精度为PRECISION(小数点后有几位数字)。 例:DRAWNUMBER(CLOSE/OPEN>1.08,HIGH,(CLOSE-OPEN)/OPEN*100,2,COLORRED); 表示当日涨幅大于8%时在最高价位置显示涨幅(相对开盘价的百分比)。 FILLRGN (COND,DATA1,DATA2,COLOR) 填充区域,当条件COND满足时,填充DATA1及DATA2包围的区域。 例:FILLRGN(MA5>MA10,MA5,MA10,COLORRED); 表示MA5>MA10时以红色填充MA5和MA10之间的区域。 PLAYSOUND(COND, 'N') 当条件满足时,播放自定义声音'N'(自定义声音在插入声音文件中设置,最多可以设置10个)。 例:PLAYSOUND(CLOSE>OPEN,'A');表示CLOSE>OPEN时播放自定义声音'A'。 POLYLINE (COND,DATA,COLOR) 画折线,当条件COND满足时,连接各个DATA点。 例:POLYLINE(CLOSE>=HHV(CLOSE,100),CLOSE,COLORRED); 表示在收盘价创100天新高点之间画折线。 PARTLINE (COND,DATA,COLOR) 同POLYLINE。 例:PARTLINE(HIGH>REF(HIGH,1),HIGH,COLORRED); 表示当期最高价大于前期最高价用红色绘制最高价连线线段。 STICKLINE (C,P1,P2,Color,Empty) 如果条件C满足时,从P1到P2画柱线,颜色为Color,如果Empty取1,则为空心柱;如果Empty取0,则为实心柱。 例:STICKLINE(OPEN-CLOSE>0,OPEN,CLOSE,COLORCYAN,0); 表示当开盘价大于收盘价时,从开盘价到收盘价画青色的实心柱,即K线阴线的实体部分。 VERTLINE (COND,COLOR) 画垂直线,当条件COND满足时,画垂直线。 例:VERTLINE(HIGH>=HHV(HIGH,30),COLORRED); 表示在价格创30天新高时画垂直线。 RGB(R,G,B) 自定义颜色函数。R,G,B的数值范围都在0~255之间,例:RGB(225,225,225)表示白色 COLORSTICK 画彩色柱线 VOLUMESTICK 画成交量线 BAMBOOLINE 画竹线 CIRCLEDOT 画圆 OPISTICK 画持仓量柱线 10.颜色常数 COLORRED 红色 COLORGREEN 绿色 COLORBLUE 蓝色 COLORMAGENTA 红紫色 COLORYELLOW 黄色 COLORLIGHTGREY 浅灰色 COLORLIGHTRED 浅红色 COLORLIGHTGREEN 浅绿色 COLORLIGHTBLUE 浅蓝色 COLORBLACK 黑色 COLORWHITE 白色 COLORCYAN 青色 11.头寸函数 AUTOFILTER 对模型的所有信号按照先买后卖,先开后平的顺序过滤。 用法:AUTOFILTER产生的指令将按照如下 规则 编码规则下载淘宝规则下载天猫规则下载麻将竞赛规则pdf麻将竞赛规则pdf 过滤: 1.连续的同方向指令只有第一个有效,其他的将被过滤; 2.交易指令必须配对出现(例如:前面已经有了买开指令,则后面只允许出现卖平指令,其他的指令都被滤掉。这也就意味着,第一个指令只能是买开或者卖开指令,其他的都被过滤); 例: CLOSE>OPEN,BPK; CLOSE60 && BKPRICE>0, SP;//如果买开价位比当前价位高出60,且买开价位存在,卖平仓 请注意当模型存在连续多个开仓信号(加仓)的情况下,该函数返回的是最后一次开仓信号的价格,而不是开仓均价。 注:BKPRICE 只在加载之后的K线上才返回信号价位,历史K线信号由于无信号价位会返回0,使用时请注意判断BKPRICE>0。效果测试中该函数返回信号位置的收盘价 SKPRICE 卖开信号位置的卖开信号价位 用法: SKPRICE返回最近一次模型卖开位置的卖开信号价位。 例如: CLOSE-SKPRICE>60 && SKPRICE>0, BP;//如果当前价位高出卖开价位60, 且卖开价位存在, 买平仓 请注意当模型存在连续多个开仓信号(加仓)的情况下,该函数返回的是最后一次开仓信号的价格,而不是开仓均价。 注:SKPRICE 只在加载之后的K线上才返回信号价位,历史K线信号由于无 信号价位会返回0,使用时请注意判断SKPRICE>0。效果测试中该函数返回信号位置的收盘价 BARSBP 上一次买平信号位置 用法: BARSBP返回上一次买平仓距离当前k线的k线数。 BARSSP 上一次卖平信号位置 用法: BARSSP返回上一次卖平仓距离当前k线的k线数。 LASTSIG 判断上一次交易的信号 用法: LASTSIG返回上一次交易的信号。 注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS, TROUGH,TROUGHBARS,REFX等可能会导致误差。 MONEY 虚拟资金余额 用法: MONEY返回虚拟资金余额。 注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS, TROUGH,TROUGHBARS,REFX等可能会导致误差。 BUYVOL 模型虚拟多头持仓 用法: BUYVOL返回模型虚拟多头持仓。 注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS, TROUGH,TROUGHBARS,REFX等可能会导致误差。 SELLVOL 模型虚拟空头持仓 用法: SELLVOL返回模型虚拟空头持仓。 注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS, TROUGH,TROUGHBARS,REFX等可能会导致误差。 MARGIN 合约保证金 用法: MARGIN返回当前合约的保证金比率(用户启动模组时设置的)。 注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS, TROUGH,TROUGHBARS,REFX等可能会导致误差。 VOLMARGIN 模型虚拟空头持仓 用法: VOLMARGIN计算当前的持仓保证金。 注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS, TROUGH,TROUGHBARS,REFX等可能会导致误差。 MONEYRATIO 资金使用率 用法: MONEYRATIO返回当前的虚拟资金的使用率。 注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS, TROUGH,TROUGHBARS,REFX等可能会导致误差。 MONEYTOT 虚拟总资金 用法: MONEYTOT返回当前虚拟总资金(虚拟资金余额+持仓保证金)。 注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS, TROUGH,TROUGHBARS,REFX等可能会导致误差。 PROFIT 虚拟逐笔浮盈 用法: PROFIT返回当前的虚拟逐笔浮动盈亏。 注意与未来函数同时使用ISLASTBAR,EMA2,ZIGZAG,BACKSET,PEAK,PEAKBARS, TROUGH,TROUGHBARS,REFX等可能会导致误差。 SETDEALPERCENT 设置下单的虚拟资金使用比例 用法: SETDEALPERCENT(fPercent)表示每次按资金的fPercent(范围1~100)下单。 例子:SETDEALPERCENT(20); //每次按资金比例的%20下单 注:应该与AUTOFILTER函数同时使用 2、 自编下单组件支持的函数 1.引用数据函数 AvPrice(Code) 某合约当前均价。 用法: AvPrice(Code)返回合约Code的当前均价,Code为某合约的合约代码 例:VAR avprice;//定义一个变量avpriceavprice=AvPrice("m1109"); //price的值为合约m1109的当前均价 High(Code) 某合约当前最高价。 用法: High(Code)返回合约Code的当前最高价,Code为某合约的合约代码 例: VAR high;//定义一个变量high high=High("m1109"); //high的值为合约m1109的当前最高价 Low(Code) 某合约当前最低价。 用法: Low(Code)返回合约Code的当前最低价,Code为某合约的合约代码 例: VAR low;//定义一个变量low low=Low("m1109"); //low的值为合约m1109的当前最低价 Position(Code,strContent) 某合约的盘口数据。 用法: Position(Code,strContent) 返回某合约某种盘口数据Code 为某合约的合约代码(字符串), strContent为所要取得内容, 可选以下内容 "bid1","bid2","bid3","bid4","bid5", "ask1","ask2","ask3","ask4","ask5", "bidvol1","bidvol2","bidvol3","bidvol4","bidvol5", "askvol1","askvol2","askvol3","askvol4","askvol5", 分别表示买1-买5 卖1-卖5 买1量-买5量 卖1量-卖5量。 例: VAR bid1; bid1=Position("m1109","bid1");//bid1为豆粕1009的当前买1价 Price(Code) 某合约当前价格。 用法: Price(Code)返回合约Code的当前价格,Code为某合约的合约代码 例: VAR price;//定义一个变量price price=Price("m1109"); //price的值为合约m1109的当前价格 Volume(Code) 某合约当前成交量。 用法: Volume(Code)返回合约Code的当前成交量,Code为某合约的合约代码 例: VAR volume;//定义一个变量volume volume=Volume("m1109"); //volume的值为合约m1109的当前成交量 2.逻辑判断函数 SamePeriod(Code,PeriodStr,T1,T2) 判断两个时间是否是同一个周期。 用法: SamePeriod(Code,PeriodStr,T1,T2)如果T1,T2是同一个周期返回1, 否则返回0,Code:合约的合约代码,PeriodStr可以取以下值的其中之一: "min1","min3","min5","min10","min15","min30","1hour","3hour", "8hour","1day","week","month",T1和T2是以总秒数表示的时间 例: IF(SamePeriod("m1109","min10",LastOrderTime(),Time("09:00:00"))合约为m1109,周期为10分钟情况下,如果最后一次下单时间与09:00:00在同一个周期内 3.辅助函数 CurrentTime() 当前时间。 用法: CurrentTime()返回当前时间 例: VAR CurTime; CurTime=CurrentTime(); //定义一个变量CurTime,CurTime的值为当前时间。注意返回值是1970年1月1日至今的总秒数 DateToStr(nSec) 日期转换为字符串。 用法: DateToStr(nSec)把整形数值表示的时间nSec转换为字符串,nSec为时间的总秒数,返回的字符串格式为:YY:MM:DD 例: MessageOut(DateToStr(CurrentTime() ) ); //输出当前日期 Exit() 退出程序。 用法: Exit()退出程序。 例:Exit(); 退出程序。当组件设置为循环时,遇到Exit将停止循环,请谨慎使用。当组件未设置为循环执行时,应该使用RETURN语句退出。 Itoa(Value) 数字转换为字符。 用法: Itoa(Value)将Value转换成字符串,Value的为整形数值 例: VAR str; str="数字"+Itoa(5); //str的值为"数字5" MessageOut(Content) 输出内容。 用法:MessageOut(Content),输出Content的内容。注意:Content可以是字符串也可以是数字 ReadGlobal(strName) 返回已注册的整形变量的值 用法:ReadGlobal(strName);返回注册的strName的值,strName为已注册的整形变量的注册名称(字符串)。如果strName未被注册过,返回0 例: WriteGlabal("limit",20); VAR limitValue; limitValue=ReadGlobal("limit");limitValue的值为20。 ReadGlobalF(strNameF) 返回已注册的浮点型变量的值 用法:ReadGlobalF(strNameF);返回注册的strNameF的值,strNameF为已注册的浮点型变量的注册名称(字符串),如果strNameF未被注册过,返回0.0f 例: WriteGlabalF("Rate",0.5); VAR fRate; fRate=ReadGlobal(Rate);fRate的值为0.5。 ReadGlobalStr(NameStr) 返回已注册的字符串变量的值 用法:ReadGlobalStr(NameStr);返回注册的NameStr的值,NameStr为已注册的字符串变量的注册名称。如果NameStr未被注册过,返回(空字符串) 例: WriteGlabalStr("showStr","上升"); VAR str; str=ReadGlobal(showStr);//str的值为"上升"。 Time(strTime) 转换字符串为时间。 用法: Time(strTime) 转换字符串strTime为时间(以总秒数表示),strTime的格式应为HH:MM:SS,其中0<=HH<24,0<=MM<60,0<=SS<60,如果不满足此条件,返回0 例: time:Time("09:15:00") TimeToStr(nSec) 时间转换为字符串。 用法: TimeToStr(nSec) 把整形数值表示的时间nSec转换为字符串,nSec为时间的总秒数,返回的字符串格式为:HH:MM:SS 例: MessageOut(TimeToStr(CurrentTime())),输出当前时间 WriteGlabal(Name,Value) 注册一个整形变量。 用法: WriteGlabal(Name,Value)。Name为整形变量的注册名称(字符串),Value为整形变量的值 例: WriteGlabal("Period",5) 注册一个整形变量,注册名称为"Period",值为5。 WriteGlabal(NameF,ValueF) 注册一个浮点形变量 用法: WriteGlabal(NameF,ValueF)。NameF为浮点形变量的注册名称(字符串),ValueF为浮点形变量的值 例: WriteGlabalF("Rate",0.5) 注册一个浮点形变量,注册名称为"Rate",值为0.5。 WriteGlabalStr(NameStr,ValueStr) 注册一个字符串变量 用法:WriteGlabalStr(NameStr,ValueStr)。NameStr为字符串变量的注册名称(字符串),ValueStr为字符串变量的值 例: WriteGlabalStr("showStr","上升") 注册一个字符串变量,
本文档为【麦语言函数手册】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_958639
暂无简介~
格式:doc
大小:941KB
软件:Word
页数:37
分类:金融/投资/证券
上传时间:2013-09-06
浏览量:2066