版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、dfd34343434343MT4编程入门教程MT4编程入门教程目录MT4编程入门1 : MT4自定义指标的根本操作MT4编程入门2 :指标源码中的常用符号说明MT4编程入门3 :自定义变量MT4编程入门4 :自定义函数dfdfsfMT4编程入门5 :自定义数组MT4编程入门6 :市场数据取值dfdfdfMT4编程入门7 :判断语句dfdMT4编程入门8 :循环MT4编程入门9 : MT4自定义指标的结构MT4编程入门10 :画一条指标线MT4编程入门11: MT4的报警Fxsol环亚汇市、Alpari艾福瑞客户每标准手返56美金。详询QQMT4编程入门1 : MT4自定义指标的根本操作MT4
2、自定义指标的保存目录、指标编缉器与指标调用这个目录中,一、MT4 自定义指标保存在 C:Program Files'MetaTrader 4expertsindicatorsdfdfdsfds叵事 indi cat ors文件足鏑据查假设迪收蘇® 工具帮助地址_ C: Trogran FilesVMctaTrader 4tKpertsindi c*tors文件和文件克*0后退保屛录卞搜亲 丈件灭n创立一亍新: 对将这于文件;弓共至耳文件:源码文件rcuniulati »n. m11 !? Ill WT1 IIB I R - nillHKVIBIIimiiaiRBII
3、I -« iA.C cmi ill at i cn. ez4可枕.丁文牛苴它佐置3 Aperts3我的玄挡 r菇享文档 录我的电脑 曰网上嘟居可执行 不可阴辑、A.w es o m e. eK:4不可kTS. mc|4该目录中主要有二种类型的文件,一种是mq4文件,这是 MT4自定义指标的源码文件,是一种高级语言文件,可以人工编写修改,机 器不能直接执行,但能在 MT4启动时自动编译为 ex4可执行文件。另一种就是ex4文件,这是MT4自定义指标的可执行文件,由mq4文件编译得到。mq4文件必须编译为ex4文件才能被 MT4执行。另存为保存在:,t Acc«l«r
4、 J/ AccumuL :! ' Alli g?ati r.i. ATR mq4 f l Aw 鼻 tdEg.m 町 t Band.5. mq.4 iniicators崑面Lj我的文档2我的电脑*杏地磁盘C 二Program Files MetaTr ader 4 Q expsrtsi MdvingT nq-4 mj4erases.保存目录 不要搞错保存删匹:职消lenory Stick 但: "本地碗盘?: 0 31 / GllflC G;1 nim-vjii UFthSUL Aj 1三、将源码保存为源码文件在论坛上,我们也经常能看到指标源码贴在网页上,但没有mq4、ex4
5、等文件可以下载,只能复制源码。此时需要我们自己动手将源码保存为源码文件,那也没关系,非常地简单,1、翻开MQ语言编辑器多点几下鼠标就搞定。EJ图表电| J Ml M5 MI:GBPUSDJ-I1 21372-01442.0131 Z.O135窗口追帮助$,-历史数裾中九、QP F2品全局娈量F3! 貳语盲编辑器I F4总选项ICtrl+0Br以语言编2、在MQ语言编辑器中新建一个文件,文件名一定要输,别的随便操作都没关系。pn 45*1004: letaTrader - GBPHSDj HI 1智能交易创作欢送光临智能交易能手,膚能靖累境 o客户揩标 o脚本 o贸料O包含(* iot o从按板
6、士成任选丄个,都可以 娃续,按下T取消智能交易创作智誥交宴的第損屋性谦指定智能交易的常规屈性脚際Q)/Si取消帝陛攻叉报醫扌首标名称一定車输 作者! Ccpyrighi ?300T,别邯Software C&rj. 宇上T; iftetiotss. nef. 琴数;3、删除新文件里面的所有内容,成为一个空文件,另存为IT'Vi保存在(I) Acc&l«arATR. mq4Awes ome. e勺n indjwtoFE芦覓面我的玄裆J我的电脑*本地鬼盘C:J_| Progrant FilesHetaTr ad er 4旳沁E!indi cttsr釈呼.叫4
7、9; Momctufn. m(j4llavix 保存目录 不要搞错r ag«s文件名® : 保荐类型©:'Ml lamory Stick 厲: 本比碗畫血 0 SE / WL1C G:'1亦匸4i竺 AX - -职消保存后,再点一下编写。到此,源码保存完成。当然,我们也还有另的方法:可以翻开一个原已存在的 mq4文件,然后另存为你需要的文件名,再删除文件中的所有内容成为空文件,把网页上的源贴到文件中保存即可也可以在记事本中新建一个文件,把网页上的源码贴进记事本,然后取个文件名保存到上面提到的目录,不过文件后缀必须输入mq4,保存类型选择 所以文件四
8、、mt4程序调用自定义指标这非常简单dfdsfdsfdsfdsfdfd五、加号+ 整数或小数,那么表示值相加;字符串,那么表示前后连接。六、加加+ 表示把符号前的变量值加1,例如:i+; 这实际上就是:i=i+i; 的简写,表示i的值加1七、加等于+= 表示把符号后的值加到符号前的变量中。例如i+=2; ,实际上就是i=i+2; 的简写,表示i的值加2八、双等号=等于号。用于逻辑判断,双等号前后值相等,那么返回逻辑值真true ;双等号前后值不相等,那么返回逻辑值假false 九、叹号等号 !=真true ;不等号前后值相等,那么返不等于号。用于逻辑判断,不等号前后值不相等,那么返回逻辑值 回
9、逻辑值假false 十、&& 逻辑符并且 十一、逻辑符或者十二、大括号 fdsfdsfdsf return语句为函数结束语句,return后面括号中的值为函数返回值,即函数运算结果。上例中,int为函数类型,表示该函数的返回值(运算结果)是整数;(x,y)为参数,由于自定义变量使用之前都必须先创立,所以要加上类型定义词intft为函数名,有了函数名,我们就可以在别处用ft(2,1)的形式来调用此函数;函数体局部有三句:第一句,定义一个整形变量temp第二句,计算temp的值第三句,函数结束,返回调用点,以temp的值作为本函数返回值。此函数也可以简写为:int ft(i nt
10、x,int y) return(3*x+2*y);二、函数类型与类型符函数类型就是函数返回值(运算结果)的类型,与自定义变量类型差不多有整型(int)、双精度型(double)、字符串型(string)、逻辑型(bool)等,还有一种函数是以函数运行为目的,运行结束后不需要返回值也没有返回值的,那么函数类型可以写成void(无值型)三、函数中如果定义了自定义变量,那么此变量仅在本函数内部存在,函数运行结束时,自定义变量 也就自动注销。上例中,有x、y、temp三个自定义变量,在函数运行时创立,在函数运行结束时自动消失,仅在函 数内部有效,与函数外部无关。四、函数的调用函数调用非常简单,只要函数
11、名正确、参数个数一致、类型相同就能正确调用如我们前面创立了ft(x,y)函数,那么别处我们可以用ft(4,5)等样式来调用ft(x,y)函数求值。调用时,传递参数值给ft(x,y)函数(按顺序把4传给x,把5传给y),返回结果23后继续执行主程序。MT4编程入门5 :自定义数组一、数组是一系列同类型变量的集合,可以同时存储多个数值。例: int aa4=4,3,2,1;这是一个数据名为 aa、包含了 4个元素的整数型数组(即数组长度为4),可以同时存储4个数值。fdsfsdfs三、数组使用时的赋值数组的赋值必须指定明确的赋值对象,除了新建数组时可以批量赋值外,数组元素必须一个一个赋值例如:dd
12、2=1 ;这是对数组dd的第3个元素dd2 0是第1个,2表示第3个重新赋值为1在这里,没有整数型变量定义符int,这样,数组dd原有三个值9,8,7就变为9,8,1四、数组的引用数组只是一系列变量的集合,所以每次只能使用数组中的一个元素。数组的引用必须指定明确的引用对象,一次只能引用一个。如果需要使用整列数组,那么必须逐个使用。例如:数组aa4的值为4,3,2,1我们用aa来引用数组aa中的值当i=0时,aai 的值为4当i=1时,aai 的值为3当i=2时,aai 的值为2当i=3时,aai 的值为1MT4编程入门6:市场数据取值一、预定义数组MT4已经定义好的,可以直接使用开盘价、最高价
13、、最低价、收盘价、成交量等历史数据,每根K线蜡烛都各有一个,所以必须用数组来解决问题,MT4有几个预定义数组:开盘价Open、最高价High、最低价Low、收盘价close、成交量Volume、所属时间Time类型为双精度double型即精确小数这里有一个位置的问题,右边第一根K线蜡烛即最新的蜡烛的编号为0,第二根蜡烛编号1,第三根蜡烛编号2,也就是说从右向左倒着数过去。Open0、High0、Low0、Close0,表示最新的开盘价、最高价、最低价、收盘价Open1、High1、Low1、Open2、High2、Low2、Open3、High3、Low3、close1,表示第2根K线蜡烛的开
14、盘价、最高价、最低价、收盘价 close2,表示第3根K线蜡烛的开盘价、最高价、最低价、收盘价 close3,表示第4根K线蜡烛的开盘价、最高价、最低价、收盘价Open、High、Low、close,表示第i+1根K线蜡烛的开盘价、最高价、最低价、收盘价以此类推。注意:这些是数组,用的是方括号。二、预定义变量买入价、卖出价是实时价格,MT4用预定义变量Ask和Bid表示,数值类型为 double双精度还有一些预定义变量,如:Bars表示图表中的蜡烛数,类型为int整数型Digits表示当前货币对的小数位,类型为 int整数型,无日元币对为 4,有日元币对为2,黄金石油等 一般也为2Point表
15、示当前货币对的点值,类型为双精度double型,无日元币对为0.0001,有日元币对为0.01。与Digits正好相反。三、指标函数1、价格、成交量、时间它们都有三个参数:货币对名、K线周期、位置序号双精度double型 双精度double型双精度double型双精度double型双精度double型 日期时间datetime型开盘价:iOpe n( symbol,timeframe,shift) 收盘价:iClose(symbol,timeframe,shift) 最高价:iHigh(symbol,timeframe,shift) 最低价:iLow(symbol,timeframe,shif
16、t) 成交量:iVolume(symbol,timeframe,shift) 所属时间:iTime(symbol,timeframe,shift)K线周期为:1分钟图(PERI0D_M1)、5分钟图(PERI0D_M5)、15分钟图(PERI0D_M15)、30分钟图 (PERIOD_M30)、例:i0pe n( "USDJPY",PERI0D_H1,O) iClose("EURUSD",PERI0D_H4,2) iClose("GBPUSD",PERIOD_H1,i) iHigh(NULL,O,O)1 小时图(PERI0D_H1)、
17、4小时图(PERI0D_H4)、日线图(PERI0D_D1)、周线图(PERI0D_W1)、周 线图(PERI0D_W1)、月线图(PERI0D_W1)表示美元兑日元1小时图最新K线蜡烛的开盘价表示欧元兑美元4小时图第3根K线蜡烛的收盘价表示英磅兑美元1小时图第i+1根K线蜡烛的收盘价既不指定商品,也不指定K线周期,用在谁就是谁,用在哪就是哪2、移动平均值。双精度 double型 iMA(symbol, timeframe, period, ma_shift, ma_method, applied_price, shift)参数共7个,分别为:商品名称、K线周期、均线周期、均线偏移、平均模式、
18、价格种类、位置均线周期:10天平均线的均线周期为10, 20天均线的均线周期为20均线偏移:均线位置整体左右移动的位置偏移量平均模式:简单移动平均(MODE_SMA)、指数移动平均(MODE_EMA)、平滑移动平均线 (MODE_SMMA)、线性加权移动平均线 (MODE_LWMA)价格种类:收盘价 (PRICE_CLOSE)、开盘价(PRICE_OPEN)、最高价(PRICE_HIGH)、最低价 (PRICE_LOW)、中值(PRICE_MEDIAN) 、5(PRICE_TYPICAL) 、6(PRICE_WEIGHTED)例 1 : iMA("EURUSD",PERIO
19、D_H1,20,0,MODE_SMA,PRICE_CLOSE,0)表示:欧元1小时图上,以收盘价计算的,20小时简单移动平均线,最新K线所对应位置的值例2 : iMA(NULL,0,20,0,MODE_EMA,PRICE_CLOSE,2)表示:在当前商品、当前K线周期图表上,以收盘价计算的,20(天)指数移动平均线 第3根K线所对 应位置的值其他如MACD指标、威廉指标、RSI、SAR、布林线等指标取值都与移动平均线指标相类似3、在数组中求元素的移动平均值。双精度double型iMAOnArray(数组名,总数,平均周期,均线偏移,平均模式,位置) 这也与iMA函数差不多,不过数据源变为数组从
20、数组中不但可以求得移动平均值,还可以求得RSI等指标值4、求自定义指标的值我们经常自己编一些自定义指标,可用iCustom函数来取得自定义函数的值iCustom(商品名,K线周期,自定义指标名称,自定义指标参数1,参数2,参数3,自定义指标线编号,位置) 如果自定义指标只有一根指标线,那么自定义指标线的编号为0。单线MACD指标程序语句说明property#propertypropertyexternexternintirit:indicatorseparatewindoTir"指标放在副图 indicator c?丄curl White"指标线为白色indicatou_l
21、eve11在零軸画一条水T:线 FO=12 JSMA=2定义参数变帚定义数组int init Giriit函数乂咚置指标线数组SetlndeyBuifer(0,buf)SetlndexSty丄已(D#DRAU LINE), 弱“细(设险标线线型hm g口応门start函数<mt lliuit= Lars-IudicatorCo unted ();r(int iO; i<limit; i+)<循环语句bn±l-fzLH盘(NUliLjCbFllA口-iHAfNULLO.SHA,01“口i);将两条均线的差值賦值给数组以下为上述语句的简要说明#property in d
22、icator_separate_w indow 指标放在副图#property in dicator_color1White第一条指标线为白色#property in dicator_level10在副图中零值位置上画一条水平横线, extern int FMA=12;extern int SMA=26;设立二个整数型变量,默认值为12和26,允许外部修改值double buf;设立一个数组int init()初始化函数。该函数在指标加载时只运行一次。in it是系统默认的函数名,但使用时仍需要进行创设, 所以要加定义符intSetI ndexBuffer(O,buf);设置数组buf为第一条
23、指标线SetI ndexStyle(O,DRAW_LINE);设置第一条指标线线型为连续曲线return(O);函数结束语句int start()指标触发函数。与in it函数不同,该函数在有数据变化时被触发,如果数据被不断更新,那么该函数将 不断执行。start也是系统默认的函数名,但使用时也仍然需要进行创设,所以也要加定义符intint limit=Bars-l ndicatorC oun ted();自定义一个变量limit,并赋值Bars是图表中的柱数In dicatorCou nted()缓存中的柱数,就是已经计算过的有值的柱数这样limit的值就是未经计算的柱数,这样就可以起到优化
24、程序的作用。for(int i=0; i<limit; i+)循环语句。循环从i=0开始,每循环一次i值增加1,一直循环到ivlimit不满足时结束循环由于循环变量i为一个新变量,所以要先定义,加上整型变量定义符int下面大括中为循环体,此例中只一条语句buf=iMA(NULL,0,FMA,0,1,0,i)-iMA(NULL,0,SMA,0,1,0,i);给数组buf赋值,其值分别为相应位置上两条均线的差i是水平位置序号值,即烛柱从右到左的序号,右边第一个烛柱序号为0return(O);start函数结束MT4编程入门11: MT4的报警报警功能是MT4的一大特色。它可以在预定的条件到达
25、时,发出警报。*警抿迢区1AUWPV|Sf上触鬲。均线13:27:04ALIDJFYIW 上融及 30戦确走Llr与指标画线相比,报警语句显得非常简单,只要在判断语句中加一个报警语句即可报警方式有:弹出窗口报警、音乐报警、邮件报警等。如果邮箱开通了短信通知,那么邮件报警的内容会即时转发到上。1、弹出窗口报警:当条件到达执行此语句时,以弹出窗口警告。 格式:Ale戌内容1,内容2,内容3,内容4; 报警内容为字符串型,内容之间加逗号 例如:Alert Symbol,"4 小时图 MACD 上穿零轴"2、音乐报警:当条件到达执行此语句时,播放一段音乐。格式:PlaySound音乐文件名.wav"文件类型为 wav格式,并且保存在 C:Program FilesMetaTrader4sounds 目录中 文件名加引号3、邮件报警:当条件到达执行此语句时,发送一个邮件。摇身变成收发件人地址在MT4系统中设置详见?MT4编程实例1 :一个简单的小程序,让你的外汇行情接收机?格式:SendMail标题1 +标题2,内容1+内容2;标题之间以加号连接,内容之间也以加号连接邮件标题和邮件内容以逗号间隔下面是?价格穿越某均线报警?举例+#property in dicator_chart_w ind
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 岳麓版高中经济史获奖课件战后资本主义的调整
- 内蒙古阿拉善盟2025届高三压轴卷数学试卷含解析
- 广西贺州市2025届高考数学四模试卷含解析
- 2025届湖南省桃江县一中高三下学期第六次检测语文试卷含解析
- 2025届广东省清远市阳山县阳山中学高三第四次模拟考试英语试卷含解析
- 数据资产管理体系建设指南(雷泽佳编制-2024)
- 贵州省贵定县第二中学2025届高三考前热身语文试卷含解析
- 江苏省盐城市、南京市2025届高三第二次模拟考试语文试卷含解析
- 8.2《登高》课件 2024-2025学年统编版高中语文必修上册
- 《教学与科研》课件
- 项目总工岗位职责及考核细则
- 医院三基考试试题
- 华师大版数学七年级上册教案4:5.2《平行线的判定》参考教案
- 糖尿病肾病腹膜透析课件
- DL∕T 2045-2019 中性点不接地系统铁磁谐振防治技术导则
- 国家开放大学《劳动关系与社会保障实务》章节测试参考答案
- 森吉米尔轧机-硅钢轧制工艺技术
- 《习作二十年后的家乡》评课稿
- 低温液体的安全处理课件
- 病态窦房结综合症护理查房课件
- 《兄弟》作品简介名著导读PPT模板
评论
0/150
提交评论