(完整版)MT4编程入门详解-有图表
MT4编程例子详解

============================================== ==============================================
以下为上述语句的简要说明
#property indicator_separate_window 指标放在副图
#property indicator_color1 White 第一条指标线为白色
2、 #property indicator_separate_window 把指标显示在副图。如: MAC、D RSI、威廉等类指标用到此语句
3、 #property indicator_buffers 3 显示 3 根指标线
4、 #property indicator_color1 Red 第 1 根指标线的颜色为 Red
另外,还有一个反初始化函数 deinit() deinit() 在自定义卸载时运行一次,可用以去除指标加载时
init() 所做的初始化操作。
MT4编程入门 ( 十) :画一条指标线
要画指标线,只要在程序中写明以下几点就可以了: 第一、明确指标线所在窗口,是主图还是副图 第二、要建立数组,用以保存指标线在各个位置的值。 第三、要建立指标线与数组的对应关系,哪个数组对应哪条指标线 第四、要明确指标线的线型,是曲线还是柱线或者是箭头 第五、如果指标线是箭头,还要说明是哪种箭头 第六、给数组赋值 其中: 第一、二条写在文件头部中, 第三、四、五条写在 init() 函数中( init 函数仅在指标加载时运行一次) 第六条写在 start() 函数中( start 函数在数据发动变动时运行,变动一次运行一次) 下面以 MACD为例说明 我们知道, MACD指标由二条曲线和一组红绿柱线组成。 (下图一) 其中: 白线是二根均线的差; 紫线是白线的移动平均线; 红绿柱线则是白线和紫线的差,白线上穿紫线,出现红柱,下穿则出现绿柱。
MT4编程语言MQL4入门(全接触)

MT4编程语言MQL4入门(全接触)MT4编程语言全接触语法[Syntax]代码格式空格建、Tab键、换行键和换页符都可以成为代码排版的分隔符,你能使用各种符号来增加代码的可读性。
注释多行注释使用/* 作为开始到*/ 结束,在这之间不能够嵌套。
单行注释使用// 作为开始到新的一行结束,可以被嵌套到多行注释之中。
示例:// 单行注释/* 多行注释// 嵌套的单行注释注释结束*/标识符标识符用来给变量、函数和数据类型进行命名,长度不能超过31个字节你可以使用数字0-9、拉丁字母大写A-Z和小写a-z(大小写有区分的)还有下划线(_)。
此外首字母不可以是数字,标识符不能和保留字冲突.示例:// NAME1 namel Total_5 Paper保留字下面列出的是固定的保留字。
不能使用以下任何保留字进行命名。
数据类型存储类型操作符其它bool extern break false color static case true datetime continuedouble defaultint elsestring forvoid ifreturnswitchwhile数据类型[Data types]数据类型概述主要数据类型有:∙Integer (int)∙Boolean (bool)∙ëèòåðàëû (char)∙String (string)∙Floating-point number (double)∙Color (color)∙Datetime (datetime)我们用Integer类型数据来作为DateTime和Color数据的存储。
使用以下方式可以进行类型站换:int (bool,color,datetime);double;string;Integer 类型十进制: 数字0-9;0不能作为第一个字母示例:12, 111, -956 1007十六进制: 数字0-9;拉丁字母a-f或A-F用来表示10-15;使用0x或者0X作为开始。
实用MT4编程教学完整版

实⽤MT4编程教学完整版第⼀篇创建新⽂件1、打开 MetaEditor (如何打开⾃⼰想办法)呵呵,如果这个都打不开,拜托下⾯的也不⽤看了。
也许你不适合研究这个。
:lol2、选择⽂件-->新⽂件打开⽂件创建页⾯。
3、选择第⼆项客户指标然后点下⼀步。
注:这个页⾯可以创建6种⽂件。
我们常⽤的有《客户指标》,《脚本》,《智能交易系统》三种。
我们先从指标开始。
4、输⼊名字,作者等等。
(⽀持中⽂)暂时不添加参数。
注:这个位置可以添加⽤户变量以后讲解。
5、下⼀步我们先建⼀个主窗⼝指标所以这个页⾯什么都不⽤操作注:这个位置可以添加指标“线”。
以后提及。
6、点击完成。
ok新的指标⽂件⽣成了。
但还没有任何有⽤的代码。
初始化代码齐全。
呵呵!下⼀篇继续。
新建⽂件的样⼦和各功能区。
1.//+------------------------------------------------------------------+2.//| MT4指标编辑.mq4 |3.//| ldj |4.//| /doc/2e586ed16137ee06eff9186b.html |5.//+------------------------------------------------------------------+6.#property copyright "ldj"7.#property link "/doc/2e586ed16137ee06eff9186b.html "8.9.#property indicator_chart_window10.//+------------------------------------------------------------------+11.//| Custom indicator initialization function |12.//+------------------------------------------------------------------+13.int init()14. {15.//---- indicators16.//----17. return(0);18. }19.//+------------------------------------------------------------------+20.//| Custom indicator deinitialization function |21.//+------------------------------------------------------------------+22.int deinit()23. {24.//----25.26.//----27. return(0);28. }29.//+------------------------------------------------------------------+30.//| Custom indicator iteration function |31.//+------------------------------------------------------------------+32.int start()33. {34. int counted_bars=IndicatorCounted();35.//----36.37.//----38. return(0);39. }40.//+------------------------------------------------------------------+复制代码上⾯的就是刚刚新建的⼀个指标⽂件。
MT4编程语言MQL4入门(全接触)

