外汇智能交易MQL4语言教程

上传人:飞*** 文档编号:40521896 上传时间:2018-05-26 格式:DOCX 页数:21 大小:36.81KB
返回 下载 相关 举报
外汇智能交易MQL4语言教程_第1页
第1页 / 共21页
外汇智能交易MQL4语言教程_第2页
第2页 / 共21页
外汇智能交易MQL4语言教程_第3页
第3页 / 共21页
外汇智能交易MQL4语言教程_第4页
第4页 / 共21页
外汇智能交易MQL4语言教程_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《外汇智能交易MQL4语言教程》由会员分享,可在线阅读,更多相关《外汇智能交易MQL4语言教程(21页珍藏版)》请在金锄头文库上搜索。

1、外汇智能交易外汇智能交易 MQL4 语言教程(一)语言教程(一)时间:2011-03-04 11:55:54 来源: 作者:什么是智能交易系统?它是一个用特殊的 MetaQuotes 语言 4 (MQL 4)编写的自动交易系统(ATS),和特定的图表联系在一起。智能交易系统不仅能通知交易商交易机会,而且还能自动执行交易账户上的交易,直接发送到交易服务器。和许多的 IT 系统一样,智能交易系统系统支持历史数据战略测试,图表上表示的登入/登出点。而且,智能交易系统的可执行码分别存储于源文件和加密的执行文件中这种安排保证了交易商所使用的逻辑隐藏(如有必要的话),而不会泄密。MetaTrader4 软

2、件将智能交易系统在程序的根目录/Experts 子目录里保存为*.MQ4(source text) 和 *.EX4 (可执行码)文件。交易商可以无限量地保存智能交易系统数据,这些数据可以通过导航条窗口容易地加以管理。创建自定义智能交易系统数据的程序以及将数据和交易终端连接在 MetaTrader4 用户指南里有详细的描述。MetaQuotes 4 语言是用来编写自定义智能交易系统软件,以便使交易程序管理自动化以及执行交易商自己的交易策略。MetaQuotes 4 语言易学、易用、易创建。MetaQuotes 4 语言包括相当数量的变量,用来控制当前和前期的报价、主要的算术和逻辑运算和特征,主要

3、的内置指标和用来开启和控制头寸的命令。在语法上,该语言和由 TradeStation 技术有限公司开发的简易语言相似,但是它有其自身的一些具体特征。程序代码是用 MetaEditor4 编辑器编写的,它能够用不同的色彩集中反映 MQL 4 语言的不同结构,因此,有助于用户熟悉专家系统的文本。 注解开始于/符号(双斜线)。注解也可以用“斜线星号”“星号斜线”组合(/*注解*/, 就像在 “C“编程语言一样)。设定和控制操作战略,交易商保存一份日志文件,存储产生的信号信息、变量输出和已执行交易的结果。智能交易系统日志保存在 MetaTrader4 目录下/logs/YYYYMMDD.log 文件里

4、。当前的日志可以从下方的“终端”窗口(日志标签)直接进入。进入 MQL 4 语言的目录系统,要么按目录按钮或从工具菜单打开 MetaQuotes 语言词典窗口操作。这个教程包含分类、运算、存储词语等功能,使得用户对该语言所用到的每个元素都有所了解。1. 主要语言结构像其他任何语言一样,MQL4 有一套构成基本结构的主要组成元素。这些组成元素以一种特殊的方式组合排列的,以便代表适当的陈述和表达。语言的主要对象就是数据,包括三种类型:数字、逻辑和排列。 所有的数值均采用双格式,逻辑数据可能包括真值和假值。排列就是用省略号标注的一系列字符。字符串也叫做文本串。数据可以包含在适当类型的变量之中,或直接

