麦语言函数手册

合集下载

麦语言函数手册

麦语言函数手册

文华财经“麦语言”函数手册(2011年10月更新)
文华财经资讯有限公司
“麦语言”源于2004年文华推出的国内第一套程序化函数库,经过6年的发展,吸收几十万用户的意见反馈,一点一点完善起来的,是一套成熟稳定的模型开发平台。

麦语言,是国内使用人数最多的程序化模型开发平台。

麦语言倡导的是积木式的编程理念,把复杂算法封装到一个个的函数里,采用“小语法,大函数”的构建模式。

语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。

麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用
一、自编策略模型支持的函数
1.历史数据引用
2.日内高频数据引用
3.行情数据引用
4.金融统计
5.数理统计
6.逻辑判断
7.数学运算
8.时间函数
9.绘图
10.颜色常数
11.头寸函数
二、自编下单组件支持的函数
1.引用数据函数
2.逻辑判断函数
3.辅助函数
4.数学运算函数
5.模型相关函数
6.头寸函数。

“麦语言”的学习步骤和方法

“麦语言”的学习步骤和方法

“麦语言”的学习步骤和方法(一)为什么要学习编程语言:1、别人写的交易策略,你难以调整常听见有人说前一段运行很好的模型,最近却表现不佳,想换一个新的策略。

实际上没有一种策略能够永远适应市场,一般在一个季度左右就需要对策略调整参数或改动某些条件,如果策略不是自己编写的,很难去调整,就只能把大把时间浪费在无穷无尽的找模型中。

2、别人写的交易策略,你很难彻底执行如果是别人写的模型,无论模型测试结果多么完美,一旦市场出现危机情况,你都会坐立不安,总会怀疑策略有问题,然后把程序化扔到一边,又回到凭感觉操作的老路了。

人只会相信自己了解的东西,如果不相信就很难彻底执行,无法完成程序化。

3、编程的过程也是理解的过程有的人通过在市场亏钱、爆仓来理解市场,不仅学费高,成长也慢。

而通过编写策略来理解市场不需要交学费,从历史测试报告里很容易分析出来自己错在哪,也很容易改进,足以带来逼真的实战经验,所以编写和调试策略的过程也是理解市场的过程,是非常宝贵的积累。

(二)麦语言的学习步骤和方法:一提到语言,您可能想到的是复杂的语法,大量的词汇,无穷无尽的困难。

但“麦语言”与您以往学过的语言完全不同,它的语法只有两个部分,函数200多,是目前国内最简单的程序化编写语言,不需要您有任何的c语言c++编程基础,只要您能看懂汉字,外加点学习精神就能轻松学会。

(1)、了解麦语言模型结构,学习函数麦语言的模型结构很简单,只有两部分:1定义需要的变量。

2交易条件+交易指令。

如下图所示就是一个具有变量、条件、指令的完整模型。

更详细的语法可以在“模型开发平台中”的【帮助】菜单下“基本语法”中查看。

麦语言目前有函数240多个,不建议大家从头到尾背函数表,建议大家先从函数列表中大概了解软件中都提供了哪些函数,再在软件中提供的示范模型中学习编写方法和常用的函数,当您有更高的编写需求时在去函数列表里找相应的函数即可。

(2)、试着自己编写简单模型了解了示范模型中编写的交易思路后,试着按照同样思路独立编写模型,编程能力会有大幅提高。

量化经典麦语言程序化模型的编写(精).

量化经典麦语言程序化模型的编写(精).
CROSS(MA5,MA10),BPK; CROSS(MA10,MA5),SPK;
关键词:多个交易条件 1:以均线结合KD交叉指标为例: 2:练习编写:MACD、KDJ指模型。
MA5:=MA(C,5);
MA10:=MA(C,10);
均线模型
MA5>MA10,BK;//5日均线大于10日均线买入 。
跨周期跨合约模型的编写规则
1.只能引用 .FML/.XFML文件 2.只能引用如下周期:MIN1 MIN3 MIN5 MIN15 MIN30 HOUR1 DAY WEEK MONTH 3.只能短周期引用长周期 4.被引用的指标中不能存在引用 5.如果不写文华码,默认引用当前合约,也可以直接写合约代 码如:rb1201 6.FORMULA 引用指标名,只能引用除数字、或者数字开头 的名称之外的名称。
总结:多条件下用“()”明确逻辑关系
跨周期函数介绍
引用某品种在某个周期上加载了某个指标的数据。 用法:
#IMPORT [CODE, PERIOD, FORMULA] AS VAR 引用 CODE 所对应的合约 PERIOD 周期下指标 FORMULA
的数据。
CODE 文华码,PERIOD 周期,FORMULA 引用指标名, VAR 定义变量名
5、参数部分: 可以设置六个参数 首先是参数名称,然后是参数的最小值,最大值,最后是参数
的默认值。 在定义参数时要注意的是参数名称不可以重复,12个字符内
6、运用函数语言,也就是表达你的语言 函数具有自己的表达式,运行它就需要将我们的思路,按照函
数的表达式套用表述。
模型源码 命名
参数
A:(O+C)/2; B:C>O; //判断是否收阳;满足条件返回1,否则返回0 D:TIME=0900&&C>O; //用于多条件逻辑关系