MT4编程语言全接触语法[Syntax]代码格式空格建、Tab键、换行键和换页符都可以成为代码排版的分隔符,你能使用各种符号来增加代码的可读性。
注释多行注释使用/* 作为开始到*/ 结束,在这之间不能够嵌套。
单行注释使用// 作为开始到新的一行结束,可以被嵌套到多行注释之中。
示例:// 单行注释/* 多行注释// 嵌套的单行注释注释结束*/标识符标识符用来给变量、函数和数据类型进行命名,长度不能超过31个字节你可以使用数字0-9、拉丁字母大写A-Z和小写a-z(大小写有区分的)还有下划线(_)。
此外首字母不可以是数字,标识符不能和保留字冲突.示例:// NAME1 namel Total_5 Paper保留字下面列出的是固定的保留字。
不能使用以下任何保留字进行命名。
数据类型存储类型操作符其它bool extern break falsecolor static case truedatetime continuedouble defaultint elsestring forvoid ifreturnswitchwhile数据类型[Data types]数据类型概述主要数据类型有:∙Integer (int)∙Boolean (bool)∙ëèòåðàëû (char)∙String (string)∙Floating-point number (double)∙Color (color)Datetime (datetime)我们用Integer类型数据来作为DateTime和Color数据的存储。
使用以下方式可以进行类型站换:int (bool,color,datetime);double;string;Integer 类型十进制: 数字0-9;0不能作为第一个字母示例:12, 111, -956 1007十六进制: 数字0-9;拉丁字母a-f或A-F用来表示10-15;使用0x或者0X作为开始。
MT4编程语言MQL4入门(全接触)

MT4编程语言全接触语法 [Syntax]代码格式空格建、Tab键、换行键和换页符都可以成为代码排版的分隔符,你能使用各种符号来增加代码的可读性。
注释多行注释使用 /* 作为开始到 */ 结束,在这之间不能够嵌套。
单行注释使用示例:0A2f7C用来更精确的表示十进制数字。
示例:double a = ;double b = ;double c = ;double d = 16;浮点型的取值范围从到 .String 类型字符串型是用来表示连续的ASCII码字符的使用连续的两个双引号来包括需要表示的内容如:"Character constant".示例:"This is a character string""Copyright symbol \t\xA9""this line with LF symbol \n""A" "90" "0" "$"Color 类型颜色类型可以使用以下示例里的几种方式进行定义。
示例:关系运算符用返回0(False)或1(True)来表示两个量之间的关系。
a是否等于b a == b;a是否不等于b a != b;a是否小于b a < b;a是否大于b a > b;a是否小于等于b a <= b;a是否大于等于b a >= b;真假运算符否定运算符(!),用来表示真假的反面的结果。
.,xn 这样的方法将各种值传送到function中进行运算。
示例:double SL=Ask-25*Point;double TP=Ask+25*Point;int ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,SL,TP, "My comment",123,0,Red);优先级规则下面是从上到下的运算优先规则,优先级高的将先被运算。
MT4编程入门教程

