关闭

关闭

封号提示

内容

首页 MQL4中iCustom的用法.pdf

MQL4中iCustom的用法.pdf

MQL4中iCustom的用法.pdf

上传者: 平Heng 2012-12-16 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《MQL4中iCustom的用法pdf》,可适用于经济金融领域,主题内容包含MQL中iCustom函数的用法自定义指标保存的位置MQL自定义指标保存在expertsindicators文件夹下面源代码文件后缀名为mq编译后的符等。

MQL中iCustom函数的用法自定义指标保存的位置MQL自定义指标保存在expertsindicators文件夹下面源代码文件后缀名为mq编译后的文件后缀名为ex。以自定义指标Stochasticmq为例我们打开文件夹可以看到如下图的显示:在主图中调入自定义指标在MT终端导航器中打开CustomIndicators(自定义指标)找到Stochastic双击后会弹出一个输入指标参数的对话框照下图输入这些数字后点击确定。终端显示如下:上图区域为数据窗口区域为副图指标窗口区域为主图窗口。有些指标如移动平均线(MA)会显示在主图窗口中。当我们用鼠标在区域或者区域移动的时候区域数据窗口的数值会随之变动如下图所示:数据窗口上半部分显示鼠标所指蜡烛的市场数据包括日期、时间、开盘价、最高价、最低价、收盘价、成交量。下半部分显示鼠标所指蜡烛的Stochastic输出参数这些参数连起来显示在区域中形成了两条曲线如下图所示:将红绿线和输出参数对照我们可以确定红线对应的是Signal绿线对应的是Sto(,,)。总结上面的过程我们得出以下结论:Stochastic有三个输入参数分别为KPeriod、DPeriod和Slowing有两个输出参数分别为Sto(,,)和Signal。在程序中调用自定义指标我们创建一个EA程序通过iCustom获取自定义指标红绿线的数值并显示出来。代码如下:|testmq||laoyee||QQ:|#propertycopyright"laoyee"#propertylink"QQ:"自定义指标输入参数externintKPeriod=externintDPeriod=externintSlowing=|expertinitializationfunction|intinit(){return()}|expertdeinitializationfunction|intdeinit(){return()}|expertstartfunction|intstart(){doublemyMain=iCustom(Symbol(),当前货币对如果写成"USDJPY"就是指定美日货币对,当前图表周期如果写成PERIODM就是指定分钟图表"Stochastic",自定义指标名不要后缀KPeriod,自定义指标第一个参数DPeriod,自定义指标第二个参数Slowing,自定义指标第三个参数,读取自定义指标输出主参数)指定当前蜡烛如果为就是指定前一个蜡烛以此类推doublemySignal=iCustom(Symbol(),当前货币对如果写成"USDJPY"就是指定美日货币对,当前图表周期如果写成PERIODM就是指定分钟图表"Stochastic",自定义指标名不要后缀KPeriod,自定义指标第一个参数DPeriod,自定义指标第二个参数Slowing,自定义指标第三个参数,读取自定义指标输出信号参数)指定当前蜡烛如果为就是指定前一个蜡烛以此类推显示指标输出参数Print("Stochastic输出主参数:"myMain"Stochastic输出信号参数:"mySignal)return()}该程序运行后如下图所示。上图三个区域箭头所指数据均能对应。区域显示了位小数细心的读者会发现三行输出数据不一样这是因为市场价格变化导致的。我们来总结一下自定义指标调用规则::定义一个变量用于保存自定义函数输出值:自定义指标函数:指定货币对Symbol()表示当前图表货币对也可以用”USDJPY”来指定不是当前图表的货币对:时间周期表示当前图表时间周期也可以用PERIODM来指定不是当前图表的时间周期:自定义指标名称注意不能有后缀:自定义指标输入参数注意你使用的指标如果有n个输入参数必须按顺序逐一输入并用逗号“,”间隔:自定义指标输出参数序号如果自定义指标输出参数有n个那么按顺序从到n。例如有输出参数第一个参数顺序为第二个参数为第三个参数为第四个参数为:蜡烛序号。当前蜡烛序号为前一个蜡烛序号为前n个蜡烛序号为n。自定义指标应用范例本章节以判断红绿线交叉发出交叉信号为例来说明自定义指标的应用。我们先来观察下图:图中红线为“快线”绿线为“慢线”红线完成了从下向上穿越绿线后我们认为市场完成了上穿越反之就是下穿越。以下代码使用了一个判断穿越的自定义函数当穿越完成后自定义函数会返回一个穿越信号。|testmq||laoyee||QQ:|#propertycopyright"laoyee"#propertylink"QQ:"自定义指标输入参数externintKPeriod=externintDPeriod=externintSlowing=|expertinitializationfunction|intinit(){return()}|expertdeinitializationfunction|intdeinit(){return()}|expertstartfunction|intstart(){doublemyMain=iCustom(Symbol(),,"Stochastic",KPeriod,DPeriod,Slowing,,)获取当前蜡烛慢线参数doublemySignal=iCustom(Symbol(),,"Stochastic",KPeriod,DPeriod,Slowing,,)获取当前蜡烛快线参数doublemyMain=iCustom(Symbol(),,"Stochastic",KPeriod,DPeriod,Slowing,,)获取前一个蜡烛慢线参数doublemySignal=iCustom(Symbol(),,"Stochastic",KPeriod,DPeriod,Slowing,,)获取前一个蜡烛快线参数显示交叉信号stringmyCrossSingal=iCrossSignal(mySignal,myMain,mySignal,myMain)计算交叉信号Print("Stochastic交叉信号:"myCrossSingal)return()}*函数:快慢指标线交叉信号参数说明:myFast当前蜡烛快线值mySlow当前蜡烛慢线值myFast前个蜡烛快线值mySlow前个蜡烛慢线值返回值:UpCross上穿、DownCross下穿、NA无穿越*stringiCrossSignal(doublemyFast,doublemySlow,doublemyFast,doublemySlow){stringmyCrossSignal="NA"if(myFast>mySlowmyFast<=mySlow)myCrossSignal="UpCross"上穿越if(myFast<mySlowmyFast>=mySlow)myCrossSignal="DownCross"下穿越return(myCrossSignal)}如上图所示我们可以在终端窗口中观察信号“NA”表示没有穿越“UpCross”表示出现了上穿越“DownCross”表示出现了下穿越。老易作品年月日MSN:yiwencehotmailcom

职业精品

精彩专题

上传我的资料

热门资料

资料评价:

/ 8
所需积分:2 立即下载

意见
反馈

返回
顶部

Q