MQL5学习手记:EA基本交易功能-自定义函数集合

作者&投稿:用虽 (若有异议请与网页底部的电邮联系)
mql5 ea是绑定的什么硬件信息~

因为MQL5的交易方式改成 两个结构参数的样子,很多童鞋都会晕好久,对没入门的童鞋来说就更难理解了。在这里,我们制作了类似MQL4的交易功能,用自定义函数实现的,只需要拷贝到你的EA里,然后按例子的样子使用就行了

要编写程序(“EA 交易”、“指标”或“脚本”),您可以启动 MetaTrader 5 客户端,从 Tools(工具)菜单选择MetaQuotes Language Editor(MetaQuotes 语言编辑器),或按 F4 键。
在 MetaEditor 5 窗口中,从 File(文件)菜单选择 New(新建),或按 Ctrl+N。
在 MQL5 Wizard(MQL5 向导)窗口中选择您想要创建的程序类型:
接下来您可以指定程序名称、作者信息,以及在启动程序后向用户要求的参数。
随后,系统将创建程序模板(“EA 交易”、“指标”或“脚本”),您可以对其进行编辑或填入代码:
程序就绪后,必须对其进行编译。要编译程序,从 File(文件)菜单选择 Compile(编译),或按 F7 键:
如果程序代码没有错误,系统将创建扩展名为 .ex5 的文件。之后,您可以将此新的“EA 交易”、“指标”或“脚本”附加至 MetaTrader 5 客户端的图表进行执行。
MQL5 程序是一个运算符序列。每个运算符以分号 ";" 结束。为您方便起见,您可以为代码添加注释,注释位于符号 "/*" 和 "*/" 之中,或在代码行末尾的 "//" 后。MQL5 是“面向事件”的编程语言。这表示当特定事件(程序启动或终止、新的报价到来等)发生时,客户端启动用户编写的相应函数(子程序),以执行指定的操作。客户端具有以下预定义事件:
Start 事件在“脚本”运行时发生(仅用于“脚本”)。它将会引起 OnStart 函数的执行。MQL4 对应物 -“脚本”中的 start 函数。
Init 事件在“EA 交易”或“指标”启动时发生。它将会引起 OnInit 函数的执行。MQL4 等价物 - init 函数。
Deinit 事件在“EA 交易”或“指标”终止时发生(例如,从图表分离后、关闭客户端等)。它将会引起OnDeinit 函数的执行。MQL4 等价物 - deinit 函数。
NewTick 事件在当前金融工具有新的报价到来时发生(仅用于“EA 交易”)。它将会引起 OnTick 函数的执行。MQL4 对应物 -“EA 交易”中的 start 函数。
Calculate 事件在指标启动(在 OnInit 函数执行后)以及当前金融工具有新报价到来时发生(仅用于“指标”)。它将会引起 OnCalculate 函数的执行。MQL4 对应物 -“指标”中的 start 函数。
Trade 事件在订单执行、修改或删除,以及在开仓、持仓修改或平仓时发生(仅用于“EA 交易”)。它将会引起 OnTrade 函数的执行。MQL4 中没有该事件和函数的对应物。
BookEvent 事件在“市场深度”改变时发生(仅用于“EA 交易”)。它将会引起 OnBookEvent 函数的执行。MQL4 中没有该事件和函数以及“市场深度”的对应物。
ChartEvent 事件在用户使用图表时发生:在图表窗口处于焦点状态时点击鼠标和按下按键。该事件也会在创建、移动或删除图形对象等时发生(用于“EA 交易”和“指标”)。它将会引起 OnChartEvent 函数的执行。MQL4 中没有该事件和函数的对应物。
Timer 事件在计时器触发时定期发生,如果计时器已使用 EventSetTimer 函数激活的话。它将会引起OnTimer 函数的执行。MQL4 中没有该事件和函数以及计时器的对应物。
使用变量前,必须指定每个变量的数据类型。相比 MQL4,MQL 5 支持更多的数据类型:
bool 用于存储逻辑值(true 或 false)。该数据类型占用 1 字节内存。
char 用于存储从 -128 到 127 的整数值。该数据类型占用 1 字节内存。
uchar 用于存储从 0 到 255 的无符号整数值。该数据类型占用 1 字节内存。
short 用于存储从 -32,768 到 32,767 的整数值。该数据类型占用 2 字节内存。
ushort 用于存储从 0 到 65,535 的无符号整数值。该数据类型占用 2 字节内存。
int 用于存储从 -2,147,483,648 到 2,147,483,647 的整数值。该数据类型占用 4 字节内存。
uint 用于存储从 0 到 4,294,967,295 的无符号整数值。该数据类型占用 4 字节内存。
long 用于存储从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数值。该数据类型占用 8 字节内存。
ulong 用于存储从 0 到 18,446,744,073,709,551,615 的无符号整数值。该数据类型占用 8 字节内存。
float 用于存储浮点值。该数据类型占用 4 字节内存。
double 用于存储浮点值,通常为价格数据。该数据类型占用 8 字节内存。
datetime 用于存储日期和时间值,它是从 01.01.1970 00:00:00 开始流逝的秒数。该数据类型占用 8 字节内存。
color 用于存储颜色信息,它包含三种颜色分量的特性 - 红色、绿色和蓝色。该数据类型占用 4 字节内存。
enum 代表枚举。它允许指定某种限制类型的数据集。该数据类型占用 4 字节内存。
string 用于存储文本字符串。它的内部表示为 8 字节结构,包括含字符串的缓冲区大小以及指向该缓冲区的指针。