MT4编程入门教程MT4是一种广泛使用的外汇交易平台,它提供了强大的交易功能和高度可定制性。
为了使交易者能够根据自己的需求和策略进行自动化交易,MT4还提供了MQL4编程语言。
本教程将介绍MT4编程的基础知识和入门指南。
第一部分:MQL4简介(200字)MQL4是MetaQuotes Language 4的缩写,是MT4交易平台上使用的编程语言。
它基于C语言,并且具有简单易学的特点。
使用MQL4,交易者可以编写自定义指标、脚本和外汇机器人,并将它们应用于MT4交易平台。
第二部分:MT4编程环境的设置(200字)第三部分:MQL4基本语法(400字)MQL4编程语言具有与C语言类似的语法结构。
以下是MQL4的基本语法要点:1.注释:使用“//”表示单行注释,使用“/**/”表示多行注释。
2. 变量:使用关键字“int”、“double”、“bool”和“string”定义整型、双精度浮点数、布尔和字符串变量。
3. 函数:使用关键字“void”或返回类型定义函数,例如“int”、“double”和“bool”。
函数可以包含参数和返回值。
4. 条件语句:使用关键字“if”、“else if”和“else”定义条件语句。
例如:if (条件)//执行一些代码} else if (条件)//执行一些其他代码} else//执行默认代码}```5. 循环:使用关键字“for”和“while”定义循环语句。
例如:```for (初始化; 条件; 更新)//执行循环代码}```6.数组:使用方括号“[]”定义一维和多维数组。
例如:```int myArray[5]; // 定义一个包含5个元素的整型数组double myArray2D[3][3]; // 定义一个包含3行3列的二维数组第四部分:自定义指标和脚本(200字)在MT4中,使用MQL4编程语言可以创建自定义指标和脚本。
自定义指标是根据特定算法计算的技术指标,用于辅助交易决策。
MT4编程例子详解

MT4编程入门(九):MT4自定义指标的结构MT4自定义指标一般由四个部分构成:(1)文件头部(2)参数、变量和数组的定义(3)初始化函数init()(4)主函数start()一、文件头部,也称为预处理程序预处理程序以“#”开头,行尾无语句结束符“;”常用的预处理程序有:1、#property indicator_chart_window把指标显示在主图。
如:均线、SRA等类指标用到此语句2、#property indicator_separate_window把指标显示在副图。
如:MACD、RSI、威廉等类指标用到此语句3、#property indicator_buffers 3显示3根指标线4、#property indicator_color1 Red第1根指标线的颜色为Red5、#property indicator_width1 1第1根指标线的粗细分别为16、#property indicator_level1 0.00在0.00值位置横划1条虚线二、参数、变量和数组的定义全局性的参数、变量、数组在此定义,局部变量可在start()函数中定义三、初始化函数init()init()在自定义指标加载时运行一次。
初始化函数的功能是“设置”。
如果自定义指标需要划线,则必然用到此函数四、主函数start()当数据有变动时,start()就被触发。
数据变动一次,start()就运行一次。
自定义指标的编程主要依靠此函数进行。
start()函数的作用主要是取值和给指标线赋值,报警也在此函数内发起。
另外,还有一个反初始化函数deinit()deinit()在自定义卸载时运行一次,可用以去除指标加载时init()所做的初始化操作。
MT4编程入门(十):画一条指标线要画指标线,只要在程序中写明以下几点就可以了:第一、明确指标线所在窗口,是主图还是副图第二、要建立数组,用以保存指标线在各个位置的值。
第三、要建立指标线与数组的对应关系,哪个数组对应哪条指标线第四、要明确指标线的线型,是曲线还是柱线或者是箭头第五、如果指标线是箭头,还要说明是哪种箭头第六、给数组赋值其中:第一、二条写在文件头部中,第三、四、五条写在init()函数中(init函数仅在指标加载时运行一次)第六条写在start()函数中(start函数在数据发动变动时运行,变动一次运行一次)下面以MACD为例说明我们知道,MACD指标由二条曲线和一组红绿柱线组成。
(完整版)MT4编程入门详解-有图表

目录 MT4编程入门(一):MT4自定义指标的基本操作指标源码中的常用符号说明自定义变量自定义函数 自定义数组市场数据取值 判断语句 循环 MT4自定义指标的结构 MT4编程入门(十):画一条指标线MT4编程入门(^一 ): MT4的报警& indicatorff文件匹 錦矩② 查看② 收障® 工具⑴ 帮助QPQ 后退-保存目录yMT4自定义指标的保存目录、指标编缉器与指标调用一、MT4 自定义指标保存在 C:\Program Files'MetaTrader 4\experts\indicators 这个目录中,该目录中主要有二种类型的文件,一种是mq4文件,这是MT4自定义指标的源码文件,是一种高级语言文件,可以人工编写修改,机器不能直接执行, 但能在MT4启动时自动编译为 ex4可执行文件。
另一种就是ex4文件,这是MT4自定义指标的可执行文件,由 mq4文件编译得到。
mq4文件必须编译为 ex4文件才能被 MT4执行。
但ex4文件是机器码文件,人工不可修改另外还有一个文件是 mqlcache.dat ,它用来保存目录中的文件信息,如果MT4无法自动编译,只要删除此文件即可解决问题 mq4文件编译为ex4可执行文件有两种方法:1、MT4启动时,会自动把此目录中的 mq4文件编译为ex4文件。
MT4编程入门 (一) : MT4自定义指标的基本操作MT4编程入门(二) MT4编程入门(三) MT4编程入门(四) MT4编程入门(五)MT4编程入门(六) MT4编程入门(七)A.c mnrul at i. on . nt q 可执行不可编牡 m uAwe some. ex4 地扯 文件和文件妄丰其它僅置 口 晒 PMtEQ 我的文裆口共拿文裆J 毯的电脑•J 冏上郭居 口旬健一伞新U 将遠个文件7并拿此文f 宅 I^C : \Frogr am F iles^Metalrader 4\exptrts\indi cators源码文件 可执行文件 frnii ■■■ I mu | :Ac curaul all on. ex4 :2、用MQ 语言编辑器打开 mq4文件,点一下“编写”按钮,即可生成ex4文件 、下载保存mq4文件、ex4文件在论坛上我们经常看到有 mq4文件、ex4文件可供下载,我们只要把它们保存到C:\Program Files'MetaTrader 4\experts\indicators 这个目录,也就是下面这个目录中,就可以了。
MT4编程入门详解

目录MT4编程入门(一):MT4自定义指标的基本操作MT4编程入门(二):指标源码中的常用符号说明MT4编程入门(三):自定义变量MT4编程入门(四):自定义函数MT4编程入门(五):自定义数组MT4编程入门(六):市场数据取值MT4编程入门(七):判断语句MT4编程入门(八):循环MT4编程入门(九):MT4自定义指标的结构MT4编程入门(十):画一条指标线MT4编程入门(十一):MT4的报警MT4编程入门(一):MT4自定义指标的基本操作MT4自定义指标的保存目录、指标编缉器与指标调用一、MT4自定义指标保存在C:\Program Files\MetaTrader 4\experts\indicators这个目录中,该目录中主要有二种类型的文件,一种是mq4文件,这是MT4自定义指标的源码文件,是一种高级语言文件,可以人工编写修改,机器不能直接执行,但能在MT4启动时自动编译为ex4可执行文件。
另一种就是ex4文件,这是MT4自定义指标的可执行文件,由mq4文件编译得到。
mq4文件必须编译为ex4文件才能被MT4执行。
但ex4文件是机器码文件,人工不可修改另外还有一个文件是mqlcache.dat,它用来保存目录中的文件信息,如果MT4无法自动编译,只要删除此文件即可解决问题mq4文件编译为ex4可执行文件有两种方法:2、用MQ语言编辑器打开mq4文件,点一下“编写”按钮,即可生成ex4文件二、下载保存mq4文件、ex4文件在论坛上我们经常看到有mq4文件、ex4文件可供下载,我们只要把它们保存到C:\Program Files\MetaTrader 4\experts\indicators这个目录,也就是下面这个目录中,就可以了。
如果下载的是ex4文件,那可以直接调用;如果是mq4文件,则需要重启动MT4,让系统自动编译生成ex4可执行文件。
如果下载的是rar、zip等类型的压缩文件,还必须下载后解压到此目录才能使用。
MT4使用基础(五):图表操作T...

MT4使用基础(五):图表操作T...MT4使用基础(五):图表操作Tags: MT4Posted in MT4平台使用 | Comment打开图表在终端安装的过程中将会创建缺省的图表夹Default,在打开终端时会默认并列显示图表夹中保存的四个主要货币对EURUSD、USDCHF、GBPUSD、USDJPY的图表窗口。
每个窗口都可以关闭、改变时间周期、放大到整个图表窗口,然后点窗口底部的品种标签可以在不同的品种间切换。
如果不小心把品种标签栏关闭掉了,可以点“显示”菜单—图表工具栏重新显示。
对哪个图表进行操作,就得单击图表区域或品种标签先选中它,使它处于激活状态。
虽然可以不加限制的打开多个品种或同一品种多个周期的新窗口,但图表打开过多, 不但软件启动加载时运行很慢,而且使用过程中在图表窗口间每次转换查看时系统都要重新计算图表数据,也会导致系统变慢。
有四种方式可以打开一个新图表:①使用“常用按钮”中操作;②点“文件菜单—新图表”;③点“窗口菜单—新窗口”;④市场报价窗口选中某个品种,点右键“图表窗口”。
新图表打开后系统自动保存,不会丢失。
设置图表属性图表是一种金融品种价格动态的时间模型,可以执行主菜单“图表-属性”来显示图表属性窗口,也可以通过图表的右键菜单选择“属性”或直接按F8键来显示。
在此窗口中可以自定义图表颜色(颜色页中):•背景—整个图表的背景;•前景—坐标轴,刻度和开高低收价格;•网格—网格;•阳柱—阳线的框线;•阴柱—阴线的框线;•阳烛—阳线的实体部分;•阴烛—阴线的实体部分;•折线图—折线图和十字星;•成交量—成交量线;•卖出价线—图表中显示的卖出价水平线;•止损价位—止损止赢价位的水平线。
窗口左边的图中能实时看到修改颜色的结果。
除了手工选中颜色以外,在“颜色风格”的下拉列表框中还可以选择预定义的风格:“Yellow on Black“,“Green on Black“(默认) o r “Black on White“。
MT4编程语言MQL4入门(全接触)

MT4编程语言全接触语法[Syntax]代码格式空格建、Tab键、换行键和换页符都可以成为代码排版的分隔符,你能使用各种符号来增加代码的可读性。
注释多行注释使用/* 作为开始到*/ 结束,在这之间不能够嵌套。
单行注释使用// 作为开始到新的一行结束,可以被嵌套到多行注释之中。
示例:// 单行注释/* 多行注释// 嵌套的单行注释注释结束*/标识符标识符用来给变量、函数和数据类型进行命名,长度不能超过31个字节你可以使用数字0-9、拉丁字母大写A-Z和小写a-z(大小写有区分的)还有下划线(_)。
此外首字母不可以是数字,标识符不能和保留字冲突.示例:// NAME1 namel Total_5 Paper保留字下面列出的是固定的保留字。
不能使用以下任何保留字进行命名。
主要数据类型有:•Integer (int)•Boolean (bool)•ëèòåðàëû (char)•String (string)•Floating-point number (double)•Color (color)•Datetime (datetime)我们用Integer类型数据来作为DateTime和Color数据的存储。
使用以下方式可以进行类型站换:int (bool,color,datetime);double;string;Integer 类型十进制: 数字0-9;0不能作为第一个字母示例:12, 111, -956 1007十六进制: 数字0-9;拉丁字母a-f或A-F用来表示10-15;使用0x或者0X作为开始。
示例:0x0A, 0x12, 0X12, 0x2f, 0xA3, 0Xa3, 0X7C7Integer 变量的取值范围为-2147483648到2147483647。
Literal 类型任意在单引号中的字符或十六进制的任意ASCII码例如'\x10'都是被看作为一个字符,一些字符例如单引号('),双引号("),问号(?),反斜杠(\)和一些控制符都需要在之前加一个反斜杠(\)进行转意后表示出来:line feed NL (LF) \nhorizontal tab HT \tcarriage return CR \rreverse slash \ \\single quote ' \'double quote " \"hexadecimal ASCII-code hh \xhh以上字符如果不经过反斜杠进行转意将不能被使用示例:int a = 'A';int b = '$';int c = '©'; // code 0xA9int d = '\xAE'; // symbol code ®Boolean 类型Boolean 用来表示是和否, 还可以用数字 1 和0 进行表示。
MT4指标编程入门

MT4指标编程入门MT4(MetaTrader 4)是一种非常流行的外汇交易软件,它提供了一个强大的工具集,用于技术分析和交易执行。
MT4指标是一种用于帮助交易者确定市场趋势和价格走向的技术指标。
如果您对MT4指标编程感兴趣,以下是一些入门的关键概念和步骤。
1. MetaEditor:MT4提供了一个内置的IDE(集成开发环境)称为MetaEditor,用于编写和测试自定义指标。
您可以通过单击MT4软件上的“MetaEditor”按钮来打开它。
2. MQL4语言:MT4指标编程使用的编程语言是MQL4(MetaQuotes Language 4)。
它是一种类似于C语言的编程语言,具有类似的语法和结构。
3. 基本结构:一个标准的MT4指标通常包含init、deinit和start函数。
init函数只在指标加载时执行一次,而deinit函数只在指标卸载时执行一次。
start函数是主要的计算和绘制图表的函数,它会在每个新的PriceTick时执行。
4.自定义参数:您可以在指标设置中定义自定义参数,这样您就可以通过更改这些参数的值来改变指标的行为。
常见的参数包括移动平均线的周期、布林带的标准偏差等。
5.图表绘制:MT4指标可以在交易图表上绘制各种图形和线条,以便更好地显示价格和技术指标之间的关系。
例如,您可以在图表上绘制移动平均线、布林带或MACD线。
6.指标计算:MT4指标的核心功能是计算特定的技术指标值,这些值可以用于确定市场的潜在趋势和价格走向。
您可以使用MQL4语言中提供的各种内置函数和操作符来计算这些指标值,例如收益率、波动率等。
7.继承和封装:MT4指标编程还支持继承和封装的概念,这使得指标的重用和扩展变得更加容易。
您可以通过创建一个继承自其他指标的新指标来实现代码的重用,并且可以将一组功能相似的指标封装成一个自定义的库。
8. 调试和优化:编写完指标代码后,您可以使用MetaEditor中的调试功能来检查和修复潜在的错误。
MT4基本教程加详图

MT4使用教程之一:初识MT4软件(题外篇:咨询加QQ 849286149 来出租购买MT4 )从今天开始我将不定期的写一些MT4使用的教程文章,一方面是由于MT4在外汇保证金交易领域使用的广泛性,另一方面也是我平时在培训时候发现有很多的刚入行的朋友在MT4使用过程中会碰到很多的问题。
在编写这一系列MT4使用教程的时候,我会尽量写的很详细,以便让刚入行的朋友能够轻松的学会如何使用,至于对已经会使用MT4的朋友们来说,这一系列教程可不用理会。
MT4软件为俄罗斯迈达克软件公司(MetaQuotes)设计生产,下面为MT4软件的整体布局及各个模块的功能介绍:模块的功能介绍:首先来看软件顶端的菜单栏:文件、显示、插入、图表、工具、窗口、帮助文件菜单:单击文件菜单可看见左侧一栏新图表:点击新图表则会打开软件提供的各个交易品种的列表,点击任一商品打开一个新的图表窗口。
打开离线历史数据:点击则会打开离线的图表,从中选择一种商品打开,打开离线图表对我们进行EA智能交易有帮助。
打开已关闭图表:点击选择需要还原的已关闭或删除的图表图表夹:点击可选择一个多图表模式,默认的为EURUSD,USDCHF,GBPUSD,USDJPY四大货币对。
关闭:点击关闭则会关闭当前打开的图表。
保存:点击则以CSV,PRN,HTM等格式保存当前打开的图表数据。
保存为图片:点击则以图片形式保存当天的图表或MT4界面开新模拟账户:点击则会在弹出的新窗口中注册一个模拟账户。
登陆:点击登陆则会在弹出的窗口中填写账户的登陆信息。
打印设置、打印预览、打印等如同MS Office软件使用方法,这里不介绍。
退出:点击则退出MT4软件。
显示菜单:单击如下图显示Languages:点击选择MT4软件的可视语言,默认为英文,点击选择Chineses (Simplified)后,关闭软件再打开则为中文界面工具栏:点击工具栏可选择常用、图表、画线和时段等工具栏状态栏:选择可在软件的最底部显示状态栏图表工具栏:选择后可看见当前显示商品图表的名称以及时段市场报价:单击选择如MT4软件左侧“市场报价”一栏所示数据窗口:单击选择可打开“数据窗口”,显示价位及相关信息导航器:打击打开如MT4软件左侧“市场报价”下面的“导航”栏终端:打击选择如MT4软件底部的“终端”一栏所示,包括交易、账户历史、新闻、警报、邮箱和日志智能交易测试:单击选择则会在软件底部出现“测试”一栏,以供EA智能交易测试使用全屏幕:单击则以满屏形式打开商品图表插入菜单:插入菜单则是选择在当前打开的商品图表中加入分析技术指标以及分析工具或文字。
MT4编程语言MQL4入门(全接触)

精心整理MT4编程语言全接触语法[Syntax]代码格式空格建、Tab键、换行键和换页符都可以成为代码排版的分隔符,你能使用各种符号来增加代码的可读性。
注释多行注释使用/*作为开始到*/结束,在这之间不能够嵌套。
单行注释使用//作为开始到新的一行结束,可以被嵌套到多行注释之中。
示例://单行注释数据类型[Datatypes]数据类型概述主要数据类型有:∙Integer(int)∙Boolean(bool)∙?èò?eà??(char)∙String(string)∙Floating-pointnumber(double)∙Color(color)∙Datetime(datetime)我们用Integer类型数据来作为DateTime和Color数据的存储。
使用以下方式可以进行类型站换:int(bool,color,datetime);double;string;Integer类型十进制:数字0-9;0不能作为第一个字母示例:十六进制示例:IntegerLiteral(\)示例:Boolean是和否,还可以用数字1和0进行表示。
True和Flase可以忽略大小写。
示例:boola=true;boolb=false;boolc=1;Floating-pointnumber类型浮点型变量在整数型后面加一个点(.)用来更精确的表示十进制数字。
示例:doublea=12.111;doubleb=-956.1007;doublec=0.0001;doubled=16;浮点型的取值范围从2.2e-308到1.8e308.String类型字符串型是用来表示连续的ASCII码字符的使用连续的两个双引号来包括需要表示的内容如:"Characterconstant".示例:"Thisisacharacterstring""Copyrightsymbol\t\xA9""thislinewithLFsymbol\n"Color类型示例:RedYellowBlack示例:表达式一个表达式可以拥有多个字符和操作符,一个表达式可以写在几行里面。
MT4指标编程入门解析

MT4指标编程入门解析MetaTrader 4(MT4)是一种用于外汇和股票交易的流行交易平台,该平台允许用户使用各种技术指标来进行分析和预测市场趋势。
通过编写自定义指标,交易者可以利用MT4的强大功能来制定他们自己的交易策略。
本文将介绍如何编程MT4指标的基本知识和步骤。
在编写指标之前,您需要了解一些MT4指标编程的基本语法和函数。
MT4使用一种名为MQL4的专有编程语言来编写指标和自动化交易脚本。
MQL4类似于C语言,并且有许多内置函数和操作符可供使用。
在编写指标时,您需要熟悉以下一些常用函数和操作符:1.`iMA`:计算移动平均线的函数。
它接受多个参数,包括计算平均线的价格类型、计算平均线的周期等。
2.`iRSI`:计算相对强弱指标(RSI)的函数。
RSI用于测量市场超买和超卖的情况。
3.`iMACD`:计算移动平均收敛/发散指标(MACD)的函数。
MACD用于判断市场的趋势和方向。
4. `iBands`:计算布林带指标的函数。
布林带用于测量市场波动性。
此外,还有其他一些常用的函数和操作符,如数学函数(例如`MathMax`和`MathMin`)、条件语句(例如`if`和`else`)以及循环(例如`for`和`while`)。
一旦您熟悉了这些基本知识,就可以开始编写您自己的指标了。
下面是编写一个简单移动平均线指标的示例代码:```mql4#property indicator_chart_window#property indicator_buffers 1#property indicator_color1 Blueextern int period = 14;double ma_buffer[];void OnInitSetIndexBuffer(0, ma_buffer, INDICATOR_DATA);int start = prev_calculated > 0 ? prev_calculated - 1 : 0;for (int i = start; i < rates_total; i++)ma_buffer[i] = iMA(NULL, 0, period, 0, MODE_SMA, PRICE_CLOSE, i);}```在这个示例中,我们定义了一个名为`ma_buffer`的浮点数数组,用于存储移动平均线的值。
MT4精讲:MT4编程入门全集1-11,DOC

