iHigh函数里面有3个参数:Symbol()函数表明用当前图 表上的货币、1440表示天图、0表示取当天的最高价?mt4 32位系统版权解释:本文档由用户供给并上传,收益归属实质供给方,若实质保存侵权,请实行举报或认领
1、前方编程开辟实战系列-绘图系列1:若何画直线编程开辟实战系列的第一站,咱们先来进修一下若何正在MT4图外上实行根本的绘图操作。正在初步下手之前,起初讲一个很根本也很紧急的观念:正在MT4编造中,图外的对象是从右到左的,举例说:正在一个记载有方今图外每根K线位子的数组中,第一个数值吐露的是图外最右边、也便是方今的K线的数值!绘图最根本的操作是画直线。下面的两个例子将演示若何正在图外上画一条 直线。起初正在MetaEditor编辑器中创修一个客户目标文献,名字能够随意,我这 里就把它定名为Lesson1_DrawLine然后正在个中的start()函数中增添下面的代码:Object
2、Create (OBJ HLINE, 口, Bid);正在團外上画靈横线中掀开随意一张图外,把编译好的指 标Lesson1_DrawLine增添到图外上,咱们能够看到图外上依然画出了一条横线:如今来声明一下上面的代码上面的代码利用了 ObjectCreate这个函数。ObjectCreate是一个出格紧急 的函数,正在后面的绘图教程中会众次利用到这个函数。正在上面的例子中,ObjectCreate函数有5个参数,第1个” Hline”是对你要画的横线起一个名字, 这个名字是能够随意的;第 2个OBJ_HLINE1 MT4编造默认的一个变量,吐露 横线、诉编造你计算画一条横线,吐露正在主窗话柄行绘图的操作,这里且则错误这个参数作精细的解释,后面我会特意用一个专题来将绘图窗口的常识;第4个参数也是0,这个代外的是横坐标(X轴),第5个参 数是Bid,这个是MT4编造默认的一个变量,乐趣是方今的卖出价。这里重心说一下结尾两个参数:正在 MT4中,图外的横坐标(X轴)代外时 间,纵坐标(丫轴)代外代价,正在上面的例子中,ObjectCreate函数的结尾两个参数0和Bid就划分代外X轴坐标和丫轴坐标,乐趣是正在丫轴为方今卖出代价的 地方画一条横线(由于直线为无尽长,X坐标没故意义,以是这里就设成 0了) 了然了这点,再画条竖线、要把 X轴坐标设为你思要的数值即可, 比如:我思正在方今的K线位子上画条竖线,代码如下:CbjeatCreate (ffVLlne, OBJ_VLINEr 0, Time0 , Q):正在品坚线编造默认的一个数组,数组中每个数值对应方今图外上每根 K 线所处的时光。同样,由于直线是无尽的,丫轴坐标此时也失落了旨趣,咱们就把它设为0好了。正在本节的结尾,我增加解释一下目标文献的各个构成局部:当你创修了一 个目标文献后,会浮现编造依然主动天生了init()、deinit()和start()这3个函数Init函数是正在初始化的时刻移用的,也便是增添到图外的同时会实行一次,之后 就不会再执
5、行了; deinit函数是正在紧闭图外或删除目标的同时实行一次,重要作 用是把该目标建造出来的东西删除掉;start函数是主函数,每次代价变化的时刻,都邑实行一次这个函数。绘图系列2这是MT4编程开辟实战系列的第2站,正在上一节中,咱们进修了若何使用ObjectCreate函数正在图外上画直线。正在这一节中,咱们将无间用ObjectCreate函数正在图外上画出更众的图形。有时刻咱们思对某些时光段的图形用卵形标识出来,下面咱们一齐来实行云云的一个目标。使用ObjectCreate函数能够简单的正在图外上画出一个卵形,MQL言语中吐露椭圆的常量是 OBJ_ELLIPSE画一个椭圆需求两个坐标点,以是,画
7、个是图形的名字,能够随意写(忘掉了就回来看看第一节);第2个是MT4编造默认的一个 常量,乐趣是告诉MT4咱们要画一个椭圆;第3个0是吐露咱们要正在主窗口上 实行绘图;第4个是坐标点1的x坐标,浅易起睹,我这里写了 Time0,代外 开始是方今时光(还记得MT4图外的对象是从右到左的吗);第5个参数是坐标 点1的y坐标,为浅易起睹,这里我写了 Bid,吐露方今的卖出价;第6个是坐 标点2的x坐标,Time10吐露正在方今图外上从方今时光往左第 10根K线的y坐标,Ask吐露方今的买入价。椭圆依然画出来了,颜色如同不敷精明,那咱们应当若何修正已画出来的 图形的颜色呢用Obj
9、名的规定都是OBJ_XX)云云的,只须把这个常量更改为咱们思要修正的属性 就行了;第3个参数Red是MT4默认的编造常量,吐露赤色,正在 MQL言语中,百般颜色都能够直接用它们的英文名称来吐露,出格简单椭圆的颜色依然修正好了,不过巨细如同还不得志,咱们再把它改大一点, 正在前面代码的底子上再增添一句:OBJ ELLIPSE, 0, Tiwe0 f Bld, kslc):ObjectSt (r,eLlipaer,, OBJPRoT_COLORt Red);CtojeetSet (rfellipsel,r, OBJPROP SCALE, 1);编译运转后从头增添到图外上,咱们浮现椭圆变大了:OBJ_S
11、图外上,能够看到咱们依然正在图外上画了一个矩形:声明一下上面的代码:咱们用 OBJ_RECTANGL庖代了前面的OBJ_ELLIPSE乐趣 是告诉MT4咱们将要正在图外上画一个矩形;Time0和Time10划分是坐标点1 的x轴坐标和坐标点2的x轴坐标,这个咱们正在前面都讲过了,枢纽是 iHigh和 iLow这两个函数,iHigh和iLow都是MT4自带的编造函数,iHigh的乐趣是获取 指定周期的最高代价,iHigh函数内中有3个参数:Symbol()函数说明用方今图 外上的货泉、1440吐露天图、0吐露取当天的最高价。这里做个增加,正在 MT4 编程中,吐露时光周期有两种方式:一是直接用数字吐露,
12、MT4中的时光单元是分钟,以是你要指定哪个时光周期,就直接填众少分钟行了,正在上面的例子 中,由于1天是1440分钟,以是直接填1440就行了,倘使要取1小时图的最 高值就填60,30分钟图就填30,如斯类推;二是用MT4默认的编造变量,像 上面的语句,咱们也能够云云写:CbjfctCimeMJ EICTIE, g liaelO r 山诽叭1(打 PER:OD_tlf 0) , ThellO iHiQ開共bZ(Pni_Dl* Q);编译出来的目标是相通的,PERIOD_D是MT4默认的编造变量,吐露周期为天,倘使1小时图便是PERIOD_H1 30分钟图便是PERIOD_M30如斯类推。同理,
13、iLow便是取指定周期的最低价;结尾一个参数是0,这里吐露取最天图最右边的K线的最高价和最低价,即当天的最高价和最低价,倘使改为1,上面的例子便是取昨天的最高价和最低价了(还记得MT4图外的对象是由右往左吧)。同样,咱们能够用ObjectSet函数把上面画出来的矩形变为赤色:(fcjtcDCrMteectmgk,41造5洒 1山 PIEICtJt RT1MIiBighSynhoI, PERI0H1, D);Ch胆皿曲皿网叭 O3JP3.oF COLOf. 啣如今,咱们把目标Lesson2_DrawShape_2A图外上删除掉,浮现依然画出来的矩 形并没有从图外上删除,为什么呢正在MT4中,
14、依然画出来的图形默认是不会随目标一齐被删除的,这时咱们就要用到deinit和ObjectDelete函数了。前面说过,deinit函数是正在目标被删除的时刻移用的,重要用来做少少整理性的事务, ObjectDelete函数是删除一个指定的图形对象,所以,咱们能够正在deinit函数中出席如下代码:ObjectDelete函数中的参数吐露告诉 MT4咱们要删除哪个图形。绘图系列3:若何创修符号及文字这是MT4编程开辟实战系列的第3站。正在前面两节中,咱们依然学会了如 何使用ObjectCreate函数来画直线、椭圆和矩形。但这些都是很根本的图形,我 们时时能看到少少MT4目标正在图外上画出了百般各样的符
15、号,出格趣味!那么 这些符号是若何画出来的呢谜底照样ObjectCreate函数!由此看睹ObjectCreate函数正在MT4绘图编程中是何等的紧急了吧,就如造物主通常成立出百般优美的 图形!下面,咱们一齐来进修一下,若何用 ObjectCreate函数成立出更众的图形。起初创修一个目标文献,定名为 Lesson3_DrawSymbol_1然后正在start函 数中输入如下代码:OfojectCreete ( ftrroirp OBJ ARROW, 0, Time0 Low0 ) ;编译后增添到图外,会浮现咱们已正在图外上画了一个向上的箭头:MT4咱们要画一个箭头,TimeO是x轴坐标,Low0
16、是吐露方今K线的最低价。 这里对Low和iLow()做一个声明。Low是一个数组,内中积储了方今周期图外 上每根K线的最低价,防备了:仅积储了方今周期的!倘使思获取其它周期的 图外上的某根K线的最低价,就要用到iLow ()函数了。同理,High和iHigh() 也是云云区别的,云云声明,应当很显现了吧倘使我思让箭头指向下方,该若何做呢如今,就初步了本节最出色的局部了!正在适才的代码后面增添如下一句:Ctiject-Crate t,rarrow* OBJ_ARROW TmeC , Low0); OBJPROFARROVCODEJ 242;编译后,会浮现图外上的箭头依然指向下方了。增加一下,学到这
17、里咱们能够浮现一个法则:创修一个图形,用 ObjectCreate,修正一个图形,用 ObjectSet。就 这么浅易!正在上面的例子中,最枢纽的是 ObjectSet的第三个参数:242。咱们把 242改成67,然后再编译,看看图体现正在的图形是什么是一个大拇指向上的手势。 改成68,再编译看看,是一个大拇指向下的手势。看到这里,信任民众都明确 若何回事了吧,没错!只须更改这个参数,就能画出百般咱们思要的符号了。我 曾正在前方编程文档,民众能够下载来查看一下,内中有个 图形符号代码外,只须将第3个参数改成代码外内中的数值,就能够画出相应的 符号了。下面咱们来做个趣味的试验:把
19、T勺坐标是时光和代价,而 OBJ_LABEL勺坐 标是以方今可视区域的相对位子动作坐标。当你搬动图外的时刻,会浮现用 OBJ_TEXT创修的文字的位子会跟着图外的搬动而蜕变,但用OBJ_LABE创修的文字则永远褂讪,除非你更改了屏幕离别率它才会蜕变,当你思创修少少永远显 示正在某个固定位子的文字时,用 OBJ_LABE;倘使思正在某个固定的代价或时光位 置显示文字,用 OBJ_TEX。因为元气心灵所限,我就不再演示 OBJ_LABE的利用方式了,民众能够参照帮 帮文档来利用,记住坐标的本质差别就行了。绘图系列4:若何画弧线节咱们划分进修了直线、文字及符号的创修方式,这回咱们要进修一下若何正在图外上创修曲 线中依然自带了良众弧线类型的目标,如百般差别的均线、布林带 等等,但时时有些友人还需求创修少少本人独有的弧线,编造自带的目标依然无法知足需求,这时咱们就需求通过 MT4编程来开辟本人的弧线目标了。下面咱们一齐通过实例来进修若何画弧线。假设我如今思把图外上每根 K线的中心局部(即最高价与最低价之和的均值)用一条弧线邻接起来。起初创 修一个新的目标文献,定名为 Lesso n4_DrawCurve_1正在目标文献的初步局部,增添如下语句:赤色框内局部为咱们增添的语句。然后正在init函数内增添如下语句:正在start函数内增添如下语
21、句:编译后,将Lesson4_DrawCurve_1目标增添到图外上,会看到咱们已创修了一条 赤色的弧线,将图外上每根 K线的中心局部邻接了起来:#property in dicator_buffer 1的乐趣是本目标将利用一个目标缓存(最众只可有8个目标,编码是从0至7);#property indicator_color Red的乐趣是创修的目标将用赤色显示。#property的乐趣是给目标文献增添一个编译参数(注:因为这些东西涉及到法式开辟中较量专业的局部了,本教程的焦点是“适用为主”,以是我将不会对少少过分专业的部 分实行长远切磋,只需明确应当云云做就行了。有兴味的友人能够私自聊)。假
22、如你思创修两条弧线,则能够写成:#property indicator_buffer 2 ;倘若思调换弧线的颜色,则能够把 Red数值改为其它颜色,如 Yellow、Green等。正在增添了两个编译参数后,咱们还创修了一个double类型的数组 ExtMapBuffer,这个数组的功用是积储每根K线中心局部的数值,绘图的时刻就遵照这个数组内中的数值来画。正在in it()函数中,咱们用到了 Set In dexStyle和SetI ndexBuffer这两个MT4中 的编造函数。Set In dexStyle的乐趣是设立咱们要画的图形的类型,Set In dexStyle 中的第一个参数0,吐露我
23、们要对第一个目标的样式实行设立,正在 MT4中,最 众只可设立8个目标,编码是从0初步至7终止;第二个参数 DRAW_LINE是 MT4默认的编造变量,乐趣是告诉 MT4咱们将要正在图外上画线。 倘使咱们如今 思正在每根 K线的中心局部画个箭头,该若何做呢用DRAW_ARROW调换DRAW_LIN蹴行了,调换后的成果如下:适才咱们画出来的弧线是一条持续的弧线,倘使我思画一条虚线该若何做呢给Setl ndexStyle弥补一个参数就行了,如今咱们把Set In dexStyle函数改写为如下这 样:编译后从头增添到图外上,会浮现如今的弧线依然是一条虚线了。画同理,倘使用STYLE_DO调换STYLE_
24、DASH就能够画出一条由点构成的弧线了, 更众的类型民众能够通过查找编程文档得到。如今,倘若咱们感到弧线太细了,思加 粗该若何做呢这时就 需求给 Set In dexStyle函数弥补第4个参数了:SetlndexStyle的第4个参数4,乐趣是把弧线)。结尾,倘若思把适才画的线更改一下颜色,能够用到SetlndexStyle的第5个参数, 像下面这句:0结尾一个参数Blue的乐趣是把弧线的颜色改为蓝色。若何创修警报正在前面几节,咱们进修了 MT4编程开辟中绘图方面的少少底子常识,这回咱们 来进修一下若何正在MT4编程中运用报警效用。民众都明确,外汇商场是2
25、4小时不间断的,而人的元气心灵是有限的,那么, 正在歇憩的时刻倘使价位抵达了本人的主意价位,这时刻该若何办呢谜底是使用 MT4的警报效用。正在MT4平台上若何设立警报这里就不详述了,完全可参考帮 帮文档,这里说一下若何通过编程来实行。起初,咱们来实行一个最浅易的目标:当代价抵达指订价位时,实行报警。 新创修一个目标文献,定名为:Lesso n5_Alert_1=正在法式头部出席如下一句:个中赤色局部为咱们增添的语句。Extern的乐趣是Price为一个外部变量,能够 正在目标运转时代动态实行修正。然后正在start函数中出席如下语句:编译后运转,然后把Lesson5_Alert_1目标增添到图外上,并设立好
26、 Price变量,当方今的卖出价等于设定的Price代价时,则会弹出如下的报警窗口:画Alert函数的乐趣是当知足if内设定的要求时,弹出一个警报窗口,把Alert函数 内设定的实质显示出来,同时会发出警报声。倘使我把Lesson5_Alert_1目标同时增添到良众个货泉对上,那么当目标弹出报 警窗口时,我若何才干明确是哪个货泉对正在报警呢这时就务必为报警实质添上货 币对的名称了。如今咱们把适才的语句改写如下:从头编译并增添到图外上,当方今卖出代价等于Price指定的代价时,将会弹出如下的报警窗口:能够看到报警窗口内依然显示出是哪个货泉对正在报警了, 这都是Symbol()函数的 功烈,Symbol()函数的功用是得到方今目标住址图外的货泉对的名称。与Alert函数近似的尚有MessageBox函数,有兴味的友人能够本人查看帮理文档。如今思象一下,假宛若样是 EURUSD$币对,同时掀开了 5分钟图、30分钟图、1小时图,并正在每张图上都增添了 Lesson5_Alert_1目标,那么,目标报警年光有 名称还亏空够了,这时可把语句改写如下:此时,当卖出价抵达指订价位后,弹出的报警窗口如下图所示:Period函数的功用是获取目标住址图外的时光周期
1. 本站一齐资源如无特地解释,都需求当地电脑安设OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文献请下载最新的WinRAR软件解压。
2. 本站的文档不包罗任何第三方供给的附件图纸等,倘使需求附件,请相干上传者。文献的一齐权力归上传用户一齐。
3. 本站RAR压缩包中若带图纸,网页实质内中会有图纸预览,若没有图纸预览就没有图纸。
5. 人人文库网仅供给新闻存储空间,仅对用户上传实质的体现体例做爱惜管理,对用户上传分享的文档实质自己不做任何修正或编辑,并不行对任何下载实质刻意。
7. 本站不保障下载资源的切实性、安然性和完备性, 同时也不继承用户因利用这些下载资源对本人和他人形成任何景象的危险或失掉。
2024年俄罗斯妨碍电弧断途器(AFCI)商场机缘及渠道调研呈报 Sample
2024年上等培养经济类自考-27882当代企业临盆约束积年考核高频考点试题附带谜底
相关资讯: