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

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

因为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号码

投资者在使用MT5交易平台时,可能会出现找不到自己需要的指标,例如移动平均线、KDL指标等等。但是作为MT4交易平台的升级版,MT5也有这些指标,但是需要投资者通过自定义获取,那么该如何获取这些指标呢?全球美股平台为大家进行讲解

方法一是通过MT5本身获取并且添加需要的技术指标,此做法相对较为方便,但是却较为格式化,不能看到相关的指标细节;方法二是通过官网或者第三方的途径来获取自定义的指标,并放入MT5相应的文件夹中,再通过编译后在MT5中使用,此种方法的特别之处是可以看到指标的细节,也可以增加 *** 作透明度。

第一种方法比较简单,投资者可以登录Just2Trade进行MT5下载交易,打开MT5之后,可以在界面上方点击“插入”,之后选择“技术指标”,最后在技术指标中选择自己需要的图标点击即可。

第二种方法则需要投资者下载相应技术指标的代码。Just2Trade建议投资者可以去MQL5官网下载,可以找到自己需要的技术指标代码,并且进行下载,但是要注意下载之后的存放路径,只有存放在MT5之后才能生效。下载之后按F4即可打开相应的代码文件,通过F7编辑,最后才能在MT5中使用。

以上是总结的两种方法,但是如果是投资新手,建议使用MT4交易软件。更多信息欢迎登录Just2Trade捷仕交易官方网站。

要编写程序(“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 中有个称之为结构的新概念。结构将逻辑相关的数据结合在一起。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11564671.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存