MetaTrader 4 Build 555 更新了MQL4语言并发布了应用程序市场

 

在过去的六个月自从公共版build 509的发布,我们投入了大量的精力去改善MetaTrader 4网上交易系统中的所有组件。用于开发交易策略的MQL4编程语言,已经发生了最显著的变化。这些变化提供了新功能来开发交易机器人,并提出推出MetaTrader 4市场的可能性 - MetaTrader 4程序端的安全应用程序商店。

我们开始公开测试新的MetaTrader 4程序端,并邀请所有的交易者加入进来,尝试其所有的功能,并帮助开发者更正错误。

只需连接到我们的demo.metaquotes.net:444服务器以便更新MetaTrader 4客户到 build 555。

公测版的测试完成后,新的MetaTrader 4程序端的最终版本将被发布。 您可以在下面更改列表中找出MQL4的新功能。

MetaTrader 4客户端build 555

  1. 程序端:编程交易策略的MQL4语言已经大幅修订,其功能更加接近MQL5。添加了类和结构并且语言语法已经扩展到С+ +级别,允许开发者实现所有面向对象编程的优势。这意味着交易机器人和技术指标现在可以更容易和更快地创建,而EA交易开发人员在一个单独的MetaEditor开发环境获得新的机会 - 调试,分析,代码完成等。在MQL5单独的 MetaEditor 文章部分了解更多的新特性。



    提升了MQL4应用程序的运算速度;提供DLL和Visual Studio的内置支持,实现访问MQL5 存储e 等等。

  2. 程序端:新增市场标签,用于购买和下载来自 MetaTrader 4 市场的收费和免费的EA交易,信号和脚本。现在,任何MQL4开发人员都可以成为卖家和 提供产品给数以百万计的使用MetaTrader4的交易者


    您可以下载一个试用版或从程序端上直接购买MetaTrader 4市场的全功能付费的MQL4应用程序。每次购买都是完全安全的,允许用户最多在5台不同的电脑上进行激活,对工作时间,帐户类型或经纪人没有限制。每个付费指标或EA交易在购买前都可以在可视化模式下在MetaTrader 4策略测试器上推出,以评估该产品。


  3. 程序端:改变了程序端的数据结构和存储位置 - 现在,每个已安装的程序端的数据被存储在一个独立的终端数据文件夹。

    自从2005年MetaTrader 4平台的发布,选定的程序端安装目录也是所有必要工作数据(程序端日志,模板,配置文件,报价等)已被存储的地方。但随着2008年Windows Vista的发布,微软所有的操作系​​统都实施用户权限的严重局限性,以保护他们免受恶意程序骚扰和防止一个用户帐户下的应用程序改变或损坏另一个用户帐户的相同程序的必要数据。

    在Windows Vista中,引进了用户帐户控制(启动UAC)机制。实施该机制的主要思想是,存储在安装目录的应用程序的不变数据应该在它的操作过程中从这个应用程序修改的用户数据分离开。因此,每个用户的所有数据应该被存储在单独的文件夹中。您可以在Windows帮助或维基百科文章找到有关UAC的详细信息。

    由于build 555,来自一个单独安装目录,使用MetaTrader 4程序端进行工作的某个用户的所有数据都存储在 程序端数据文件夹。此文件夹可沿着以下路径在系统盘(安装Windows操作系统的磁盘)找到
    C:\Users\User_account_name\AppData\Roaming\MetaQuotes\Terminal\Instance_id
    其中:
    • С: - 系统盘的名称;
    • User_account_name - Windows工作的用户帐户;
    • Instance_id - 存储使用MetaTrader 4客户端某些副本的所有用户数据的文件夹的唯一名称。

    “打开数据文件夹”命令已被添加到程序端文件菜单用于搜索和打开数据文件夹。




    每个程序端的数据文件夹的根目录下还包含 origin.txt 文件,在这里您可以找到这些数据所涉及的程序端安装文件夹的路径。这允许用户反向匹配每个程序端的数据文件夹和某个程序端的安装目录,例如,当由用户安装几个MetaTrader 4程序端的副本的情况。当数据文件夹从安装文件夹分离时,这种程序端工作类型被称为 主模式 并且出于安全原因被强烈建议。

    该程序端还可以在所谓的便携模式 下启动(如以前的MetaTrader 4版本)。在该模式中,数据被存储并记录在安装文件夹。要做到这一点,使用 "/portable" 键。为了更加方便,您可以在桌面上以相应的名称创建一个额外的程序端发布快捷方式,并直接添加关键字到快捷方式:





  4. 程序端:改变了交易请求的算法。在以前的版本中,当发出交易请求时已经创建了一个额外的网络连接。最后的交易请求被发送后,此连接保持活动状态一段时间,以提供快速发送大量的交易请求。

    现在,将发出交易请求时,所有请求都通过与交易服务器的主要连接进行传递。因此,处理该交易请求(尤其是第一个)的时间已大大减少,因为没有必要再等待连接交易服务器被确立。为了使新的处理算法可操作,交易服务器也应该更新 - 请求仍然设置在旧交易服务器的单独连接中。

    由于过渡到请求处理的新模式,取消服务器尚未接受的交易请求的功能(交易请求状态对话框的取消按钮)已被禁用。

  5. 程序端:在MetaTrader 4客户端和MQL4.com加入了全局搜索。在程序端的搜索,您可以快速查找客户端, 代码库 ,以及MQL4.com和MQL5.com网站,所有部分的信息。

    已经使用关于俄语和英语形态的逐字搜索。搜索是通过用户在设置中指定的部分来进行:




    T搜索结果选项卡的快捷菜单中包含根据结果类型的额外命令:




  6. 程序端:在工作 部分,新增了下MQL4应用程序开发的即时订单的命令。现在,每个交易者不仅可以从免费库中下载任何代码,还可以找到能够根据用户算法开发的一个必要指标或交易机器人的程序员。订单执行过程在文章中描述 在MQL5与MQL4中如何订购交易机器人 并为双方提供保护 - 开发者和客户。






  7. 程序端:新增发送客户帐户发生交易的推送通知的能力:下单,更改和删除订单,激活挂单和SL-TP,追加预付款和强行平仓的事件。推送通知发送到安装在iOS和Android操作设备的移动程序端,不取决于电话号码,并且如果网络连接可用,即可交付使用。在文章中找出详细信息 MetaTrader移动程序端中的MetaQuotes ID






  8. 程序端:新增图表的警报显示。该警报可以通过拖放来管理。此外,设置警报过期时间的功能已经得到落实。




    当图表交易水平的管理被允许,警报的价格值可以通过其拖动到一个新的价格水平被改变。 警报可以被禁用,或在适当的图表级上使用上下文菜单进行删除。


  9. 程序端:新增在模拟账户打开窗口通过公司的名字搜索服务器。
    只要输入公司名称(或服务器名称的片段),并且程序端将公司的所有服务器(包含在其名称中指定行的服务器)会自动添加到列表中:







  10. 程序端:在导航器窗口增加显示子文件夹和EA交易,脚本和指标的结构。



  11. 程序端:提高开立订单和持仓,交易历史记录和交易报告的列表中显示的交易订单和持仓的开盘与收盘时间的精确度 - 已添加秒数计数。


  12. 程序端:提高市场报价和弹出价格窗口显示的最后报价时间的精确度 - 最后报价时间显示到秒(而不是分钟)。



  13. 程序端:增加了新的图形对象:按钮,位图,位图标签,长方形标签。这些对象不能手动安装在图表上,是专为组织MQL4应用程序的用户界面而设计:EA交易,脚本和指标。

  14. 程序端:提高客户端日志中显示的时间精确度 - 毫秒已被添加。
  15. 程序端:修正了开立订单和持仓(通过点击十字按钮)列表中 一键关闭 持仓 - 来自交易设置 可接受的价格涨幅偏离值现在已用在即时交易模式中。
  16. 程序端:增加公司标签上复制到剪贴板的能力。
  17. 程序端:修正了命令安排图表窗口。
  18. 程序端:修正了在全屏图表之间切换时保存配置文件。
  19. 程序端:修正了使用日文界面时的一些对话框显示。
  20. 程序端:为了高效运行以及高性能,所有的客户端组件需要支持通过PC处理器设置的SSE2指令。
  21. 程序端:优化扫描最佳接入点。
  22. 程序端:修正了使用UAC时提升权限拒绝情况下,更新过程中出现的循环错误。
  23. 程序端:修正了新闻标题和内容的显示,以及使用UTF-8编码的内部电子邮件。
  24. 程序端:修正了一个错误,其在某些情况下可能会导致开立订单和持仓列表中的预付款和可用预付款字段的不正确显示。当用户拒绝接受“一键交易”的协议,可能会发生此错误。
  25. 程序端:当开立模拟账户时在相应的对话框更新国家列表。
  26. 程序端:更新和增强瑞典语,匈牙利语,日语,意大利语和保加利亚语的界面翻译。
  27. 信号:有关交易信号的扩展信息:
    • 增加了有关最近交易日期和上周交易数量的信息。
    • 增加了交易信号源帐户的净值图。
    • 添加分布图用于显示交易品种的交易活动。




  28. 信号:增加了对信号源和用户帐户之间的无条件持仓同步的选项。如果启用,无需用户的额外确认即可执行用户和信号源账户(包括与信号不相关的平仓)的同步。



    在VPS(虚拟专用服务器)上使用信号时,此选项是必要的。当使用已选择的信号进行工作时,它也可以被用来提高同步的可靠性。

  29. 信号:新增信号选项卡上近3天提交的新交易信号数量的显示。
  30. 信号:在交易持仓初始同步过程中,增加最小允许交易量和最小交易量步骤的考虑。如果本地持仓的大小小于信号方的预估量,增加本地持仓不被执行,因为将必须要重新持仓。这可能导致点差损耗。
  31. 信号:当门槛订单量值被超过时,修正了立即执行改为请求执行的执行类型的交易品种的持仓和平仓。
  32. 信号:当信号源和用户的交易品种进行比较,并且大量适当的交易品种在用户方被发现时,现在会考虑它们的交易许可。
  33. 信号:增加交易信号信息的历史与评论标签。
  34. 信号:在信号列表增加了信号的评级栏。
  35. 信号:从交易信号信息删除信号订单和持仓票据的显示。
  36. 信号:修正交易信号同步的错误,其偶尔发生在大量的具有相同交易量的单向持仓的情况下。
  37. 信号:增加了交易品种的自动转换GOLD <=> XAUUSD和SILVER <=> XAGUSD。
  38. 信号:添加禁止订阅兼容NFA FIFO规则的账户的交易信号。
  39. 信号:修正Wine(Linux和Mac)下工作时订阅信号。
  40. 测试器:修正使用订单缓存优化时,考虑测试参数中设置的订单点差。
  41. 修正了论坛和崩溃日志中报告的错误。