麦语言基本语法与指令说明

麦语言基本语法与指令说明
例: CLOSE>MA(CLOSE,5),BK(500);//收盘价大于 5 周期均线,买入 500 股。设置的数量无效
2、指令指定交易数量,买入数量为变量 a.BK 后面括号中的计算公式可任意编写,计算结果为买入数量。 b.小数采用向下取整原则。 c.指定交易数量后,设置的数量无效。 例: CLOSE>MA(CLOSE,5),BK(MONEY*0.5/(C+0.5*FEE));//收盘价大于 5 周期均线,按照理论可用资金 50%买入。
2、指令指定对应组别,不指定交易手数,下单手数为模组设置的固定手数。 例: CROSSUP(C,MA(C,5)),BK('A');//A 组做多指令,收盘价向上穿越 5 周期均线,买开仓,下单手数为模组设置的固定手数
在非过滤模型中的应用
1、指令指定交易手数,下单手数为固定手数
a.BK 后面的括号中为下单手数,可为任意正整数。 b.指定交易手数后,模组设置的手数无效。
CLOSE*OPEN;返回收盘价与开盘价的积。 CLOSE/OPEN;返回收盘价与开盘价的商。
CLOSE>OPEN&&REF(CLOSE>OPEN,1);当根 k 线 与前一根 k 线都收阳返回 1,否则返回 0。
CLOSE>OPEN||REF(CLOSE>OPEN,1);当根 k 线收阳或 前一根 k 线收阳返回 1,否则返回 0。
2、指令指定对应组别,不指定交易数量,买入数量为设置的固定数量。 例: CROSSUP(C,MA(C,5)),BK('A');//A 组做多指令,收盘价向上穿越 5 周期均线,买入,买入数量为设置的固定数量
在非过滤模型中的应用
1、指令指定交易数量,买入数量为固定数量

麦语言语法——精选推荐

麦语言语法——精选推荐

麦语⾔语法
1、命名部分:⽀持汉字、字母、数字、划线格式命名,长度控制在
31字符内;命名不能和已存在的公式名称重复。

2、定义变量名称变量名称不能相互重复;不能与参数名重复;不能与函数名重复。

3、半⾓输⼊法的⼤写状态。

4、每个语句应该以分号结束。

5、参数部分:可以设置六个参数;⾸先是参数名称,然后是参数的最⼩值,最⼤值,最后是参数的默认值;在定义参数时要注意的是参数名称不可以重复,12个字符内。

6、注释或者舍去想要在编写后,加⼊⾃⼰的语⾔注释,在结尾处⽤“//”表⽰;或者想舍去某段,在某段在最前端加⼊“//”;
编写训练:
1、定义⼀个变量,名为A,算出开盘价与收盘价和的⼆分之⼀,并显⽰指标线扩展练习:指定指标线颜⾊为黄⾊。

开盘价open收盘价close
2、编写⼀个指标,在最⾼价和最低价上分别加减2%,画出⼀条通道,通道上轨为红⾊,下轨为绿⾊。

3、定义变量A为阳线,查看A的返回值。

麦语言编程教程

麦语言编程教程

麦语言编程教程所有的编程都可以归结为以下三类:第一,表达式问题。

以当前视角,给出变量的计算公式。

所谓的当前视角,就是不考虑位置关系,把那个位置当作是当前位置。

事实上,前面那张表中任何一个方格的数据,都是把这个方格所在列当成当前K线来解读的。

第二,逻辑判断问题。

其实可以归结成表达式问题,但是考虑到逻辑判断比较重要,而且和纯计算数值的表达式略有些不同的,所以独立出来。

第三,定位问题。