选择合适的数据类型对于获得最佳性能及合理的内存使用十分必要。在 MQL5 中有个称之为结构的新概念。结构将逻辑相关的数据结合在一起。

因为MQL5的交易方式改成 两个结构参数的样子,很多童鞋都会晕好久,对没入门的童鞋来说就更难理解了。在这里,我们制作了类似MQL4的交易功能,用自定义函数实现的,只需要拷贝到你的EA里,然后按例子的样子使用就行了。前提:以下自定义函数都需要用到几个公共的结构,所以先要把下面的公共定义部分拷贝在程序的头部。然后在拷贝后面的自定义指标。程序头部的交易结构定义:自定义函数一:市价单入场函数调用举例:按市场价卖出当前货币0.1手,无止损止盈。 PositionOpen(ORDER_TYPE_SELL,0.1,0,0,10,MagicHere,"Test");自定义函数二:按市价平仓当前货币持仓单调用举例:按市价单平仓 滑点可接受5点内 PositionClose(Symbol(),5);自定义函数三:修改当前货币持仓单的止盈止损调用举例:设置新的止盈止损 PositionModify(Symbol(),NewStop,NewTarget);自定义指标四:当前货币持仓单的手数总和自定义指标五:发出当前货币的挂单自定义指标六:修改当前指定Ticket的挂单的止盈止损数值自定义指标七:删除当前指定Ticket的挂单自定义指标八:获得当前最新入场的挂单的Ticket号码

double CaculateLotsLimit(){ double MaxMargin=已用保证金可用保证金比例*(AccountMargin()+AccountFreeMargin()); double MaxLots=NormalizeDouble(MaxMargin/(MarketInfo(Symbol(),MODE_LOTSIZE)/AccountLeverage()),2); return(MaxLots);}

学习一下,我想知道怎么使用自定义指标中的箭头作为进仓和平仓的条件!!!

:dabin8:dabin8:dabin11:dabin10不断地学习不断地进步

http://bbs.520fx.com/?fromuser=ybzhang110


包河区18916614641: ea交易怎么设置 - 什么是EA交易
敛国舒尔: 1. ea交易怎么设置到软件后,首先解压,然后双击“Original”以打开软件界面.02工具解说首先,打开MT4后,可以在左边的导航栏当中找到我们的“EA交易”栏中的...

包河区18916614641: 有了EA,我们到底怎么看待基本面分析研究的用处指导交易 -
敛国舒尔: 除非EA是以基本面、心理面和行为面把他通过一种公式或者关系组织起来成的EA交易策略需要我们每天进行人工分析,数据输入代入后,符合条件了EA才自动执行,但这种交易的EA好像是适合遇到那种基本面、心理和技术面三种难得一致的大行情才可以得到执行,对于日内或者短线交易而言,分析基本面、心理行为必要性不是天天都需要这样做,是吗

包河区18916614641: 没有任何交易经验的人 学习ea 现实吗 -
敛国舒尔: 单纯的学习EA编写不是问题,MT4的EA基本是有C语言基础上发展出来的,没有编程经验也能短期学会,关键是若没有交易经验,对条件的组合,筛选以及实现会有个接触熟悉的过程,这个需要慢慢积累,多看些EA源码,就可以慢慢弥补这个缺失,其实重点是你想不想学,真要喜欢,对自己狠一把,一切都不是问题.