MT4编程入门1:MT4自定义指标的基本操作MT4自定义指标的保存目录、指标编缉器与指标调用一、MT4自定义指标保存在C:\ProgramFiles\MetaTrader4\experts\indicators这个目录中,但ex4文件是机器码文件,人工不可修改另外还有一个文件是mqlcache.dat,它用来保存目录中的文件信息,如果MT4无法自动编译,只要删除此文件即可解决问题mq4文件编译为ex4可执行文件有两种方法:1、MT4启动时,会自动把此目录中的mq4文件编译为ex4文件。
2、用MQ语言编辑器打开mq4文件,点一下“编写”按钮,即可生成ex4文件二、下载保存mq4文件、ex4文件在论坛上我们经常看到有mq4文件、ex4文件可供下载,我们只要把它们保存到C:\ProgramFiles\MetaTrader4\experts\indicators这个目录,也就是下面这个目录中,就可以了。
如果下载的是ex4文件,那可以直接调用;如果是mq4文件,则需要重启动MT4,让系统自动编译生成ex4可执行文件。
如果下载的是rar、zip等类型的压缩文件,还必须下载后解压到此目录才能使用。
4件5、还有很重要的一点,就是要把源码文件保存到正确的目录中下编写。
到此,源码保存完成。
当然,我们也还有另的办法:可以打开一个原已存在的mq4文件,然后另存为你需要的文件名,再删除文件中的所有内容成为空文件,把网页上的源贴到文件中保存即可也可以在记事本中新建一个文件,把网页上的源码贴进记事本,然后取个文件名保存到上面提到的目录,不过文件后缀必须输入mq4,保存类型选择“所以文件”四、mt4程序调用自表示一个语句结束三、逗号“,”表示一个语句内部间隔,不结束语句。
四、等于号“=”赋值语句,把等号后面的值赋给等号前的变量中五、加号“+”整数或小数,则表示值相加;字符串,则表示前后连接。
六、加加“++”十、“&&”逻辑符“并且”十一、“||”逻辑符“或者”十二、大括号“{}”表示函数体。
MT4智能交易系统_编程手册知识讲解