只有一个位置不需要确定,那就是当前,这里说的当前,是K线图上最后一根K线,不是前面说的当前视角。

定位的结果是得到历史某个位置到当前的距离。

定位的目的是到那个历史位置去取值,可以是逻辑值,也可以是数据值。

当然定位还有另外一个作用,就是画线,这种情况我们之后再讨论。

表达式问题和逻辑判断问题这两个问题都是比较简单的。

关键点是以当前视角给出计算公式,不需要考虑计算公式之外的位置问题。

*************************************************************** *************先来一个简单的例子:求当前K线最高价和最低价一半的价格。

这是一个和位置完全没有关系的问题,因为当前K线是不需要定位。

所以我们可以直接定义变量名称并给出计算公式。

HL:(H+L)/2;*************************************************************** *************如果在表达式中,某个数据需要通过定位从历史中取,那么可以用定位问题的解决方法取到这个数值,然后再与其他与位置无关的变量组成表达式。

例如,计算最高、最低价,以及前一根K线收盘价的平均。

前一根K线收盘价定义为:ZC:=REF(C,1);//定位问题后面会有详细说明HLC:(H+L+ZC)/3;*************************************************************** *************在一个区间内计算数值,如果有系统函数,则与定位无关。

麦语言程序化模型的编写

麦语言程序化模型的编写

3、半角输入法的大写状态;
4、每个语句应该以分号结束;
MY language 编写语法:
5、参数部分: 可以设置六个参数 首先是参数名称,然后是参数的最小值,最大值,最后是参数 的默认值。 在定义参数时要注意的是参数名称不可以重复,12个字符内 6、运用函数语言,也就是表达你的语言 函数具有自己的表达式,运行它就需要将我们的思路,按照函 数的表达式套用表述。
ISLASTSK
ISLASTBP
ISLASTSP
用法:ISLASTSP 如果上一个交易信号是SP则返回1(Yes),否则返回0(No)
判断上一个交易信号是否是BPK。 用法:ISLASTBPK 如果上一个交易信号是BPK则返回1(Yes),否则返回0(No) 判断上一个交易信号是否是SPK。 用法:ISLASTSPK 如果上一个交易信号是SPK则返回1(Yes),否则返回0(No)
定义变量: 当根K线最高价; 结算价: 15周期收盘价均线(显示定义); 衍生: 当前K线的前一个周期最高价; 当前K线的前一个周期15均线;
HH:=H; S:=SETTLE; MA15:MA(C,15);
REF(HH,1); REF(MA15,1);
2、模型的基本结构
在编写前,需要将交易思想清晰量化后,通过语言函数编写完成 交易模型基本结构 1.定义需要的每个变量 2.交易条件+交易指令
MA5:=MA(C,5); 定义思路中涉及到的变量 MA10:=MA(C,10); CROSS(MA5,MA10),BK; CROSS(MA10,MA5),SP;交易条件,写入交易指令 CROSS(MA10,MA5),SK; CROSS(MA5,MA10),BP;
模型中使用的交易指令
编写练习:

麦语言函数手册

麦语言函数手册

文华财经“麦语言”函数手册
(2011年10月更新)
文华财经资讯有限公司
“麦语言”源于2004年文华推出的国内第一套程序化函数库,经过6年的发展,吸收几十万用户的意见反馈,一点一点完善起来的,是一套成熟稳定的模型开发平台。

麦语言,是国内使用人数最多的程序化模型开发平台。

建模式。

语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。

麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用
一、自编策略模型支持的函数
1.历史数据引用
2.日内高频数据引用
3.行情数据引用
4.金融统计
5.数理统计
6.逻辑判断
7.数学运算
8.时间函数
9.绘图
10.颜色常数
11.头寸函数
二、自编下单组件支持的函数
1.引用数据函数
2.逻辑判断函数
3.辅助函数
4.数学运算函数
5.模型相关函数
6.头寸函数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

文华财经“麦语言”函数手册(2011年10月更新)
文华财经资讯有限公司
“麦语言”源于2004年文华推出的国内第一套程序化函数库,经过6年的发展,吸收几十万用户的意见反馈,一点一点完善起来的,是一套成熟稳定的模型开发平台。

麦语言,是国内使用人数最多的程序化模型开发平台。

麦语言倡导的是积木式的编程理念,把复杂算法封装到一个个的函数里,采用“小语法,大函数”的构建模式。

语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。

麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用
一、自编策略模型支持的函数
1.历史数据引用
2.日内高频数据引用。

相关文档
最新文档