包河区18916614641: 外汇ea智能交易系统好吗? -
敛国舒尔: 我个人认为一个好的外汇智能交易软件首要的是稳定,其次是风险必须可控而且要小,再有就是盈利能力了.不知道我这么说你是否有一个自己的评判标准,如果没有方向可以去了解一下云易汇智能交易系统,我用了快一年了,实盘非常稳定,风险很小,盈利也还可以,我就是追求长期稳定盈利的,如果想短期暴富的这个不是太合适

包河区18916614641: 外汇智能交易系统ea适合初级外汇投资者吗? -
敛国舒尔: 其实初做外汇投资的人都会有这样的疑问和困惑,用外汇智能交易系统EA是大部分投资者最终的选择,本人做了不到5年的外汇,初期确实不相信智能交易系统能比人做的理想,但是实时证明了,这个东西是手工比不了的,而且外汇智能交易系统可以还咱们一个健康的身体,两全其美的事为什么不选择呢,前提是你选择的智能系统可以为你创造稳定盈利,否则还是解决不了根本的问题.我个人觉得用外汇智能交易系统对于是不是初级投资者来说这个并不是一个问题,也没有一个准确的评判,我只能是用经验告诉你这个是最终的选择,关于智能系统你可以了解一下云易汇智能交易系统,这个还不错,我也一直在用,相对于手工做单来说这个轻松多了,而且盈利也比较可观.

包河区18916614641: 如何学好 mql4语言+编程 -
敛国舒尔: 百度文库的课程没看过,我也在自学,边上网找资料边看书边自己编写EA.你说得数据类型+表达式+运算其实就是最主要的了,不过就是细分下来你还没有熟悉,主要是对英文的代表意义和赋值不了解.提高的方法就是多看多做;多看就是下载一些EA用MQ语言编译器看源代码,熟悉型式;多做就需要你自己尝试着编写简单的EA,然后看看有哪些Execution errors.EA的编写主要就是解决三类问题:一是抓价格数据,二调用指标数据,三调用下单、操作订单.这些不是短时间内能完成的,建议你买点书看看,不过现在书店里卖这方面的书几乎没用,所以要在网上订.最后希望上面写的这些对你有些作用,大家共同提高吧

包河区18916614641: 求稳定的外汇智能交易系统ea -
敛国舒尔: 目前全球公认最好的是MetaTrader4(即Mt4)外汇智能交易系统. Mt4 是MetaQuotes软件公司生产的一款以外汇为主的软件,此软件的特点是运行比较快,数据可以下载、 图表和数据较长.被很多的外汇公司和交易者青睐.目前,超过100家...

包河区18916614641: 外汇EA软件智能交易系统哪个好? -
敛国舒尔: 智能交易系统之前我也用过几个,经过对比最后我用的是下云易汇智能交易系统,他们这个我用着还不错,虽然盈利不是很高,月4%左右,但是风险很小非常稳定,我试用了一个月之后才决定正...

包河区18916614641: 启明资本和vantagefx万致什么关系? -
敛国舒尔: 启明资本应该是万致的代理商.作为代理商通过服务为万致介绍客户.做黄金外汇投资时,注意以下几点,希望可以帮到 第一,要选择一个正规平台,正规监管,正版软件.这是最基本的,针对于一些其他杠杆大小 点差大小等细节每个人的需求选择不同!第二,要有个良好的心态,市场上没有常胜将军,切忌一夜暴富的心态,不要捡不到西瓜反而漏了芝麻!第三,一定要技术面和基本面相结合去分析,不要单纯的依靠基本面或技术面!在大的趋势中抓住小的趋势.第四,不要依赖所谓的老师,而放弃了自己学习的能力!投资没有捷径,捷径是通过不断的学习,积累总结出来的 最后,要最大程度发挥黄金外汇T+0和杠杆的机制,把握好时机,果断得进出场,切忌贪婪与恐惧

包河区18916614641: 你有用EA交易吗?
敛国舒尔: 最后本帖由(*)编辑013-3-2 20:31 都在用什么样的EA?自学自编自用,有操作的,有保护的,有报警的.火-线-论坛的小散有个盈利保护和仓位管理的,那是学习的起步.不过很复杂,只用其部分功能.

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网