ImageVerifierCode 换一换
格式:DOC , 页数:5 ,大小:40KB ,
资源ID:7860221      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-7860221.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MACD Sample解读.doc)为本站会员(11xg27ws)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

MACD Sample解读.doc

1、一步一步解读 MT4的例子 EA关于什么是 EA请看此文章(连接到 http:/ MT4安装后,默认会给用户提供几个例子程序,这些程序对于新学习 EA开发过程中有很大的帮助,下面我们就来对 MACD Sample这个例子 EA来做个解读,来看看别人是如何开发一个 EA的。首先是注释,在 MQL语言中所有/的这一行就是注释行,系统本身不会去执行它,它只是用来解释当前代码的含义的,我们在代码中加入这些注释为了是让我们能够清楚的阅读代码的含义,在程序中加入详细的注释是一个很好的编程习惯,我们鼓励大家多加入注释。很多人觉得注释这东西因为没用在写代码中觉得很麻烦而忽略它,但是即使是自己编写的程序如果不加

2、注释过几天就会忘记意思,还要再一行一行地看这些代码,所以注释是非常重要的。下面这些就是定义变量,我们发现前面加上了 extern关键字,如果在定义变量的前面有这个词说明这个变量将会被作为 EA运行的参数,举个例子,比如我要编写一个 EA,在使用过程中我想改变它的止盈和止损值,如果我程序都是事先编好的止盈止损,那么以后要改动它必须要改代码,这样不仅麻烦也不灵活,如果我把这些信息作为 EA运行参数,那么在 EA运行中就可以随时调整它了。extern double TakeProfit = 50;extern double Lots = 0.1;extern double TrailingStop

3、= 30;extern double MACDOpenLevel=3;extern double MACDCloseLevel=2;extern double MATrendPeriod=26;上面定义了 6个变量并且都是当作参数,这里设定变量名称的时候尽量使用用户可以理解的词汇,在 EA的参数设置里这些变量名就是参数的名字。值得注意的是 EA里变量名称是可以用中文的。int start()start()函数是 EA运行的核心,MQL 语言规定了几个默认函数,其中 EA第一次运行时会调用 init()函数,在这个函数里我们可以放入一些需要初始化的信息,start()函数中放我们 EA的核心代码

4、,每次一个TICK(换句话说就是新报价)来到后,系统会自动调用 start()函数。deinit()函数是当 EA关闭的时候调用的,这里放一些我们程序停止后需要“善后”的代码。start()函数是必须要有的,其它两个函数如果不需要可以不用写。if(BarsSignalCurrent if(ticket0)if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES) Print(“BUY order opened : “,OrderOpenPrice();else Print(“Error opening BUY order : “,GetLastErr

5、or(); return(0); 上面这段就是多单开仓部分了,条件是这样:如果当前 MACD主线在 0轴以下,MACD“金叉”,MACD 的主线不在 0轴附近(这块是 EA的参数来指定 0轴附近多少点)并且还要当前的均线是上升的。这里最精彩的部分在于如何判断 MACD“金叉”,如何判断 MACD值不在 0轴附近和均线目前是上升的还是下降的。“金叉”的判断是 EA里用的比较多的,这里我们用了判断大小的方法就能很容易的计算它,首先得到MACD两根线当前的值和上一根 K线的 MACD值,如果上一根 K线的 MACD主线大于信号线并且当前的 MACD主线小于信号线那么就相当于这两根线做了一个“交叉”,

6、因此我们可以认为 MACD“金叉”了。从这里我们也能看出来用计算机的方法来解决我们人类所认知的问题靠的都是这种具体数值的计算,所以计算机还是比较“死板”的,如果两根线“扭”在了一起那么用计算机程序很难判断出来,这些就是目前计算机程序的缺点。 0轴附近这种判断方法这里利用了一点数学方面的知识,不过不用担心都是很简单的算法。把 MACD值做绝对值运算然后判断是否大于指定的值,因为 MACD会是负值做绝对值运算后直接判断是否大于设定的值就行了,这块相当于是简化了判断语句的条件。均线的上升和下降判断和“金叉”的算法差不多,得到当前均线值和前一根线的均线值,如果前一根均线值小于当前值那么就说明均线是上升

7、的。if(MacdCurrent0 elsePrint(“Error opening SELL order : “,GetLastError(); return(0);这段代码就是空单的进场条件,和上面的正相反。值得说明是这两个下单代码中会遇到下单失败的情况,因为当用 OrderSend()函数下单后会返回一个大于 0的整数订单号数值,利用这一点就可以很容易的知道下单是否成功了。下面的代码是平仓和移动止损部分,这段代码比较难懂,但是却是非常重要的部分,因为在编写 EA中这些操作会经常遇到,让我们来一点一点的拆解开来理解下它们的含义。for(cnt=0;cnt0 / close position

8、return(0); / exit多单的平仓部分代码,这里其实就是去掉均线条件的空单下单信号,平仓操作中一定要注意在平仓完成后必须终止这个遍历订单的循环,因为平仓后会打乱所有单子的顺序,造成误操作其他订单。我们在这里举个例子就能明白为什么要这么做:比如当前有三个单子没有平仓,按照顺序排列序号是0、1、2,如果第二个单子平仓后第三个单子序号就会提前,这样当下一轮循环执行到 OrderSelect()函数后会因为没有这个编号而出现错误。if(TrailingStop0) if(Bid-OrderOpenPrice()Point*TrailingStop)if(OrderStopLoss()Bid-

9、Point*TrailingStop)OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);return(0);这段代码就是多单的移动止损部分,当参数 TrailingStop大于 0的时候 EA就开启了移动止损功能(默认设定是 30,也就是说默认情况下是开启移动止损的),我们就用我们这个例子 EA的默认参数 30点来说明,当单子的盈利大于 30点并且单子的止损点和当前价位相差 30点以上时,修改订单的止损到当前价格以下 30点位置。我们在上面的程序里屡次发现作者

10、使用 Point变量来计算点位,这个变量是 MT4运行环境中自动设定的值,它在 MQL语言中叫做预定义变量(关于预定义变量可以参考这里:http:/ 告诉我们当前货币对的价格最小点值是多少,举个例子:欧元对美元的价格总是 X.XXXX这种形式,它的 Point值就是 0.0001,当我们想设定当价格大于 30点这种情况时,我们只要用 30乘以 Point就可以计算这个货币对的实际 30点值。不过 Point常量在很多平台中不能正确的来实现它本身的功能了,原因是很多平台已经改为小数点后 5位,这样 Point值变成了 0.00001,我们直接用他来乘以点位得到是却是实际点位的十分之一,这样会在 EA的运行中出现致命的逻辑错误。因此如果是 5位的平台,需要在那些点位的值上乘以 10来修正这个问题。关于Point的完美解决方法我们将在后续的文章中继续讨论。以上就是 MT4例子 EA的解读,这个程序虽然比较复杂但是它却是一个很好的例子,里面涉及到了我们在写 EA程序过程中常用到的一些功能,对于初学 EA程序的人来说帮助很大,我们也可以修改这个程序的开仓、平仓部分直接变成我们自己的逻辑。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报