MQL4语言课程共12课

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

MQL4课程Bycoders’guru欢迎来到MQL4语言课程。在这个系列里,我将试着通过直接而迅速的例子给你一个全面的教程来剥去MQL4语言的神秘和复杂。在这个系列课程里,我还将告诉你如何使用MQL4语言编写你自己的智能交易系统,技术指标和脚本。如果你是一个c语言的程序员,那么在我的课程开始之前,你甚至已经知道了许多关于MQL4语言的规则。如果你以前没有书写过任何程序语言,那也没问题。我同样将指导你全面的理解程序编制的概念。那么,让我们从起点开始吧。MQL4?What?WhyAndWhere?MQL4代表MetaQuotesLanguage4.MetaQuotes是组建MetaTrader交易平台的公司。并且为了是它比其他的交易平台更强大,公司通过一种允许用户(你)编写自己的交易策略的内置程序语言来扩展它。这种语言允许你创建下面的任何一种:■智能交易是一种连接到特定图表的自动交易系统。它能够根据设置的节点自动启动,当它开始运行后,它不会同时去处理另一个新的指令(也就是说必须等到当前程序完成)。这种交易系统能够在提醒用户可以交易的同时,将交易定单自动送到交易服务器。与大多数交易系统一样,它也能够用历史数据测试交易策略,并在图表上显示出来。智能交易存储在terminal_directory\experts。■自定义指标可用来编写新的技术指标,和内置的指标一样,它不能用来进行自动交易,只能作为分析数据的工具。自定义指标储存在terminal_directory\experts\indicators。■脚本是执行单一功能的一段程序,和智能交易不同,脚本不能单独执行,只能被调用。脚本存储在terminal_dictionary\experts\scripts。这就是“什么”是MQL4?“为什么”使用MQL4?现在,“在哪儿”我可以书写MQL4?书写你自己的MQL4代码就像世界上的其他任何事情,你可以选择两种方法种的一种,困难的和简单的。1-困难的:困难的方式是使用你喜欢的文字编辑工具和命令提示符来编辑你的程序。记事本是个不错的选择,但不要忘了两件事情:1-保存你创建的文件为无格式的文本。(plaintextformat)2-保存文件为.mp4(这样方便用MetaEditor重新编辑它),但是你也可以保存它为任何你喜欢的扩展名。保存完你的程序后,还有一个额外的步骤来让你的代码可以众所周知的出现。那就是编译步骤。编译的意思是转换你已经写好的人类易读的语言为电脑能理解的机器语言。MetaTrader已经装置了一个它自己的编译器:MetaLang.exe。(这个程序将转换你的脚本为机器语言)MetaLang.exe是一个带两个参数的命令行程序,它输出.ex4文件。(.ex4为Metatrader可识别的文件)第一个参数是“options”,它只有一个可选项–q退出。第二个参数是你的.mql文件的完整路径。语法格式为:Metalang[options….]filename例:1-找到你的metalang.exe的路径,它和MetaTrader在同一个路径下(例如:D:\ProgramFiles\MetaTrader4)2-创建一个批处理文件compile.bat(或者任何你喜欢的名字。)3-把下面的几行代码写进bat文件并保存它:cdD:\ProgramFiles\MetaTrader4metalang-qD:\ProgramFiles\MetaTrader4\my_first_mql4_script.mq4(不要忘了把路径更改为你的MetaTrader的安装路径).4-运行这个批处理文件,如果你像我一样幸运的话,你将看到下面的画面。与你看见的一样,你将获得“my_first_mql4_script.ex4”输出文件。2-简单的:Metatrader已经装置了一个很好的IDE(integrateddevelopmenteditor,集成开发环境)——MetaEditor,它有如下特性:1-当你读写代码的时候它是一个有着MQL4语言强大和不同特性的文本编辑器。2-方便的编译你的程序,只要按下F5,MetaEditor将为你做完所有的困难工作并输出“ex4”文件。(另外它还很容易的看出你的程序那里出错了)3-内置参考字典。你可以访问高亮的关键字。如果想进一步了解它,请按F1.在接下来的课程里,我们将知道更多的关于MetaEditor。今天我仅仅是给大家打个招呼,明天我们将开始真正的工作,你将学习MQL4的语法。非常欢迎批评指正。明天见。最后感谢大家,欢迎回帖批评指正。MQL4课程Bycoders’guru语法我希望你满意那个试着回答了:“什么”是MQL4?“为什么”使用MQL4和“在哪儿”书写MQL4的欢迎课程。方法或怎么做(how)永远是最大最重要的问题,接下来的全部课程就是答案。现在,我希望你清空你思想中的任何混乱想法,并且认真阅读下面的这些概念。我们今天正在谈论的是关于MQL4的语法规则。就像我以前告诉你的那样,如果你是个c语言或者c++的程序员,那么在我的课程没开始之前你就已经知道了许多MQL4的事情。这是因为MQL4的语法和c语言的语法很像。当我们学习一种语言的语法时,我们同时在学习它的原理和书写规则。它有以下几部分组成:1、格式2、注释3、标识符4、保留字让我们把它分成以下几块。一、格式当你书写代码的时候,你可以自由的使用空格,制表符和空行来分隔你的代码和代码行,使它们更加的易读和美观。例如,下面这些语句行在MQL4里都是正确的:但是,就像你看到的,第一行更易读和容易理解。在MQL4的语言规则里有两个例外:1、在“contorllingcompilation”里不能使用新行。(我实在不知道老外在这里什么意思,不过还好。因为他说)在下一课里你将知道关于“contorllingcompilation”更多,现在只要记住这个例外就好了。例如下面的代码行是错误的,并且MQL4编译的时候将会报错:这是正确的“contorllingcompilation”:2、在常数值,标识符和关键字的中间不能使用空格或新行。例如,这一行是正确的:Extern和int是关键字,MA_Period是标识符,13是常数值。在下一课,你将知道的更多。下面的这些行是不正确的:DoubleMacdCurrent,MacdPrevious,SignalCurrent:DoubleMacdCurrent,MacdPrevious,SignalCurrent:DoubleMacdCurrent,MacdPrevious,SignalCurrent:注意1和3之间的制表符。注意关键字extern中间的制表符。二、注释为了使程序设计世界更容易些,任何程序语言都要它自己书写注释的风格。代码行里的注释会被汇编器忽略,但它使你的程序更加的清楚和易懂。假定你在夏天写了某个程序,到了冬天你再读它的时候,如果没有注释——尽管你是代码的编写者——你不能理解全部的这些谜一样的代码行。MQL4(c++)使用两种注释方式:1、单行注释单行注释开始于“//”,结束于一个新行。例如:2、多行注释多行注释开始于“/*”,结束于”*/”。例如:你也可以像下面这样在多行注释里嵌套一个单行注释:这也是争取的注释:但这样是错误的:三、标识符标识符用来给变量、函数和数据类型进行命名,长度不能超过31个字节你可以使用数字0-9、拉丁字母大写A-Z和小写a-z(大小写有区分的)还有下划线(_)。此外首字母不可以是数字,标识符不能和保留字冲突.例如MA_Period在这是就是个标识符:让我们来看一些例子:Name1正确的_Name1正确的1Name错误的(首字母不能是数字)~Name错误的(不能使用~)N~ame错误的(不能使用~)I_love_my_country_and_my_country_loves_all_the_world错误的(不能超过31个字符)Color正确的(注意C是大写)Color错误的(color是保留字)四、保留字下面列出的是固定的保留字。不能使用以下任何保留字进行命名。(译者注:都是小写。)数据类型存储类型操作符其他boolexternbreakfalsecolorstaticcasetruedatetimecontinuedoubledefaultintelsestringforvoidifreturnswitchwhile例如下面的这些代码行是不正确的:我希望你能对这一课感兴趣。下一课我们将讲关于“数据类型”。准备好,真正困难的工作将要开始了。最后感谢大家,欢迎回帖批评指正。MQL4课程Bycoders’guru欢迎来到MQL4课程的第三课。回顾下上一课的内容:你可以使用什么格式来书写MQL4代码?怎样通过注释使你的程序更加完善?什么是标识符?选择他们有什么规则?什么是MQL4的保留字?现在,让我们享受本课的乐趣“DATATYPES”(数据类型)数据类型是什么意思?任何程序语言都有一套数据的内存表示的名称。例如,如果内存保留一个-2147483648到2147483647之间的数,那么大多数的程序语言将命名这个数据为“整型数据”(Integer)。变量?变量是被提交到内存中的数据的名称。你可以设想内存是连续的、大小不同的盒子。为了使用一个盒子存储数据,这个盒子必须被赋予一个名称,这个过程被称为“声明”。在“声明”过程,你用一个词告诉计算机你想使用的盒子类型和大小,这个词被称为“关键字”。你还可以给这个盒子起一个好记的或者跟存储数据有关系的名字,这可以方便你以后找到这个数据。这个名字就叫“变量名”。通过“赋值”,可以把数据放进盒子里。我们可以在“声明”变量的同时就给它一个值,这个过程被称为“初始化”。例如下面的这行代码:intMyVaraible=0;intß关键字intß整型数据类型intß声明MyVaraibleß变量名=0ß初始化MQL4包括以下数据类型:■整型数据(int)十进制:数字0-9,包括负数。十六进制:数字0-9,字面a-f或者A-F代表10-15;以0x或者0X开头。整型数据占用4字节的空间,其数值范围介于-2147483648~2147483647之间。如果超出这个范围,则视为无效。例如:intintInteger=0;intintAnotherIntger=-100;intintHexIntger=0x12;■布尔数据(bool)Boolean用来表示是和否,还可以用数字1和0进行表示。True和Flase可以忽略大小写。例如:boolI=true;boolbFlag=1;boolbBool=FALSE;■字符数据(char)任何带单引号的单一字符或者十六进制的ASCII码如'\x10'都是字符数据。例如:'a','$','Z'一些特殊的字符如单引号(')、双引号()、问号(?)、反斜线(\)和控制符必须以反斜线开头(\),组合表达原来的意思,如下表所示:换行NL(LF)\n制表符HT\t回车CR\r反斜线\\\单引号'\'双引号\十六进制ASCIIhh\xhh我们使用关键字INT创建字符类型。例如:intchrA='A';intchrB='$';intc='©';//代码0xA9intd='\xAE';//货币对代码■字符串数据(string)字符串数据是带有双引号的一连串ASCII字符,如:Characterconstant。字符串可以容纳0到255个字符,如果超过这个长度,右边多余的字符将被忽略,编译器也会有相应的警示。如果字符串中需要插入一个双引号()必须在它前面使用反斜线(\)。(参见字符数据部分)我们使用关键字STRING来创建字符串数据,例如:stringstr1=Helloworld1,withyoucodersguru”;stringstr2=Copyright©2005,\Forex-tsdforum\.;//注意双引号的使用.stringstr3=1234567890;■浮点型数据(double)浮点型数据由整数部

1 / 46
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功