MetaTrader 4 MultiTerminal build 555

  1. 修正了它们迁移后,订单列表中偶尔出现的不正确更新。
  2. 修正了账户当前浮盈的显示 - 利润价值不包括在持仓的累积库存费。
  3. 提高市场报价和弹出价格窗口中显示的最后报价时间的精确度。
  4. 修正了新闻标题和内容显示,以及使用UTF-8编码的内部电子邮件。
  5. 提高程序端日志中显示的时间精确度 - 毫秒已被添加。
  6. 修正了崩溃日志中报告的错误。

实时更新可通过LiveUpdate系统获得。


MQL4的新功能

MQL4编程语言已经被彻底修改达到MQL5的水平 - 现在您可以用MQL4 / 5使用统一的MetaEditor开发环境,单一的风格,程序库和调试工具,开发自动交易。

由于易学性和大量的多年使用MetaTrader 4客户端生成的代码,MQL4深受自动化系统开发者的欢迎。然而,该语言也有其主要优点所产生的一些缺点 - 一个简单的编程语言不允许开发复杂的系统,阻碍了从高级语言调试库的移植。因此,我们决定在最大可能数量的MQL5语言功能和特点下实施它完全保留MQL4的功能。换句话说,所有强大的MQL5功能,包括ООP和本机代码编译器,也将在MQL4变得可用。

