麦语言函数手册
- 格式:doc
- 大小:941.50 KB
- 文档页数:37
文华财经“麦语言”函数手册(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)、试着自己编写简单模型了解了示范模型中编写的交易思路后,试着按照同样思路独立编写模型,编程能力会有大幅提高。
麦语⾔语法
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;*************************************************************** *************在一个区间内计算数值,如果有系统函数,则与定位无关。
文华财经“麦语言”函数手册
(2011年10月更新)
文华财经资讯有限公司
“麦语言”源于2004年文华推出的国内第一套程序化函数库,经过6年的发展,吸收几十万用户的意见反馈,一点一点完善起来的,是一套成熟稳定的模型开发平台。
麦语言,是国内使用人数最多的程序化模型开发平台。
建模式。
语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。
麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用
一、自编策略模型支持的函数
1.历史数据引用
2.日内高频数据引用
3.行情数据引用
4.金融统计
5.数理统计
6.逻辑判断
7.数学运算
8.时间函数
9.绘图
10.颜色常数
11.头寸函数
二、自编下单组件支持的函数
1.引用数据函数
2.逻辑判断函数
3.辅助函数
4.数学运算函数
5.模型相关函数
6.头寸函数。
麦语言函数手册文华财经“麦语言”函数手册(2011年10月更新)文华财经资讯有限公司“麦语言”源于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] AS VAR。
Matlab中文手册目录 (1)第1章MATLAB 6.5环境 (11)1.1 MATLAB简介 (11)1.1.1 MATLAB工具箱 (11)1.1.2 MATLAB功能和特点 (12)1.2 MATLAB 6.5环境设置 (13)1.2.1 菜单栏 (13)1.2.2 工具栏 (18)1.2.3 通用操作界面窗口 (18)1.3 MATLAB 6.5帮助 (32)1.4 MATLAB 6.5其他管理 (35)1.4.1 MATLAB用户文件格式 (35)1.4.2设置搜索路径 (36)1.4.3文件管理命令 (37)1.4.4 退出MATLAB (39)1.5 一个实例 (39)第2章MATLAB数值计算 (43)2.1 变量和数据 (43)2.1.1数据类型 (43)2.1.2数据 (43)2.1.3变量 (46)2.2 矩阵和数组 (47)2.2.1矩阵输入 (47)2.2.2矩阵元素和操作 (54)2.2.3字符串 (65)2.2.4矩阵和数组运算 (72)2.2.5多维数组 (92)2.3稀疏矩阵 (98)2.3.1稀疏矩阵的建立 (98)2.3.2稀疏矩阵的存储空间 (103)2.3.3稀疏矩阵的运算 (105)2.4多项式 (105)2.4.1多项式的求值、求根和部分分式展开 (105)2.4.2多项式的乘除法和微积分 (109)2.4.3多项式拟合和插值 (112)2.5元胞数组和结构数组 (115)2.5.1元胞数组 (116)2.5.2结构数组 (121)2.6数据分析 (127)2.6.1数据统计和相关分析 (127)2.6.2差分和积分 (129)2.6.3卷积和快速傅里叶变换 (134)2.6.4向量函数 (137)第3章MATLAB符号计算 (138)3.1 符号表达式的建立 (138)3.1.1 创建符号常量 (138)3.1.2 创建符号变量和表达式 (141)3.1.3 符号矩阵 (143)3.2符号表达式的代数运算 (145)3.2.1符号表达式的代数运算 (146)3.2.2 符号数值任意精度控制和运算 (149)3.2.3 符号对象与数值对象的转换 (152)3.3符号表达式的操作和转换 (154)3.3.1符号表达式中自由变量的确定 (154)3.3.2符号表达式的化简 (156)3.3.3符号表达式的替换 (161)3.3.4求反函数和复合函数 (164)3.3.5 符号表达式的转换 (166)3.4 符号极限、微积分和级数求和 (169)3.4.1符号极限 (169)3.4.2符号微分 (171)3.4.3符号积分 (174)3.4.4符号级数 (176)3.5 符号积分变换 (178)3.5.1傅里叶(Fourier)变换及其反变换 (178)3.5.2拉普拉斯(Laplace)变换及其反变换 (180)3.5.3 Z变换及其反变换 (181)3.6符号方程的求解 (183)3.6.1代数方程 (183)3.6.2符号常微分方程 (185)3.7符号函数的可视化 (186)3.7.1符号函数的绘图命令 (186)3.7.2图形化的符号函数计算器 (189)3.8 Maple函数的使用 (189)3.8.1访问Maple函数 (190)3.8.2 获得Maple的帮助 (191)第4章MATLAB计算的可视化和GUI设计 (192)4.1二维曲线的绘制 (192)4.1.1基本绘图命令plot (192)4.1.2绘制曲线的一般步骤 (198)4.1.3多个图形绘制的方法 (199)4.1.4曲线的线型、颜色和数据点形 (202)4.1.5设置坐标轴和文字标注 (204)4.1.6交互式图形命令 (210)4.2 MATLAB的三维图形绘制 (211)4.2.1绘制三维线图命令plot3 (211)4.2.2绘制三维网线图和曲面图 (212)4.2.3立体图形与图轴的控制 (217)4.2.4色彩的控制 (220)4.3 MATLAB的特殊图形绘制 (225)4.3.1条形图 (225)4.3.2面积图和实心图 (227)4.3.3直方图 (228)4.3.4饼图 (230)4.3.5离散数据图 (231)4.3.6对数坐标和极坐标图 (232)4.3.7等高线图 (234)4.3.8复向量图 (235)4.4图形窗口的功能 (236)4.5对话框 (238)4.6句柄图形 (242)4.6.1句柄图形体系 (242)4.6.2图形对象的操作 (242)4.6.3图形对象属性的获取和设置 (248)4.7图形用户界面(GUI)设计 (251)4.7.1可视化的界面环境 (252)4.7.2菜单 (253)4.7.5回调函数 (258)4.7.6 GUI应用举例 (258)4.8动画 (261)4.8.1以电影方式产生动画 (261)4.8.2以对象方式产生动画 (262)第5章MATLAB程序设计 (264)5.1脚本文件和函数文件 (264)5.1.1 M文本编辑器 (265)5.1.2 M文件的基本格式 (265)5.1.3 M脚本文件 (266)5.1.4 M函数文件 (268)5.2程序流程控制 (269)5.2.1 for ... end循环结构.. (269)5.2.2 while ... end循环结构. (271)5.2.3 If...else...end条件转移结构 (272)5.2.4 switch...case开关结构.. (273)5.2.5 try... catch... end试探结构 .. (275)5.2.6流程控制语句 (276)5.3函数调用和参数传递 (280)5.3.1子函数和私有函数 (280)5.3.2局部变量和全局变量 (281)5.3.4程序举例 (287)5.4 M文件性能的优化和加速 (289)5.4.1 P码文件 (289)5.4.2 M文件性能优化 (290)5.4.3 JIT和加速器 (292)5.5内联函数 (295)5.6利用函数句柄执行函数 (298)5.6.1函数句柄的创建 (298)5.6.2用feval命令执行函数 (299)5.7利用泛函命令进行数值分析 (301)5.7.1求极小值 (302)5.7.2求过零点 (304)5.7.3数值积分 (305)5.7.4微分方程的数值解 (306)第6章线性控制系统分析与设计 (309)6.1线性系统的描述 (309)6.1.1状态空间描述法 (309)6.1.2传递函数描述法 (311)6.1.3零极点描述法 (312)6.1.4离散系统的数学描述 (313)6.2线性系统模型之间的转换 (317)6.2.1连续系统模型之间的转换 (317)6.2.2连续系统与离散系统之间的转换 (325)6.2.3模型对象的属性 (330)6.3结构框图的模型表示 (334)6.4线性系统的时域分析 (348)6.4.1零输入响应分析 (348)6.4.2脉冲响应分析 (350)6.4.3阶跃响应分析 (351)6.4.4任意输入的响应 (353)6.4.5系统的结构参数 (356)6.5线性系统的频域分析 (358)6.5.1频域特性 (358)6.5.2连续系统频域特性 (359)6.5.3幅值裕度和相角裕度 (366)6.5.4离散系统频域分析 (367)6.6线性系统的根轨迹分析 (367)6.6.1绘制根轨迹 (367)6.6.2根轨迹的其它工具 (370)6.7线性系统的状态空间设计 (373)6.7.1极点配置法 (373)6.7.2最优二次型设计 (374)第7章Simulink仿真环境 (376)7.1演示一个Simulink的简单程序 (376)7.2 Simulink的文件操作和模型窗口 (379)7.2.1 Simulink的文件操作 (379)7.2.2 Simulink的模型窗口 (380)7.3 模型的创建 (382)7.3.1模块的操作 (382)7.3.2信号线的操作 (385)7.3.3给模型添加文本注释 (387)7.4 Simulink的基本模块 (387)7.4.1基本模块 (387)7.4.2常用模块的参数和属性设置 (390)7.5复杂系统的仿真与分析 (395)7.5.1仿真的设置 (395)7.5.2连续系统仿真 (397)7.5.3离散系统仿真 (400)7.5.4仿真结构参数化 (402)7.6子系统与封装 (403)7.6.1建立子系统 (403)7.6.2条件执行子系统 (405)7.6.3子系统的封装 (407)7.7用MATLAB命令创建和运行Simulink模型 (413)7.7.1用MATLAB命令创建Simulink模型 (413)7.7.2用MATLAB命令运行Simulink模块 (417)7.8以Simulink为基础的模块工具箱简介 (418)第8章MATLAB高级应用 (419)8.1 MATLAB应用接口 (419)8.1.1 MEX文件 (419)8.1.2 使用MATLAB编译器生成MEX和EXE文件 (424)8.2 低级文件的输入输出 (426)8.2.1打开和关闭文件 (426)8.2.2读写格式化文件 (428)8.2.3读写二进制数据 (433)8.2.4文件定位 (435)8.3 图形文件的转储 (437)8.4 Notebook (438)8.4.1 Notebook的安装 (438)8.4.2 Notebook的启动 (438)8.4.3 Notebook的使用 (441)8.4.4 Notebook中MATLAB的使用 (445)第1章MATLAB 6.5环境1.1MATLAB简介●MATLAB(Matrix Laborator)是MathWorks公司开发科学与工程计算软件;●广泛应用于自动控制、数学运算、信号分析、计算机技术、图像信号处理、财务分析、航天工业、汽车工业、生物医学工程、语音处理和雷达工程等行业;●国内外高校和研究部门科学研究的重要工具;●MATLIB 已成为数学计算工具方面事实上的标准,MATLIB 6.5是最新版本。
文华财经“麦语言”函数手册(2011年10月更新)
文华财经资讯有限公司
“麦语言”源于2004年文华推出的国内第一套程序化函数库,经过6年的发展,吸收几十万用户的意见反馈,一点一点完善起来的,是一套成熟稳定的模型开发平台。
麦语言,是国内使用人数最多的程序化模型开发平台。
麦语言倡导的是积木式的编程理念,把复杂算法封装到一个个的函数里,采用“小语法,大函数”的构建模式。
语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。
麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用
一、自编策略模型支持的函数
1.历史数据引用
2.日内高频数据引用。