您现在的位置是:主页 > MT4平台下载 >
如:MACD、RSI、威廉等类指标用到此语句183、#pr
2025-12-27 17:55MT4平台下载 人已围观
简介如:MACD 、RSI 、威廉等类指标用到此语句 18 3、#property indicator_buffers 3 显示3 根指标线 、#property indicmt4要怎么开户 MT4 编程初学教程 MT4 编程初学1:MT4 自界说目标的根基操作1 MT4 编程初...
如:MACD 、RSI 、威廉等类指标用到此语句 18 3、#property indicator_buffers 3 显示3 根指标线 、#property indicmt4要怎么开户MT4 编程初学教程 MT4 编程初学1:MT4 自界说目标的根基操作1 MT4 编程初学2 :目标源码中的常用符号证据7 MT4 编程初学3 :自界说变量8 MT4 编程初学4 :自界说函数9 MT4 编程初学5:自界说数组10 MT4 编程初学6 :墟市数据取值11 MT4 编程初学7 :推断语句14 MT4 编程初学8:轮回15 MT4 编程初学9 :MT4 自界说目标的机闭17 MT4 编程初学10:画一条件标线 自界说目标的根基操作 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 可实践文献 有两种格式: 1、MT4 启动时,会自愿把此目 录中的mq4 文献编译为ex4 文献。 1 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 讲话编辑器中新修一个文献,文献名必定要输,此外恣意操作都不要紧。 2 3 3、删除新文献内里的通盘实质,成为一个空文献, 4 、接着咱们就能够将网页上源码复制粘贴进来 试着点一下“编写”,倘若左下角显露“0 舛误,0 警惕”,那证据源码没题目,编译通过 了,凯旋天生了ex4 可实践文献 4 5、又有很要紧的一点,即是要把源码文献留存到精确的目次中 5 留存后,再点一下编写。 到此,源码留存达成。 当然,咱们也又有另的手段: 能够翻开一个原已存正在的mq4 文献,然后另存为你须要的文献名,再删除文献中的通盘 实质成为空文献,把网页上的源贴到文献中留存即可 也能够正在记事本中新修一个文献,把网页上的源码贴进记事本,然后取个文献名留存到 上面提到的目次,只是文献后缀务必输入mq4 ,留存类型挑选“是以文献” 四、mt4 法式移用自界说目标 这格外大略 6 MT4 编程初学2 :目标源码中的常用符号证据 一、解释符:单行解释“// ”、众行解释“/* */ ” 法式不实践解释,解释实质仅供阅读或保存不必的语句 正在MQ 讲话编辑器中,解释实质以灰色显示 二、分号“;” 显示一个语句停止 三、逗号“,” 显示一个语句内部间隔,一直止语句。 四、等于号“= ” 赋值语句,把等号后面的值赋给等号前的变量中 五、加号“+ ” 整数或小数,则显示值相加;字符串,则显示前后相接。 六、加加“++ ” 显示把符号前的变量值加 1,比方:“i++; ” 这现实上即是:“i=i+1; ”的简写,显示 i 的值加1 七、加等于“+= ” 7 显示把符号后的值加到符号前的变量中。比方“i+=2; ”,现实上即是“i=i+2; ”的简写, 显示i 的值加2 八、双等号“== ” 等于号。用于逻辑推断,双等号前后值相称,则返回逻辑值“真true ”;双等号前后值不 相称,则返回逻辑值“假false ” 九、叹号等号“!=” 不等于号。用于逻辑推断,不等号前后值不相称,则返回逻辑值“真true ”;不等号前后 值相称,则返回逻辑值“假false ” 十、“ ” 逻辑符“而且” 十一、“” 逻辑符“或者” 十二、大括号“{}” 显示函数体。 {}内部为函数体语句。 MT4 编程初学3 :自界说变量 一、自界说变量正在利用前,务必先创修(界说) ,设定变量的类型和名称。 创修时可同时赋值,也能够不赋值。名称能够利用中文字符。 例: int mark ; 创修一个整型变量,变量名为“mark ”。 bool 是否报警=true ; 创修一个逻辑型变量,变量名为“是否报警”,同时,赋初值“true ” 二、类型和类型界说词 自界说变量的根基类型有: 1、整形(int) :即是整数,席卷负整数 2 、双精度小数(double) :能够大略地体会为带小数位的数 3、字符串型(string) 。 4 、逻辑型(bool) :其值不同为“true 、false ”,即“线 线 假)。 类型界说词仅正在创修变量时利用,后面利用变量时,就不行再加类型界说词了 三、附加变量 8 附加变量即是正在法式进入利用后,变量值承诺用户自正在更改的变量,日常用作法式参数。 日常目标,比方MACD(12,26,9)参数输入即是通过附加变量实行,(12,26,9)不同为三个附 加变量的默认值。 界说附加变量只需正在变量界说语句前加“extern ” 例: extern int 周期=9 ; 创修一个整型附加变量,变量名为“周期”,默认值为9,承诺用户 正在法式外部修削参数值 MT4 编程初学4 :自界说函数 自界说函数与数学函数正在实质上是一律的 比方:数学函数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)为参数,因为自界说变量利用之前都务必先创修,是以要加上类型界说词int ft 为函数名,有了函数名,咱们就能够正在别处用ft(2,1) 的花样来移用此函数; 函数体局部有三句: 第一句,界说一个整形变量temp 第二句,计划temp 的值 第三句,函数停止,返回移用点,以temp 的值行为本函数返回值。 此函数也能够简写为:int ft(int x,int y) {return(3*x+2*y);} 二、函数类型与类型符 9 函数类型即是函数返回值(运算结果) 的类型,与自界说变量类型差不众 有整型(int)、双精度型(double)、字符串型(string)、逻辑型(bool)等, 又有一种函数是以函数运转为主意,运转停止后不须要返回值也没有返回值的,则函数 类型能够写成void(无值型) 三、函数中倘若界说了自界说变量,那么此变量仅正在本函数内部存正在,函数运转停止时, 自界说变量也就自愿刊出。 上例中,有x 、y 、temp 三个自界说变量,正在函数运转时创修,正在函数运转停止时自愿消 失,仅正在函数内部有用,与函数外部无闭。 四、函数的移用 函数移用格外大略,只消函数名精确、参数个数一律、类型一样就能精确移用 如咱们前面创修了ft(x,y)函数,则别处咱们能够用ft(4,5)等样式来移用ft(x,y)函数求值。 移用时,通报参数值给ft(x,y)函数(按按序把4 传给x ,把5 传给y) ,返回结果23 后无间 实践主法式。 MT4 编程初学5:自界说数组 一、数组是一系列同类型变量的集结,能够同时存储众个数值。 例: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] 的值为7 int ee[9]={0,1,2,3}; 创修数组ee,设天命组元素为9 个,但只给前4 个元素赋初值 三、数组利用时的赋值 10 数组的赋值务必指定明晰的赋值对象,除了新修数组时能够批量赋值外,数组元素务必 一个一个赋值 比方: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 ]的值为1 MT4 编程初学6:墟市数据取值 一、预订义数组(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 线烛炬的开盘价、最高价、最低价、收 盘价 11 Open[3]、High[3] 、Low[3] 、close[3],显示第4 根K 线烛炬的开盘价、最高价、最低价、收 盘价 Open、High 、Low 、close,显示第i+1 根K 线烛炬的开盘价、最高价、最低价、收盘价 以此类推。。。。。。 预防:这些是数组,用的是方括号。 二、预订义变量 买入价、卖出价是及时价值,MT4 用预订义变量 Ask 和 Bid 显示,数值类型为 double 双精度 又有极少预订义变量,如: Bars 显示图外中的烛炬数,类型为int 整数型 Digits 显示目前钱银对的小数位,类型为int 整数型,无日元币对为4 ,有日元币对为2 , 黄金石油等日常也为2 Point 显示目前钱银对的点值,类型为双精度 double 型,无日元币对为 0.0001,有日元 币对为0.01 。与Digits 正好相反。 三、目标函数 1、价值、成交量、时辰 它们都有三个参数:钱银对名、K 线周期、场所序号 开盘价:iOpen(symbol,timeframe,shift) 双精度double 型 收盘价:iClose(symbol,timeframe,shift) 双精度double 型 最高价:iHigh(symbol,timeframe,shift) 双精度double 型 最低价:iLow(symbol,timeframe,shift) 双精度double 型 成交量:iVolume(symbol,timeframe,shift) 双精度double 型 所属时辰:iTime(symbol,timeframe,shift) 日期时辰datetime 型 K 线 分钟图(PERIOD_M1)、5 分钟图(PERIOD_M5)、15 分钟图(PERIOD_M15)、 30 分钟图(PERIOD_M30)、 1 小时图(PERIOD_H1) 、4 小时图(PERIOD_H4) 、日线) 、周线图 (PERIOD_W1)、周线)、月线) 例: iOpen(USDJPY,PERIOD_H1,0) 显示美元兑日元1 小时图最新K 线烛炬的开盘价 iClose(EURUSD,PERIOD_H4,2) 显示欧元兑美元4 小时图第3 根K 线烛炬的收盘价 iClose(GBPUSD,PERIOD_H1,i) 显示英磅兑美元1 小时图第i+1 根K 线烛炬的收盘价 iHigh(NULL,0,0) 既不指定商品,也不指定 K 线周期,用正在谁即是谁,用正在 12 哪即是哪 2 、搬动均匀值。双精度double 型 iMA(symbol, timeframe, period, ma_shift, ma_method, applied_price, shift) 参数共7 个,不同为:商品名称、K 线周期、均线周期、均线偏移、均匀形式、价值种 类、场所 均线 天均匀线 天均线 均线偏移:均线场所团体操纵搬动的场所偏移量 均匀形式:大略搬动均匀(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,PERIOD_H1,20,0,MODE_SMA,PRICE_CLOSE,0) 显示:欧元1 小时图上,以收盘价计划的,20 小时大略搬动均匀线,最新K 线 :iMA(NULL,0,20,0,MODE_EMA,PRICE_CLOSE,2) 显示:正在目前商品、目前K 线周期图外上,以收盘价计划的,20(天)指数搬动均匀线 根K 线所对应场所的值 其他如MACD 目标、威廉目标、RSI 、SAR、布林线等目标取值都与搬动均匀线、正在数组中求元素的搬动均匀值。双精度double 型 iMAOnArray(数组名, 总数, 均匀周期, 均线偏移, 均匀形式, 场所) 这也与iMA 函数差不众,只是数据源变为数组 从数组中不只能够求得搬动均匀值,还能够求得RSI 等目标值 4 、求自界说目标的值 咱们每每自身编极少自界说目标,可用iCustom 函数来得到自界说函数的值 iCustom(商品名,K 线周期, 自界说目标名称, 自界说目标参数1,参数2,参数3,,, 自界说目标 线编号,场所) 倘若自界说目标唯有一根目标线,则自界说目标线 。 倘若自界说目标有众根目标线,则第一条自界说目标线 。。。 比方:iCustom(NULL,0,mymacd,12,26,9,2,0) (12,26,9)为自界说目标 mymacd 的三个 参数 13 显示:求目前图外中,自界说目标mymacd(12,26,9) 的第3 条件标线正在最新场所的值 扔砖引玉,这里只是有代外性地列了几个函数,注意请查阅《MT4 编程手册》 MT4 编程初学7:推断语句 一、if 语句 if 语句很常用,也对照大略。 轨则:倘若小括号中的前提制造,则实践大括号中的语句;倘若不制造,则跳过大括号。 比方: if(a==1) { b=c+1; } 咱们正在编写报警目标的功夫,就每每用到这一语句: 倘若“价值向上抵达指订价位”,则“报警” 倘若“MACD 上穿”,则“报警” 倘若“均线金叉”,则“报警”。等等 例: int mark=0; if( High[1]1.0000 High[0]=1.0000 mark!=1) { Alert(symbol(),价值向上触及1.0000); mark=1; } if( Low[1]1.0000 Low[0]=1.0000 mark!=2) { Alert(symbol(),价值向下触及1.0000); mark=2; } 这是一个价值上、下穿1.0000 时报警的推断语句: 上穿报警前提:当第二根K 线,而且最新K 线 下穿报警前提:当第二根K 线 这里,mark 是用作报警象征,mark 的初值是0, 当上穿报警后,mark 的值就改为1;当下穿报警后,mark 的值就改为2 ; 当mark=0 时,证据从未报过警,上、下穿都能报警; 当mark=1 时,证据依然上穿报过警了,不行再上穿报警了,但仍可下穿报警; 当mark=2 时,证据依然下穿报过警了,不行再下穿报警了,但仍可上穿报警。 二、if ... else 语句 轨则:倘若小括号中的前提制造,则实践 if 下大括号中的语句 1;倘若不制造,则实践 else 下大括号中的语句2 。 if(前提) { 语句1; } else { 语句2 ; } 三、预防事项 1、唯有语句后面才用到语句停止符“;” 前提、大、小括号后面都不必“;” 2 、语句用大括号括起来,但倘若唯有一行语句,则大括号能够省略 if(前提) 语句1; MT4 编程初学8:轮回 一幅K 线图有几千上万条K 线,每根K 线又各有开收盘价、最崎岖价等数值,况且还 有许众搬动均匀线、MACD 、RSI 等目标值。 面临海量数据,咱们务必用轮回来实行数据的取值和赋值。 一、while 轮回 while(前提) { 语句1 语句2 。。。 15 } 轨则:当小括号中的前提制造时,就实践大括号中的语句,实践完了再推断前提是否成 立,倘若前提制造就无间实践大括号中的语句。 只消前提制造,法式就一直地运转大括号中的语句(轮回体) ,直到小括号中的前提不再 制造时停止轮回。 它与 if 语句的区别是:if 语句是目前提为真时运转一次;而while 语句则是只消前提为 真,轮回体语句就一直地运转,直到前提为假时停止轮回。 例: extern int 速线; extern int 慢线; double buffer[]; int i=0; while(i1000) { buffer= iMA(NULL,0,速线,MODE_EMA,PRICE_CLOSE,i) -iMA(NULL,0,慢线,MODE_EMA,PRICE_CLOSE,i); i++; } 这里,轮回实践前提是i1000,轮回体中有两个语句,一句 是把两条均线的差值赋给数 组buffer ,另一句“i++; ”是每运转一次,i 的值正在原有本原上增进1。如许,跟着轮回的延续 运转,i 的值逐步增进,轮回 1000 次后,i 的值也就从0 变为 1000,此时“i1000 ”就不再 制造,轮回停止。如许,数组buffer[] 中也就有了1000 个值。 二、for 轮回 for 轮回与while 轮回正在道理上是一律的,只是书写款式上有所区别 把上面的例子改成for 语句: extern int 速线; extern int 慢线; double buffer[]; for(int i=0; i1000; i++) { buffer= iMA(NULL,0,速线,MODE_EMA,PRICE_CLOSE,i) -iMA(NULL,0,慢线,MODE_EMA,PRICE_CLOSE,i); 16 } 与前面比拟,咱们预防到: “int i=0; ”语句从“while(i1000) ”上方移到轮回前提“i1000 ”的前面; “i++; ”语句从轮回体中移到了轮回前提“i1000 ”的后面; 轮回实践按序与while 轮回一律: 第一步、先实践小括号中的第1 句:int i=0; (此语句用来界说初始变量,正在轮回中仅实践一次,可认为没有任何外达式的空操作符 “;”) 第二步、再推断小括号中的第2 句是否制造:i1000; 倘若不制造,则轮回停止;倘若制造,则轮回无间运转,实践第三步 第三步、按按序实践大括号中的语句 第四步、实践小括号中的第1 句:i++ (此语句即:每实践一次,i 的值增进1) 然后回到第二步无间实践轮回。 再添加一点:倘若轮回体中(大括号中)唯有一行语句,大括号能够省略 MT4 编程初学9 :MT4 自界说目标的机闭 MT4 自界说目标日常由四个局部组成: (1)文献头部 (2)参数、变量和数组的界说 (3)初始化函数init() (4)主函数start() 17 一、文献头部,也称为预措置法式 预措置法式以“# ”开首,行尾无语句停止符“;” 常用的预措置法式有: 1、#property indicator_chart_window 把目标显示正在主图。如:均线、SRA 等类目标用到此语句 2 、#property indicator_separate_window 把目标显示正在副图。如:MACD 、RSI 、威廉等类目标用到此语句 18 3、#property indicator_buffers 3 显示3 根目标线 、#property indic
2、成为VIP后,下载本文档将扣除1次下载权利。下载后,不撑持退款、换文档。如有疑难请联络咱们。
3、成为VIP后,您将具有八大权利,权利席卷:VIP文档下载权利、阅读免扰乱、文档款式转换、高级专利检索、专属身份符号、高级客服、众端互通、版权挂号。
4、VIP文档为协作方或网友上传,每下载1次, 网站将依据用户上传文档的质地评分、类型等,对文档奉献者予以高额补贴、流量扶植。倘若你也念奉献VIP文档。上传文档
电力拖动自愿职掌编制——运动职掌编制(第5版)阮毅、陈伯时课后习题谜底.pdf
[剖释陈诉]炭素行业专题陈诉之一:钢铁用炭素(I),新增电炉投放驱动石墨电极需求,本领提高、聚会度提拔滋长期进展.pdf
原创力文档创修于2008年,本站为文档C2C业务形式,即用户上传的文档直接分享给其他用户(可下载、阅读),本站只是中心办事平台,本站通盘文档下载所得的收益归上传人通盘。原创力文档是搜集办事平台方,若您的权柄被侵略,请发链接和联系诉求至 电线) ,上传者
| 广告位 |