要做到这一点,我们已经开发了统一的编译器,可以自动支持MQL4和MQL5语言。MetaEditor也将成为MetaTrader 4和MetaTrader 5两个平台的统一的应用。因此,将有可能从任何版本编译MQL4和MQL5。MQL5存储也可用于工作。

MQL4应用保护上升到MQL5水平。新EX4/EX5文件提供了一个严格和彻底的修改保护。这意味着安全的EX4应用市场也提供给MetaTrader 4客户。

此外,MQL4现在采用新图形对象和新功能进行图表工作。MQL5标准库将被移植到MQL4为开发者提供了创造自己的图形界面和交易库的新可能性。现在,您可以在MetaTrader 4使用资源创建完全成熟的应用程序。

MQL4语言的变化

  • 添加新char, short, long, uchar, ushort, uint, ulongdouble(双精度)数据类型。这将允许从其他类似C + +语言转移代码。各种类型的数据以不同的速率进行处理。整型数据是处理的最快的一个。一个特殊的协作处理器被用来处理双精度数据。然而,由于浮点数据的内部表征的复杂性,它被处理得比整型慢。类型转换也被实施。
  • 字符串现在以Unicode格式表示,虽然他们之前都是以ANSI格式(单字节的)表示。如果程序使用DLL并传递字符串变量给他们则应该被考虑。
  • 预定义变量现在是ulong类型。用于访问卷的时间序列也由ulong类型数组组成。建议在旧版MQL4程序中使用数据的显式转换将该类型转至目标类型,以避免类型泛滥的错误。
  • 允许对象接收自身引用的结构和类,对象指针, void类型和this关键字已被添加。支持所有面向对象的编程标准:
  • ООP允许使用类来开发程序。这有利于调试和开发大型应用程序,以及通过继承权提供重复多次使用先前生成的代码的能力。然而,这并不意味着您不能像以前那样以面向程序的风格生成您的MQL4代码。如果您不需要新的功能,您可以如您过去一样,开发您的程序。
  • init(), deinit() 和 start() 的预定义函数一直保持着兼容性,但是,现在使用OnInit(), OnDeinit(), OnStart(), OnCalculate() 和 OnTick()来代替。此外,已经实施新的预定义OnTimer(), OnChartEvent() 和OnTester() 处理函数。在之前的MQL4中,预定义函数可以有任何参数和任何返回类型,并且它们可以通过自己的名字进行调用,而无需签名。在新版MQL4中,所有预定义函数应严格符合他们的签名。换句话说,他们应该精确地定义设置参数和返回类型。
  • 现在,变量名称不能包含特殊字符和标点,并且新版MQL4语言的关键字不能用作名称。旧版MQL4程序可以使用新的编译器重新编译,以便跟随编译器信息时可以轻松地纠正所有这些错误。
  • 优先规则现在符合C语言的标准。如果您不确定,您可以在旧版MQL4应用中插入括号,以清楚地表明优先级别以便增加可靠性。
  • 缩减的条件检查现在用于逻辑运算,与旧版MQL4计算所有的表达式不同,该检查是后来执行。假设检查逻辑AND使用的两个条件
      if(condition1 && condition2)
        {
         // some block of operations
        }
    如果 condition1 表达式是 falsecondition2 表达式的计算不能执行,因为 false && true 的结果等同于false
  • ArrayCopyRates() 也改变了自己的行为。代替虚拟复制到double[][6] 数组,它现在执行虚拟复制到MqlRates[]数组。复制到double[][6]数组仍然保持完整的兼容性,然而,该复制是真实的,不是虚拟的。
  • 在文件操作中,同时打开的文件数现在可以达到64,而旧版的MQL4可能只有不到32。直到最近,文件可以始终以FILE_SHARE_READ或FILE_SHARE_WRITE模式打开。现在,所需的开放模式应该明确指定。
  • 通过使用函数,局部数组的变量和内存释放的作用域也有所改变。由于变化的数目足够巨大,新#property strict属性已被引进以提供与之前开发MQL4程序的方法的最大兼容性。当使用MQL向导创建新MQL4应用程序时,这个属性会始终添加到模板。下表包含MQL4,无需使用strict的新版MQL4和指定strict编译模式的新版MQL4之间的差异
    #property strict