5、由程序的源文本表现出来。一个 MetaQuotes 语言陈述指一个完整的用法说明。陈述可以包括保留字、运算符号、数据、变量、表达式或标点符号,而且总是以分号结尾。保留字指具有特定或特别意义的预先设定的词语。 运算符号指在数据、变量和(或)表达式中特定的具体运算符号。变量是用来限制数字、排列或逻辑数据的。表达式指保留字、变量、数据和运算符号的组合,因为它们具有语言的 3 中类型(保留字、变量、数据)中的任一价值。标点符号用来代表表达式,界定参数,区分词语或重新排列计算顺序。2. 标点符号字符名称描述;分号结束 MetaQuotes 4 语言指令( )圆括号对表达式的值进行分组,改变计算顺序。标注

6、函数参数并启动变量描述表达式标注变量的初始值并在变量描述区排列组合,逗号提取函数值时,对参数进行区分在变量描述区对变量进行区分在描述排列长度时对数字进行区分区分进入排列元素的指标:冒号用在变量描述区,启动变量列表“ “引号标注一个文本(字)串。 方括号标注数字,确定排列长度标注进入某个特殊排列元素的数字(指数)标注进入历史数据的期间数字 波形括号充当运算括号。可以用来代替 begin.end。将指令系列隔离成块。/* */ 注解括号标注注解/双斜线明确说明单串注解的开始3. 运算符号运算符号分成 5 组:分配符号、字串符号、数学运算符号、相关符号和逻辑符号。3.1. 分配符号分配符号=(等号)

7、是用来将具体数值(数字、排列或逻辑,视变量类型而定)分配到变量中。分配值可以是表达式的结果。比如:变量: Counter(0);.Counter = Counter + 1;结果,反向变量取值为 1。变量值也可以分配来对元素进行排列。3.2. 字串符号操作文本串,只有一个运算符可以用上: + (加号)。 它是用来连接两个字串的。比如:变量: 字串(“ “);.字串 = “some_“ + “text“;结果,字串变量包含“some_text”这样的文本串,允许将字串与数字和逻辑值结合起来。在后面的这个例子里,数字及或逻辑值在结合前,应转化为字串类型。比如:String = “string“ +

8、 1;因此,字串变量将包含“string1“的文本串。操作数不仅可以是数值,也可以是相应的含有这样数值类型的变量,以及表达式,经执行后,便产生这样的数值。3.3. 数学符号4 种主要的数学运算:加法 + (加号)、减法- (减号)、乘法* (星号)、除法/ (斜线),都用在计算数值的数学表达式里。数学表达式的例子:( Ask + Bid ) / 2 , High1 + 20 * Point3.4. 相关符号相关符号用来对同种类型的两个数值进行比较。 第一个数值和第二个数值进行比较,产生逻辑值“真值”或“假值”, “小于” (右小于号);“等于”= (等号);“不等于” Bars then co

9、ntinue;print( Close Counter );.end;这个例子说明一个将被执行了差不多 10 次的循环。但收盘值(counter)被打印不会比基准次数多。“.“代表 MetaQuotes 4 语言的其他语句。4.3.交易中断的预选界定变量为了最大的方便用户,交易中断的一些变量可以从智能系统输入。AccountNumber账号(同义词:AccNum)Ask 卖价(买方出价)Balance 交易账户的余额值Bars 图表上条形的数目说明用数据填充图表程度的非常重要的一个变量。 Bid -买入价(卖方要价)Close 收盘价格Credit 信用优先Equity 账户状况,包括未实现利

10、润FreeMargin 交易账户的自由保证金值也用来核查账户资金的可用性;High 期间最高价位Low -期间最低价位Margin 用来支撑开仓部位的资金(保证金)Open 开盘价Point 当前金融工具单点上的价值(此点此时智能交易系统系统运行),比如, USD/JPY - 0.01, USD/CHF - 0.0001 等。PriceAsk 在市场观测窗口上显示的当前卖价。PriceBid -在市场观测窗口上显示的当前买价。PriceHigh 当前 24 小时期间的最高买价。 PriceLow -当前 24 小时期间的最高卖价。PriceTime -在市场观测窗口上显示的当前时间。Time