点击这里查看如何添加、启动、测试智能交易系统软件。
智能交易系统软件是一个创新的交易工具,允许客户对自己的交易策略进行设定并进行测试。
还可以创建新的技术指标获取交易系统的逐步解释 - 反转条 - 点击这里。
MultiBank FX程序员MultiBank FX向那些想要对其交易策略进行自动化,但又不想学习智能交易系统程序语言客户提供程序服务。
欲知详情,请联系在线客服智能交易系统软件是用来对交易过程全程自动化,免除交易商连续对市场进行日常烦琐的监护。
许多专业交易商利用多层交易系统,对不同的市场和在不同的环境下进行操作。
通常他们在著名的分析软件包里对交易战略进行编写和测试,比如,MetaStock 和 TradeStation。
使用MultiBank Trader智能交易系统软件,招招领先,你可以把交易系统产生的信号和真实账户联系起来,这样连接以便于能追踪和管理你的某个时段的开仓部位,提交的订单和止损单。
什么是智能交易系统?它是一个用特殊的MetaQuotes 语言 4 (MQL 4)编写的自动交易系统(ATS),和特定的图表联系在一起。
智能交易系统不仅能通知交易商交易机会,而且还能自动执行交易账户上的交易,直接发送到交易服务器。
和许多的IT系统一样,智能交易系统系统支持历史数据战略测试,图表上表示的登入/登出点。
而且,智能交易系统的可执行码分别存储于源文件和加密的执行文件中-这种安排保证了交易商所使用的逻辑隐藏(如有必要的话),而不会泄密。
编写自己的智能交易系统软件也非常容易:尝试一下吧!不需要是专业编程高手,你只需要学会使用非常简单的语言-MQL 4语言。
即使用户不能自行编写智能交易系统规则,但是他需要熟悉近的编程技能,不过很可能不需一个小时他便掌握了这些规则并能编写程序。
无数的交易商为MetaStock 和 TradeStation软件开发了多种多样的交易战略。
其中多数均被翻译成MQL 4语言,这就使得用户可以把前期累计的经验并合到里面去。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录MT4编程入门(一):MT4自定义指标的基本操作MT4编程入门(二):指标源码中的常用符号说明MT4编程入门(三):自定义变量MT4编程入门(四):自定义函数MT4编程入门(五):自定义数组MT4编程入门(六):市场数据取值MT4编程入门(七):判断语句MT4编程入门(八):循环MT4编程入门(九):MT4自定义指标的结构MT4编程入门(十):画一条指标线MT4编程入门(十一):MT4的报警MT4编程入门(一):MT4自定义指标的基本操作MT4自定义指标的保存目录、指标编缉器与指标调用一、MT4自定义指标保存在C:\Program Files\MetaTrader 4\experts\indicators这个目录中,该目录中主要有二种类型的文件,一种是mq4文件,这是MT4自定义指标的源码文件,是一种高级语言文件,可以人工编写修改,机器不能直接执行,但能在MT4启动时自动编译为ex4可执行文件。
另一种就是ex4文件,这是MT4自定义指标的可执行文件,由mq4文件编译得到。
mq4文件必须编译为ex4文件才能被MT4执行。
但ex4文件是机器码文件,人工不可修改另外还有一个文件是mqlcache.dat,它用来保存目录中的文件信息,如果MT4无法自动编译,只要删除此文件即可解决问题mq4文件编译为ex4可执行文件有两种方法:2、用MQ语言编辑器打开mq4文件,点一下“编写”按钮,即可生成ex4文件二、下载保存mq4文件、ex4文件在论坛上我们经常看到有mq4文件、ex4文件可供下载,我们只要把它们保存到C:\Program Files\MetaTrader 4\experts\indicators这个目录,也就是下面这个目录中,就可以了。
如果下载的是ex4文件,那可以直接调用;如果是mq4文件,则需要重启动MT4,让系统自动编译生成ex4可执行文件。
如果下载的是rar、zip等类型的压缩文件,还必须下载后解压到此目录才能使用。
三、将源码保存为源码文件在论坛上,我们也经常能看到指标源码贴在网页上,但没有mq4、ex4等文件可以下载,只能复制源码。
此时需要我们自己动手将源码保存为源码文件,那也没关系,非常地简单,多点几下鼠标就搞定。
1、打开MQ语言编辑器2、在MQ语言编辑器中新建一个文件,文件名一定要输,别的随便操作都没关系。
3、删除新文件里面的所有内容,成为一个空文件,4、接着我们就可以将网页上源码复制粘贴进来试着点一下“编写”,如果左下角出现“0错误,0警告”,那说明源码没问题,编译通过了,成功生成了ex4可执行文件5、还有很重要的一点,就是要把源码文件保存到正确的目录中保存后,再点一下编写。
到此,源码保存完成。
可以打开一个原已存在的mq4文件,然后另存为你需要的文件名,再删除文件中的所有内容成为空文件,把网页上的源贴到文件中保存即可也可以在记事本中新建一个文件,把网页上的源码贴进记事本,然后取个文件名保存到上面提到的目录,不过文件后缀必须输入mq4,保存类型选择“所以文件”四、mt4程序调用自定义指标这非常简单MT4编程入门(二):指标源码中的常用符号说明一、注释符:单行注释“//”、多行注释“/* */”程序不执行注释,注释内容仅供阅读或保留不用的语句在MQ语言编辑器中,注释内容以灰色显示二、分号“;”表示一个语句结束三、逗号“,”表示一个语句内部间隔,不结束语句。
四、等于号“=”赋值语句,把等号后面的值赋给等号前的变量中五、加号“+”整数或小数,则表示值相加;字符串,则表示前后连接。
六、加加“++”表示把符号前的变量值加1,例如:“i++;”这实际上就是:“i=i+1;”的简写,表示i的值加1七、加等于“+=”表示把符号后的值加到符号前的变量中。
例如“i+=2;”,实际上就是“i=i+2;”的简写,表示i的值加2八、双等号“==”等于号。
用于逻辑判断,双等号前后值相等,则返回逻辑值“真true”;双等号前后值不相等,则返回逻辑值“假false”九、叹号等号“!=”不等于号。
用于逻辑判断,不等号前后值不相等,则返回逻辑值“真true”;不等号前后值相等,则返回逻辑值“假false”十、“&&”逻辑符“并且”十一、“||”逻辑符“或者”十二、大括号“{}”表示函数体。
{}内部为函数体语句。
MT4编程入门(三):自定义变量一、自定义变量在使用前,必须先创建(定义),设定变量的类型和名称。
创建时可同时赋值,也可以不赋值。
名称可以使用中文字符。
例:int mark;创建一个整型变量,变量名为“mark”。
bool 是否报警=true;创建一个逻辑型变量,变量名为“是否报警”,同时,赋初值“true”二、类型和类型定义词自定义变量的基本类型有:1、整形(int):就是整数,包括负整数2、双精度小数(double):可以简单地理解为带小数位的数3、字符串型(string)。
4、逻辑型(bool):其值分别为“true、false”,即“真、假”,也可以写成“1、0”(1真,0假)。
类型定义词仅在创建变量时使用,后面使用变量时,就不能再加类型定义词了三、附加变量附加变量就是在程序投入使用后,变量值允许用户自由更改的变量,一般用作程序参数。
一般指标,例如MACD(12,26,9)参数输入就是通过附加变量实现,(12,26,9)分别为三个附加变量的默认值。
定义附加变量只需在变量定义语句前加“extern”例:extern int 周期=9;创建一个整型附加变量,变量名为“周期”,默认值为9,允许用户在程序外部修改参数值MT4编程入门(四):自定义函数例如:数学函数ft(x,y)=3x+2y (x,y为正整数) 写成程序语句就是:int ft(int x,int y){int temp;temp=3*x+2*y;return(temp);}一、和自定义变量一样,自定义函数在使用前,也必须先设立,以定义其类型、名称、参数和运算语句。
函数类型、名称、参数位于函数头部(参数间以逗号分隔),大括号中的是运算语句,也就是函数体部分。
return语句为函数结束语句,return后面括号中的值为函数返回值,即函数运算结果。
上例中,int为函数类型,表示该函数的返回值(运算结果)是整数;(x,y)为参数,由于自定义变量使用之前都必须先创建,所以要加上类型定义词intft为函数名,有了函数名,我们就可以在别处用ft(2,1)的形式来调用此函数;函数体部分有三句:第一句,定义一个整形变量temp第二句,计算temp的值第三句,函数结束,返回调用点,以temp的值作为本函数返回值。
此函数也可以简写为:int ft(int x,int y) {return(3*x+2*y);}二、函数类型与类型符函数类型就是函数返回值(运算结果)的类型,与自定义变量类型差不多有整型(int)、双精度型(double)、字符串型(string)、逻辑型(bool)等,还有一种函数是以函数运行为目的,运行结束后不需要返回值也没有返回值的,则函数类型可以写成void(无值型)三、函数中如果定义了自定义变量,那么此变量仅在本函数内部存在,函数运行结束时,自定义变量也就自动注销。
上例中,有x、y、temp三个自定义变量,在函数运行时创建,在函数运行结束时自动消失,仅在函数内部有效,与函数外部无关。
四、函数的调用函数调用非常简单,只要函数名正确、参数个数一致、类型相同就能正确调用如我们前面创建了ft(x,y)函数,则别处我们可以用ft(4,5)等样式来调用ft(x,y)函数求值。
调用时,传递参数值给ft(x,y)函数(按顺序把4传给x,把5传给y),返回结果22后继续执行主程序。
MT4编程入门(五):自定义数组一、数组是一系列同类型变量的集合,可以同时存储多个数值。
例:int aa[4]={4,3,2,1};这是一个数据名为aa、包含了4个元素的整数型数组(即数组长度为4),可以同时存储4个数值。
二、自定义数组也必须“先建立,后使用”创建(定义)时,必须设定类型和名称。
创建(定义)时,数组的元素个数也可以设定,也可以不设定数组中第一个元素的编号为0,第二个为1,以此类推。
编号使用方括号括起来在这上例中aa[0]的值为4、aa[1]的值为3、aa[2]的值为2、aa[3]的值为1创建(定义)数组的同时,可以赋初值,也可以不赋初值。
int bb[]; 创建数组bb,不设定数组元素个数int cc[8]; 创建数组cc,设定数组元素为8个,不赋初值int dd[3]={9,8,7}; 创建数组dd,设定数组元素为4个,并赋初值赋值后,dd[0]的值为9、dd[1]的值为8、dd[2]的值为7int ee[9]={0,1,2,3}; 创建数组ee,设定数组元素为9个,但只给前4个元素赋初值三、数组使用时的赋值数组的赋值必须指定明确的赋值对象,除了新建数组时可以批量赋值外,数组元素必须一个一个赋值例如:dd[2]=1;这是对数组dd的第3个元素dd[2]([0]是第1个,[2]表示第3个)重新赋值为1在这里,没有整数型变量定义符int,这样,数组dd原有三个值{9,8,7}就变为{9,8,1}四、数组的引用数组只是一系列变量的集合,所以每次只能使用数组中的一个元素。
数组的引用必须指定明确的引用对象,一次只能引用一个。
如果需要使用整列数组,则必须逐个使用。
例如:数组aa[4]的值为{4,3,2,1}我们用aa来引用数组aa中的值当i=0时,aa[i]的值为4当i=1时,aa[i]的值为3当i=2时,aa[i]的值为2当i=3时,aa[i]的值为1MT4编程入门(六):市场数据取值一、预定义数组(MT4已经定义好的,可以直接使用)开盘价、最高价、最低价、收盘价、成交量等历史数据,每根K线蜡烛都各有一个,所以必须用数组来解决问题,MT4有几个预定义数组:开盘价Open[]、最高价High[]、最低价Low[]、收盘价close[]、成交量Volume[]、所属时间Time[]类型为双精度double型(即精确小数)这里有一个位置的问题,右边第一根K线蜡烛(即最新的蜡烛)的编号为0,第二根蜡烛编号1,第三根蜡烛编号2,也就是说从右向左倒着数过去。
Open[0]、High[0]、Low[0]、Close[0],表示最新的开盘价、最高价、最低价、收盘价Open[1]、High[1]、Low[1]、close[1],表示第2根K线蜡烛的开盘价、最高价、最低价、收盘价Open[2]、High[2]、Low[2]、close[2],表示第3根K线蜡烛的开盘价、最高价、最低价、收盘价Open[3]、High[3]、Low[3]、close[3],表示第4根K线蜡烛的开盘价、最高价、最低价、收盘价Open、High、Low、close,表示第i+1根K线蜡烛的开盘价、最高价、最低价、收盘价以此类推。