编译器之间的差异表

旧版MQL4编译器
新版MQL4编译器
含有#property strict的新版MQL4
init(), start() 和deinit()接入点可能拥有任何参数和任何返回类型 init(), start() 和deinit()一直保持完整的兼容性,
而新的OnInit(), OnStart(), OnCalculated, OnTick(), OnTimer(), OnChartEvent(), OnTester() 和OnDeinit()应严格符合它们的签名
几乎所有的变量名称(除了保留字)都是可能的,其中包括特殊字符和标点
变量名不能包含特殊字符和标点。
保留字清单已经扩大。因此,如short, long, const等一样的如此广泛的字眼不能用作名称
变量的作用域是从声明(即使在嵌套模块)到函数结束
变量的作用域是从声明到模块的结尾,其中变量被声明
通过零值隐式初始化所有变量(包括全局和局部变量)
只有全局变量进行初始化。局部变量中只有字符串隐式初始化。
退出函数时局部数组不释放
退出函数时局部数组被释放
退出{}模块时局部数组被释放
越界数组”不会导致严重错误*
同上,除了结构和类的数组,为此,这个错误是关键的一个
越界数组”是造成程序停止的严重错误
无结构和类
结构和类都存在。实施其他数据类型
字符串是单字节。
datetime是32位整数。
预定义卷变量是double类型
字符串是unicode字符串。
datetime是64位整数。
预定义卷变量是ulong类型
ArrayCopyRates() 执行虚拟复制到double[][6] 数组 ArrayCopyRates() 执行虚拟拷贝到MqlRates[] 数组。复制到double[][6] 数组已经保持完整的兼容性。然而,复制是真实的,不是虚拟的
即使他们有一个类型,该函数也可能无法返回值。为了实现这一点,在函数结束时编译器自动插入return(0)
任何类型的函数都应该返回一个值
同时打开的文件数为32
同时打开的文件数为64
该文件总是在共享使用模式**打开
应该使用FILE_SHARE_READ和/或FILE_SHARE_WRITE明确指定共享使用模式