11、价格图表上的条形时间的基准时间;TotalProfit 所有开仓部位的总未实现利润;TotalTrades 开仓部位的总数和交易中断上的延迟订单;Volume 交易量(期间交易的数目)应注意到,应注意到,Close, Open, High, Low, Volume, Time 为历史数据数组(seriesarrays),在上,在上个交易期间允许进入这些数据。个交易期间允许进入这些数据。4.4. 内置函数内置函数MetaQuotes 4 语言提供许多功能,可用于多种多样的场合。这些包括技术指标、交易交易功能、时间功能、数学和三角函数功能、数据转换和输出函数功能、时间功能、数学和三角函数功能、数据

12、转换和输出函数,等。 Abs 返回这个数值的绝对值(模块)语法:Abs 函数 (n 个表达式)参数: 数值AccountName 返回包含用户名的文本串 (同义词:AccName )Alert 产生包含用户定义数据的对话屏语法: Alert(.) 参数的任何非零数都可能。Ceil 返回代表最小接近整数的一个数字,它等于或大于特定的数值。语法:Ceil( n 个表达式 )参数:数值CloseOrder 收盘头寸(部位)语法:收盘头寸(订单、单位、价格、滑动量、色彩)Parameters: 参数: order -开仓部位的订单数lots 单位数price 优先收盘价slippage 最大价格滑动值

13、color 图表上交叉点的色彩Comment 在图表的左上角产生的用户定义数据语法: Comment(.)参数的任何非零数都可能。Cos 计算和返回数值的余弦值,代表用弧度表示的角度。 语法: Cos( n 分表达式 )参数:数值CurTime 返回从 1970 年元月 1 日起所经过的秒数。 Day 返回当月当前日序列号DayOfWeek 返回当周当前日序列号。1 星期日, 2 星期一, . , 7 星期六DeleteOrder 删除前期提交的延迟订单语法:DeleteOrder( 订单 ) 参数: 订单延迟部位的订单数Exp 返回代表特定数值指数的一个数目语法: Exp( n 个表达式)参

14、数:数值Floor 返回代表最大接近整数的一个数字,它等于或小于特定的数值。语法: Floor( n 个表达式)参数:数值Highest 返回期间特定数间的 Open, Low, High, Close or Volume (取决于“类型”参数)的最大值。 语法: Highest( 类型、beginbar、期间 )Parameters: 参数: Type 类型 一个返回变量,可能去下列数值: MODE_OPEN, MODE_LOW, MODE_HIGH, MODE_CLOSE, MODE_VOLUMEbeginbar 表示条形的转换,与当前条形有关,并从中取值。periods 期间 计算执行依

15、据的期间数Hour 返回在 24 小时期间内当前小时的序列数。iADX -平均指导动作目录语法:iADX( 期间、模式、转换)参数:period 计算的期间数;mode 数据类型,可以取下列数值:MODE_MAIN(主要指标)、MODE_PLUSDI(line +DI), MODE_MINUSDI(line -DI).shift 与当前条形有关的转换 (后退期间数),为数据待取值的依据。iATR - 平均间距的指标语法:iATR( 期间、转换)参数:period 计算期间数;shift 与当前条形(后退期间数)相关的转换,为数据待取值的依据。平均移动收敛/发散指标(iBANDS 布林带指数语法

16、: iBANDS(期间,误差,模式,转换)参数:period 计算的期间数;deviation -误差;mode 可以取下列值: MODE_MAIN(主线、滑移)、 MODE_LOW(下边线), MODE_HIGH(上边线).shift 与当前条形(后退期间数)相关的转换,为数据待取值的依据。iCCI 交易通道指标语法: iCCI(期间、转换)参数:period 计算的期间数shift 与当前条形(后退期间数)相关的转换,为数据待取值的依据。iMA 移动平均指标语法: iMA( 期间、模式、转换)参数:period 计算的期间数mode 计算模式,可以取下列值: MODE_SMA, MODE_EMA, MODE_WMA.shift 与当前条形(后退期间数)相关的转

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 其它考试类文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号