* 请特别注意“越界数组”的错误 - 在图表上启动时许多旧版的自定义指标将在新编译器的strict 模式下显示此错误。建议查找原因并排除它。

** 在新版MQL4和MQL5中,FILE_SHARE_READ和FILE_SHARE_WRITE标志是负责共享使用模式的文件。旧版MQL4中没有这样的文件。

 
专业破解黄金甲EA 美国汇神EA 专业破解刷单神器EA 专业破解各种外汇智能分析系统/EA 专业破解趋向建仓智能分析系统 专业破解曹操外汇智能分析系统/EA 专业破解曹操水木外汇智能分析系统/EA 专业破解老船长外汇智能分析系统 专业破解灵灵狗009黄金外汇交易系统(EA) 专业破解金嘉亿外汇智能分析系统 专业破解激情提款机EA 老黄牛外汇ea 专业破解激情提款机系列汇神EA、千里马EA 专业破解汇市导航系统 专业破解海阔外汇智能软件(EA) 专业破解富盈外汇智能分析系统 专业破解傻瓜外汇智能分析系统 本地同步跟单EA 本地跟单系统 正向跟单EA 反向跟单EA 支持最新版600 /610以上 无dll 专业破解水木外汇智能分析系统 专业破解淘金者智能分析系统(EA) 出售最新ex4 to mq4反编译软件 ex4反编译软件 。。。。。。。。。。。。。。。。。。。。。。。。。 需要的汇友加本人QQ:452337597