如何开始使用Metatrader 5 - 页 110

 
Sergey Golubev:



我是新人,你能帮助我吗?

 
armynnoow:

我是新手,你能帮助我吗?


有一个针对新手的帖子(关于 "我从哪里开始")-

关于交易、自动交易系统和测试交易策略的论坛

如何开始使用Metatrader 5

Sergey Golubev, 2017.10.03 06:39

============

1.用户备忘录

关于交易、自动交易系统和测试交易策略的论坛

如何开始使用Metatrader 5

Sergey Golubev, 2016.12.30 17:26

只是提醒一下如何在帖子中插入代码(对于新用户/新手)--阅读这里,并阅读整篇文章。MQL5.community - 用户备忘录

============

2.如何在论坛/mql5门户上进行搜索

============

3.总结

3.1.如何开始使用MT5,摘要!(包括之前的主题:如何开始使用MetaTrader和外汇,开始)
MetaTrader 4 帮助 - 客户终端 - 用户指南
MetaTrader 5 帮助 - 交易平台 - 用户手册

3.2.所有(还没有)关于策略测试器、优化和云的 内容

3.3.ASCTREND系统总结(包括2个好的EA)。

3.4.脑力交易系统操作方法

3.5.价格通道抛物线系统(包括2个版本的EA)

3.6.市场状况评估(创建了2个EA)

3.7.一目了然

3.8.金融和交易视频 - 目录

3.9.所有关于日历标签和宏观经济事件 的内容

3.10. 关于MQL5向导的所有信息:无需编程即可创建机器人

============

4.第一篇关键文章:
MetaTrader 5 - 超越你的想象!

============

5.第二篇关键文章:
使用MetaTrader 5和MQL5的无限机会

============

6.如何在MT5中添加经纪人。

6.1.MetaTrader 5的帮助 -开设账户

6.2.MetaTrader 5 Android操作系统的帮助 -开立模拟账户

6.3. MetaTrader 5 iPhone/iPad帮助 -连接账户和开设模拟账户

============

7.信号

============

8.市场

============

9.MT4/MT5的MQL5 VPS

9.1.如何订阅VPShttps://www.mql5.com/en/forum/187872#comment_4851530

9.2.您可以将您的VPS订阅从一个账户转移到另一个账户
https://www.mql5.com/en/forum/172120#comment_4166892

9.3.MQL5 VPS描述
https://www.mql5.com/en/forum/172553#comment_4185979

9.4.监控VPS
https://www.mql5.com/en/forum/188920#comment_4800677

9.5.同步 -
https://www.mql5.com/en/forum/211508

============

10.经纪人

10.1.通过经纪人的名字查找服务器:
https://www.mql5.com/en/forum/9950/page88#comment_3981953
https://www.mql5.com/en/forum/214820

10.2.对初学者的帮助
https://www.mql5.com/en/forum/214904

10.3.美国经纪商
https://www.mql5.com/en/forum/12423/page500#comment_4736742

============

11.促销:
https://www.mql5.com/en/forum/9950/page88#comment_3982032
https://www.mql5.com/en/forum/9950/page88#comment_3982030
https://www.mql5.com/en/forum/9950/page88#comment_3982036

============

12.自由职业者,反编译,规则,反编译代码的例子:
https://www.mql5.com/en/forum/203200

============

13.论坛的一般规则和最佳做法

13.1. 讨论的主题

13.2.论坛规则

============

14.关于线程的线程论坛上到处都在发生什么
如果你在寻找新的和现代的东西(而且是免费的),这是一个好线程。

============

15.MT5,mql5,mql5.com的改进建议线程

============

16.如何订阅主题或邀请一个人进入主题--线程

============


 

MetaEditor(与Metatrader一起更新)升级了很多。
非常多!
更多的代码保护,项目,以及更多更多。

你可以尝试自己去找,或者等待将在本周内发布的版本。

仅供参考。

 

这是非常有趣的更新,特别是对MetaEditor来说,所以似乎我需要了解一下 -

------------------

关于交易、自动交易系统和测试交易策略的论坛

MetaTrader 5平台测试版Build 1700。MetaEditor和合成金融工具中的项目

MetaQuotes软件公司。, 2017.12.05 14:33

MetaTrader 5平台测试版Build 1700。MetaEditor中的项目和合成金融工具

更新后的MetaTrader 5平台的测试版将于2017年12月6日发布。我们将更新我们的公共MetaQuotes-Demo服务器,位于access.metatrader5.com:443。我们邀请所有交易者加入测试,以评估更新的平台功能,并帮助开发人员修复错误。

要将MetaTrader 5平台更新到build 1700,请连接到access.metatrader5.com服务器:443。

新MetaTrader 5平台的最终构建将在公开测试后发布。

结束对旧版终端的支持
对旧版本的桌面和移动终端的支持将在新平台版本发布后结束。
  • 客户端:730以下的版本,2012年11月23日
  • iPhone的移动终端:低于1171的版本,2015年11月11日
  • 安卓的移动终端:低于1334的版本,2016年8月5日
不支持的终端构建将无法连接到新的服务器版本。我们强烈建议您提前更新您的终端。

MQL5存储操作协议的变化
为了支持新的共享项目,我们已经更新了与MQL5存储的操作协议。因此,在平台更新后,您需要对存储的所有数据进行结账。在更新期间,存储在MQL5存储的数据不会丢失或受到影响。

在将平台更新到新版本之前,我们建议您执行提交操作,将所有本地更改发送到MQL5存储。

该更新将具有以下变化。

  1. 全功能的项目现在可以在MetaEditor中使用。程序开发过程变得更加方便。

    现在,MQ5的主程序文件并不作为项目出现。项目是一个单独的 "MQPROJ "文件,它存储了程序设置、编译参数和所有使用的文件的信息。主要的项目设置可以从一个单独的对话框中访问,所以现在不需要在源代码中通过#property指定它们。

    在导航器中提供了一个单独的标签,以方便项目的工作。所有的文件,如include、resource、header和其他文件都在这个标签上被安排成不同的类别。所有文件都会自动添加到项目导航器中。例如,如果你包括一个新的MQH文件,它将自动出现在导航器的 "依赖 "部分。

    对新项目的支持也已在更新的MQL5存储在线库中实现。这是一个方便的选择,可以通过与MQL5.社区的其他成员合作开发大型项目。

    为团体项目提供了新的共享项目部分。在此部分创建的项目会立即被发送到存储区:您可以授予其他用户权限,并立即开始协作。





    当你在共享项目中编译一个项目时,一个可执行的EX5文件会自动复制到本地的Experts、Indicators或Scripts目录中,具体取决于程序类型。你可以轻松地在图表上启动程序,而不必手动复制文件。


    MQL5存储操作中的新内容
    为了实现对新的共享项目的支持,我们已经修改了MQL5存储的操作协议。因此,在平台更新后,您需要对存储的所有数据进行结账。在更新期间,存储在MQL5存储的数据将不会丢失或受到影响。
    在将平台更新到新版本之前,我们建议你执行提交操作,将所有的本地更改发送到MQL5存储。
    现在,"从存储中签出 "命令只在共享项目中可用。对于MQL5文件夹中的其他目录,要使用'激活MQL5存储'和'从存储中更新'命令。

    • 如果您在当前的MetaEditor实例中没有使用过MQL5存储,请在导航窗口的上下文菜单中点击 "激活MQL5存储"。存储器中所有可用的目录和文件将被上传到您的本地计算机。
    • 如果您已经在使用存储,请点击导航器中根MQL5元素的上下文菜单中的 "从存储更新文件",以接收来自存储的所有数据。


    新项目。创建和操作细节的例子
    在MetaEditor中增加了一个新的项目实体。一个项目是一个mqproj文件,它存储了通用的程序属性和所有使用的文件的信息。现在,可以通过一个单独的MetaEditor对话框方便地管理程序属性,而不是手动修改源代码中的属性(使用#属性指令)。

    如果你有可用的代码,你可以通过使用 "从源代码新建项目 "命令轻松测试新项目。




    在选定文件所在的目录中,将创建一个具有相同名称和mqproj扩展名的新项目文件。源代码中通过#property指定的主要程序属性将被自动添加到项目中,包括名称、版权、版本、开发者网站的链接和程序描述。
    项目文件中的程序属性集比程序代码中指定的属性有更高的优先权。如果在项目和源文件中都指定了属性,将使用项目中的属性。




    项目属性中加入了两个新的选项,用于编译MQL5程序。

    • 启用额外的优化:禁用优化的应用程序编译得更快,但执行得更慢。
    • 检查浮点除法:禁用检查的应用程序工作得更快一些,因为在代码执行期间不检查零除法错误。

    为了处理项目,在导航器窗口中使用单独的项目标签。在一个项目中使用的所有文件都以一种方便的形式显示在这个标签上。当一个项目从源文件生成时,所有使用的包含文件(在主MQ5文件和它的包含文件中使用#include目录指定)会自动添加到依赖关系部分。

    当一个新的包含文件被添加到源代码中,它也会出现在项目导航器中。使用的头文件被添加到头文件部分;图像、声音和项目中作为资源使用的其他MQL5程序被添加到资源部分。带有源代码的MQ5文件会显示在Source部分。在 "设置和文件 "部分,您可以添加其他文件,如用于测试和图表模板的设置文件。

    使用上下文菜单命令将现有文件添加到项目中或从项目中删除文件。删除文件时要小心,因为你可以从项目中删除一个文件(删除绑定)或从硬盘中完全删除它。



    创建一个新的项目就像创建一个正常的MQL5程序一样简单。点击 "新项目",选择新程序的类型,在MQL5向导中指定属性(如名称、事件处理程序等)。

    要获得一个可执行的EX5文件,你可以打开项目并按F7(编译命令)或打开程序的主MQ5文件并编译它。

    在MQL5存储中共享项目。操作细节
    共享项目是从一个单独的共享项目部分进行管理的。如果您还没有连接存储,从所需文件夹的上下文菜单中执行 "激活MQL5存储 "命令。MetaEditor将检查您的存储是否包含任何已保存的数据,以及是否有任何共享项目可供您使用。所有可用的数据将被从存储中检索出来,并上传到您的电脑上(结账操作)。可用的小组项目出现在共享项目部分。要检索这些项目,请在上下文菜单中执行 "从存储器中签出"。

    要创建一个新的小组项目,选择共享项目文件夹并点击 "新项目"。



    然后完成标准的MQL5步骤:设置所需程序的类型、名称和属性。对于小组项目,你应该使用清晰易懂的名称,这样其他参与者可以很容易地找到它们。项目名称中只能使用不带空格的拉丁字母。

    创建的对象会立即添加到MQL5存储器中。项目中使用的标准库 文件不会被添加到存储器中,你可以手动添加它们。

    要允许其他参与者使用该项目,请打开其属性。在这里,您可以通过指定他们的MQL5.community登录,将权限授予选定的用户,以及为小组工作设置通用参数。

    • 私人项目
    • 免费加入的项目
    • 按要求加入项目



    当你编译一个小组项目时,可执行的EX5文件会自动复制到本地的Experts、Indicators或Scripts目录,具体取决于程序类型。它允许你立即在终端运行程序,而不必手动复制到适当的目录中。

  2. 终端。现在,交易平台允许创建合成金融工具,即基于一个或多个现有工具的符号。用户应设置计算报价的公式,之后平台将实时生成合成工具的刻度,也将创建其分钟历史。

    它是如何工作的
    • 您创建一个合成工具并设置价格计算公式。
    • 平台以每秒10次的频率计算ticks,前提是公式中使用的至少一个工具的价格发生了变化。
    • 该平台还根据其公式中使用的工具的分钟条,计算一分钟条的历史(过去两个月)。所有新的条形图(当前和随后的条形图)都是根据合成工具生成的点位实时建立的。
    例如,你可以创建一个显示美元指数(USDX) 的工具。它使用下面的公式。
    50.14348112 * pow(ask(EURUSD),-0.576) * pow(USDJPY,0.136) * pow(ask(GBPUSD),-0.119) * pow(USDCAD,0.091) * pow(USDSEK,0.042) * pow(USDCHF,0.036)
    注意:USDEUR和USDGBP货币对被用于源美元指数公式中。由于平台上只有反向货币对,所以在合成符号公式中使用了负数,并且使用了Ask而不是Bid。

    该平台将根据您的经纪人提供的其他六个符号的报价,实时计算新工具的价格。价格变化将在市场观察窗口和图表上显示出来。



    创建一个新的自定义符号,打开其规格并输入公式。



    为方便起见,公式编辑器在你输入符号和函数的名称时,会显示一个可能的选项列表。

    当合成工具被添加到市场观察中时,就开始计算该工具的点数和一分钟条数。同时,合成价格计算所需的所有符号会自动添加到市场观察中。关于计算开始的条目将被添加到平台日志中。合成符号USDX:处理开始。
    • 合成工具的计算在它从市场观察中删除后停止。
    • 目前用于计算合成符号价格的符号不能从市场观察中隐藏。

    报价的实时计算
    每隔100毫秒(即每秒10次)就会检查用于计算的符号的价格。如果其中至少有一个发生了变化,就会计算合成符号的价格,并生成一个新的tick。计算是在三个线程中并行进行的,分别是买入价、卖出价和最后价格。例如,如果计算公式是EURUSD*GBPUSD,合成符号的价格将被计算如下。

    • 买入=买入(EURUSD)*买入(GBPUSD)
    • 问价 = 问价(EURUSD)*问价(GBPUSD)
    • 最后=最后(EURUSD)*最后(GBPUSD)

    变化的可用性是针对每个价格单独检查的。例如,如果只有源工具的买入价发生了变化,那么将只计算合成工具的适当价格。

    创建分钟条的历史
    除了实时收集ticks外,该平台还创建了合成工具的分钟历史。它使交易者能够查看与正常图表相似的合成符号图表,以及使用对象和指标进行技术分析。

    当交易者将合成工具添加到市场观察中时,平台会检查其计算的分钟历史是否存在。如果不存在,将创建过去60天的历史,其中包括约50,000条。如果在平台设置中的 "图表中的最大条数 "参数中指定了一个较低的值,则将适用适当的限制。

    如果在此期间的一些条形图已经被创建,平台将额外生成新的条形图。如果用户试图在图表上查看一个较早的时间段(通过向后滚动或从MQL5程序访问它),则会创建一个更深的历史。

    合成工具的一分钟条形图的历史是根据其公式中使用的工具的一分钟条形图(不是点)计算的。例如,为了计算一个合成符号的1分钟条形的开盘价,平台使用其公式中使用的符号的开盘价。最高价、最低价和收盘价的计算方法类似。

    如果任何一个工具没有所需的条形图,平台将使用前一个条形图的收盘价。例如,使用三个工具。欧元兑美元、美元兑日元和英镑兑美元。如果在计算对应于12:00的条形图时,所需的USDJPY条形图不可用,将使用以下价格进行计算。

    • 开盘。欧元兑美元开盘12:00,美元兑日元收盘11:59,英镑兑美元开盘12:00
    • 高点:欧元兑美元高点12:00,美元兑日元收盘11:59,英镑兑美元高点12:00
    • 低点:欧元兑美元低点12:00,美元兑日元收盘11:59,英镑兑美元低点12:00
    • 收盘。欧元兑美元收盘12:00,美元兑日元收盘11:59,英镑兑美元收盘12:00

    如果公式中使用的所有工具都没有分钟条,那么合成工具的相应分钟条将不会被计算。

    绘制新的分钟条
    所有合成工具的新条形图(当前和后续条形图)都是根据生成的ticks创建的。用于建立条形图的价格取决于规范中的图表模式参数的值。




    符号公式中可以使用哪些操作
    由经纪人提供的价格数据和现有符号的一些属性可用于计算合成价格。指定以下内容。

    • 符号名称 - 根据要计算的合成价格,将使用指定工具的买入、卖出或最后价格。例如,如果指定了EURUSD*GBPUSD,Bid计算为bid(EURUSD)*bid(GBPUSD),而Ask=ask(EURUSD)*ask(GBPUSD)。
    • bid(符号名称) - 指定符号的买入价将被强制用于计算合成工具的买入价。这个选项类似于前一个选项(没有指定价格类型)。
    • ask(符号名) - 指定符号的卖出价将用于计算合成工具的买入价。指定工具的买入价将被用于计算卖出价。指定符号的最后价格将被用于计算最后价格。如果指定了ask(EURUSD)*GBPUSD,将使用以下计算。
      • Вid = ask(EURUSD)*bid(GBPUSD)
      • Ask = bid(EURUSD)*ask(GBPUSD)
      • Last = last(EURUSD)*last(GBPUSD)
    • last(符号名称) - 指定符号的最后价格将用于计算合成工具的所有价格(买入、卖出和最后价格)。如果指定last(EURUSD)*GBPUSD,将使用以下计算方式。
      • Вid = last(EURUSD)*bid(GBPUSD)
      • Ask = last(EURUSD)*ask(GBPUSD)
      • 最后=最后(EURUSD)*最后(GBPUSD)
    • volume(symbol name) - 公式中会使用指定工具的tick volume。请确保该符号的成交量信息是由经纪人提供的。
    • point(符号名称) - 在计算中,将使用指定工具的最小价格变化。
    • digits(symbol name) - 在公式中,将使用指定符号价格的小数位数。

    如果一个符号有一个复杂的名称(包含连字符、点等),它必须写在引号里。例如。"RTS-6.17"。
    下列算术运算可以在公式中使用:加法(+),减法(-),乘法(*),除法(/)和除法的余数(%)。例如,EURUSD+GBPUSD意味着价格被计算为EURUSD和GBPUSD的价格之和。你也可以使用单数减号来改变符号,例如:-10*EURUSD。

    注意算术操作的计算优先级。

    • 首先进行乘法、除法和余数的操作;然后进行加法和减法操作。
    • 这些操作从左到右进行。如果公式中使用了几个具有相同优先级的操作(例如,乘法和除法),左边的操作将被首先执行。
    • 你可以使用括号(和)来改变操作的优先级。括号内的操作在计算中具有最高的优先级。从左到右的原则也适用于它们:括号内左边的运算会先计算。

    你可以在公式中使用常数。

    • 数值(整数和浮点数)。例如。eurusd*2+gbpusd*0.7。
    • 符号属性_Digits和_Point。他们在公式中加入了规范中自定义符号的适当属性。_Digits指的是工具价格的小数点后的数字;_Point指的是符号价格的最小变化。

    您也可以在公式中使用MQL5支持的所有数学函数,除了MathSrand、MathRand和MathIsValidNuber:所有函数只使用短名称,如fabs()、acos()、asin()等等。

  3. 终端。实施了一个新的选项,允许实时添加自定义工具的报价。现在,可以开发一个MQL5专家顾问,为指定的自定义符号提供报价。CustomTicksAdd 函数就是用于此。
    int  CustomTicksAdd(
       const string           symbol,       // Symbol name
       const MqlTick&         ticks[]       // The array with tick data that should be applied to the custom symbol
       );
    CustomTicksAdd功能允许提供报价,就像这些报价是从经纪人的服务器上收到的一样。数据被发送到市场观察窗口,而不是直接写入tick数据库。然后,终端从Market Watch中保存ticks到数据库中。如果在一次调用中传递了大量的数据,为了节省资源,函数行为会发生变化。如果传输的点数超过256,数据会被分成两部分。一个较大的部分直接记录到tick数据库中(类似于CustomTicksReplace)。第二部分由最后128个刻度线组成,被发送到市场观察,终端从那里将刻度线保存到数据库中。

  4. MQL5。新的在线服务MQL5云保护器已被添加,为MQL5程序提供额外的保护。保护类似于在最大的交易应用程序商店MetaTrader Market 中使用的选项,其中卖家提交的EX5产品文件被额外编译为本地代码。

    现在,这种类型的保护对所有平台用户都可用。为了保护您的文件,在MetaEditor中执行以下命令。工具-MQL5云保护器。MQL5云保护器与市场中使用的机制的唯一区别是,文件没有链接到用户的计算机。通过MQL5云保护器保护的文件可以在任何计算机上运行,类似于普通的EX5文件。
    MQL5云保护器是一项安全服务。额外的保护只适用于一个编译的文件。源代码不会被传递给服务。在第一步,程序被编译为用户计算机上的EX5文件;之后,编译的文件通过加密通道被发送到服务,在那里被保护并返回给用户。



  5. 终端。市场观察窗口现在增加了最高价和最低价。这些栏目在默认情况下是隐藏的。它们可以通过上下文菜单启用。




    如果符号图是用买入价构建的(根据规格设置),则显示该符号的买入高价和买入低价。如果符号图是用最后价格构建的,则显示该符号的最后高价和最后低价。

    如果市场观察包含至少一个符号,其图表是根据最后价格绘制的,那么除了最高价/最低价之外,最后一栏也自动启用。

  6. 终端。现在可以编辑自定义金融工具的tick历史。在Market Watch的上下文菜单中点击 "符号",选择一个自定义的符号,并在Ticks标签中申请所需的数据间隔。

    • 双击来改变数值。
    • 使用上下文菜单来添加或删除条目
    • 如果你需要一次删除多个小节/刻度线,用鼠标选择它们,按住Shift或Ctrl+Shift。



    为方便起见,修改后的条目突出显示如下。

    • 绿色背景表示一个修改过的条目
    • 灰色背景表示一个被删除的条目
    • 黄色背景表示增加了一个条目

    要保存这些修改,请点击窗口底部的 "应用修改"。

  7. 终端。报价窗口中增加了以毫秒为单位的时间显示。




  8. 终端。在新账户开立对话框中扫描可用的服务器变得更快。
  9. 终端。在启用Ray Left和Ray Right选项的情况下,固定显示趋势线图形对象。
  10. 终端。优化了有大量内部邮件(数十万)的操作。
  11. 终端。优化了大量交易工具(50,000或更多)的终端操作。
  12. MQL5。增加了用于处理自定义金融工具 的新功能。

    功能 操作
    自定义符号创建 在指定的组中创建一个具有指定名称的自定义符号。
    自定义符号删除 删除一个具有指定名称的自定义符号
    自定义符号SetInteger 为一个自定义符号设置整数类型的属性值
    自定义符号设置双数 为一个自定义符号设置实数类型的属性值
    自定义符号SetString 为自定义符号设置字符串类型的属性值
    自定义符号SetMarginRate 根据订单类型和方向,为自定义符号设置保证金率。
    自定义符号设置会话报价 设置指定符号和星期的指定报价时段的开始和结束时间
    自定义符号设置交易时段(CustomSymbolSetSessionTrade 设置指定符号和工作日的指定交易时段的开始和结束时间。
    删除价格历史 在指定的时间间隔内,从自定义符号的价格历史中删除所有条形。
    自定义汇率替换 用MqlRates类型数组中的数据完全替换指定时间间隔内的自定义符号的价格历史记录
    自定义汇率更新(CustomRatesUpdate 向自定义符号历史添加缺失的条形,并用来自MqlRates类型数组的数据替换现有数据
    CustomTicksAdd 将来自MqlTick类型数组的数据添加到自定义符号的价格历史中。该自定义符号必须在Market Watch窗口中被选中。
    CustomTicksDelete 从自定义符号的价格历史中删除指定时间间隔内的所有点位
    替换自定义符号 在指定的时间间隔内,用MqlTick类型数组的数据完全替换自定义符号的价格历史。

  13. MQL5:增加了对联合 数据类型的模板支持。
  14. MQL5:增加了SYMBOL_VISIBLE交易工具属性。如果指定的符号在市场观察中不可见,调用SymbolInfoInteger(symbol, SYMBOL_VISIBLE)会返回false。
  15. MQL5。添加了新的CHARTEVENT_MOUSE_WHEEL属性。当鼠标滚轮在图表上滚动或按下时,该事件被调用(如果图表的CHART_EVENT_MOUSE_WHEEL=true)。
  16. MQL5。添加了以下图表属性

    • CHART_EVENT_MOUSE_WHEEL - 启用/禁用CHART_EVENT_MOUSE_WHEEL(鼠标在图表上滚动和点击事件)的生成。可能的值。0和1。
    • CHART_CROSSHAIR_TOOL - 启用/禁用通过中间点击将光标切换到十字线模式的可能性。可能的值。0和1。
    • CHART_CONTEXT_MENU- 启用/禁用右键点击来显示图表的上下文菜单。可能的值。0和1。

  17. MQL5:现在,在计算指标窗口比例时,具有DRAW_NONE风格 的绘图缓冲区不会被考虑在内。
  18. MQL5:当为图表设置CHART_SCALEFIX(固定比例)属性时,增加了CHARTEVENT_CHART_CHANGE 事件的生成。
  19. MQL5:增加了ArraySwap函数,允许快速交换动态数组的内容。
    bool  ArraySwap(
       void&  array1[],      // The first array
       void&  array2[]       // The second array
       );
    该函数接受相同类型和相同维度的动态数组。对于多维数组,除了第一个维度外,所有维度中的元素数量都应该匹配。

  20. 信号。在根据信号强制平仓的情况下,固定显示订单填充类型。在信号复制选项中提供了 "如果账户低于XXX美元就停止 "的选项:如果股票跌到指定水平以下,交易信号的复制将自动终止,所有头寸被关闭。早些时候,在强制平仓的情况下,可能会给平仓单设置不正确的填充类型。现在,终端检查符号设置中允许的填充类型,并指出一个适当的选项。
  21. 测试者。策略测试器中的HistoryOrderSelect 函数的行为现在与客户终端中的相同函数相一致。
  22. 测试器。策略测试器中的CopyTicksCopyTicksRange 函数的行为现在与客户终端的相同函数相对应。
  23. 测试器。优化了视觉测试期间图形对象的显示。
  24. 测试器。固定显示交易所工具的测试结果(使用交易所风险管理模型)。现在,图表只显示权益,而不显示余额和存款负荷。这类账户的交易状态是根据权益水平评估的。余额只显示账户上的资金数额,而忽略了交易者的资产和负债。存款负荷(保证金/权益)不显示,因为在交易所的计算模式中,保证金等于资产/负债的当前折现值,而且它随着权益的变化而变化。
  25. 元编辑器。增加了在程序代码中轻松插入属性和资源的功能。例如,你可以快速向代码中添加一个包含的文件。使用命令 "Insert-MQH as #incude",并选择需要的包含文件。带有所选文件正确路径的#include指令将被插入到程序代码中。



    同样的菜单允许以二进制或文本阵列的形式添加到程序代码文件中。其中,你可以将图表模板与专家顾问或指标一起传输:将模板作为数组插入程序代码中,然后使用FileSave功能将其保存到磁盘。此后,可以使用ChartApplyTemplate功能将模板直接应用到所需的图表中。
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
    //--- Template file as a binary array
       unsigned char my_template[]=
         {
          0xFF,0xFE,0x3C, ... ,0x00 // The data array in this example is shortened
         };
    //--- Saving and applying the template
       if(FileSave("my_template.tpl",my_template))
         {
          Print("Custom template saved in \\MQL5\\Files");
          if(ChartApplyTemplate(0,"\\Files\\my_template.tpl"))
             Print("Custom template applied to the current chart");
          else
             Print("Failed to apply custom template");
         }
       else
          Print("Failed to save custom template");
      }

  26. MetaEditor。增加了一个在ASCII、HEX和Base64格式之间转换字符串的选项。在源代码中选择一行,在编辑-转换菜单中点击需要的命令。




  27. MetaEditor:修正了文件中不区分大小写的搜索。
  28. MetaEditor:修正了一个调试器错误,在计算类似于x.y[0][1].z的表达式时可能会出现。
  29. 元编辑器。修正了使用前进和后退按钮的代码导航。
  30. 用户界面现在也有了荷兰语版本。
  31. 更新了文档。


该更新将通过LiveUpdate系统提供。


 

今天发表了非常有趣的文章--

----------------

如何通过MetaTrader 5在外部加密货币交易所进行交易

不久前,MQL5语言开发人员已经推出了更新的功能,其特点是能够开发自定义符号和图表。广大的交易员社区还没有时间欣赏这一创新的力量,但即使是一个简单和不显眼的头脑风暴,也显示出自定义符号中隐藏的巨大潜力。与其他MQL工具一起,它们允许你实现许多最大胆和有趣的想法。

从现在开始,MetaTrader 5不仅仅是一个与一个DC互动的终端。相反,它是一个自给自足的分析平台,能够通过API连接到各种交易所,以及可视化价格变动和交易流。一组小的新功能将终端变成了一个开放的系统,而不是一个包含有限数量交易工具的工具箱。在我看来,自定义工具也可以成为强大的分析能力。

让我们以加密货币这一热门话题为例,说明新的语言功能。我相信,这将进一步加强社区对自定义符号的兴趣。

谁可能从这篇文章中受益。

  • 加密货币交易所交易者。
  • 熟悉MetaTrader 5和组合投资的投资者。
  • 自由职业程序员,现在可以用更简单(更便宜)的方式执行客户与加密货币交易有关的订单。
  • 每个关注新MetaTrader 5和MQL5语言功能的人。
 

关于交易、自动交易系统和测试交易策略的论坛

新MetaTrader 5 Build 1730:MetaEditor和合成金融工具中的项目

MetaQuotes软件公司。, 2017.12.20 13:49

新MetaTrader 5 Build 1730:MetaEditor中的项目和合成金融工具

MetaTrader 5平台的更新将于2017年12月21日发布。

结束对旧版终端的支持
对旧版本的桌面和移动终端的支持将在新平台版本发布后结束。
  • 客户端:730以下的版本,2012年11月23日
  • iPhone的移动终端:低于1171的版本,2015年11月11日
  • 安卓的移动终端:低于1334的版本,2016年8月5日
不支持的终端构建将无法连接到新的服务器版本。我们强烈建议您提前更新您的终端。

MQL5存储操作协议的变化
为了支持新的共享项目,我们已经更新了与MQL5存储的操作协议。因此,在平台更新后,您需要对存储的所有数据进行结账。在更新期间,存储在MQL5存储的数据不会丢失或受到影响。

在将平台更新到新版本之前,我们建议您执行提交操作,将所有本地更改发送到MQL5存储。

此次更新将有以下变化。

  1. 现在MetaEditor中可以使用全功能的项目。程序开发过程变得更加方便。

    现在,MQ5的主程序文件并不作为项目出现。项目是一个单独的 "MQPROJ "文件,它存储了程序设置、编译参数和所有使用的文件的信息。主项目设置可以从一个单独的对话框中访问,所以现在不需要在源代码中通过#property指定它们。

    在导航器中提供了一个单独的标签,以方便项目中的工作。所有的文件,如include、resource、header和其他文件都在这个标签上被安排成不同的类别。所有的文件都会自动添加到项目导航器中。例如,如果你包括一个新的MQH文件,它将自动出现在导航器的 "依赖 "部分。

    对新项目的支持也已在更新的MQL5存储在线库中实现。现在,通过与MQL5.社区的其他成员合作开发大型项目已经变得更加方便。

    为小组项目提供了新的共享项目部分。在该部分创建的项目会立即被发送到存储空间:你可以授予其他用户权限,并立即开始协作。




    当你在共享项目中编译一个项目时,一个可执行的EX5文件会自动复制到本地的Experts、Indicators或Scripts目录中,具体取决于程序类型。你可以轻松地在图表上启动程序,而不需要手动复制文件。


    MQL5存储操作中的新内容

    为了实现对新的共享项目的支持,我们已经修改了与MQL5存储的操作协议。因此,您需要在平台更新后对存储的所有数据进行结帐。在更新期间,存储在MQL5存储的数据不会丢失或受到影响。

    在将平台更新到新版本之前,我们建议您执行提交操作,将所有的本地更改发送到MQL5存储库中。

    现在,'从存储区结帐'命令不可用。相反,'激活MQL5存储'和'从存储更新'命令被用来接收数据。

    • 如果您在当前的MetaEditor实例中没有使用过MQL5存储,请在导航窗口的上下文菜单中点击'激活MQL5存储'。存储器中所有可用的目录和文件将被上传到您的本地计算机。
    • 如果你已经在使用存储,点击某个项目的上下文菜单中的 "从存储更新文件 "或导航窗口中的根MQL5元素,从存储中接收数据。

    新项目。创建和操作细节的例子

    在MetaEditor中增加了一个新的项目实体。一个项目是一个mqproj文件,它存储了共同的程序属性和所有使用的文件的信息。现在,可以通过一个单独的MetaEditor对话框方便地管理程序属性,而不是手动修改源代码中的属性(使用#属性指令)。

    如果你有可用的代码,你可以通过使用 "从源代码新建项目 "命令轻松地测试新项目。




    在选定文件所在的目录中,将创建一个具有相同名称和mqproj扩展名的新项目文件。在源代码中通过#property指定的主要程序属性将被自动添加到项目中,包括名称、版权、版本、开发者网站的链接和程序描述。

    项目文件中的程序属性集比程序代码中指定的属性有更高的优先权。如果在项目和源文件中都指定了属性,将使用项目中的属性。




    项目属性中增加了两个新的选项,用于编译MQL5程序。

    • 启用额外的优化:禁用优化的应用程序编译得更快,但执行得更慢。
    • 检查浮点除法:禁用检查的应用程序工作得更快一些,因为在代码执行期间不检查零除法错误。

    为了处理项目,在导航器窗口中使用单独的项目标签。一个项目中使用的所有文件都以一种方便的形式显示在这个标签上。当一个项目从源文件生成时,所有使用的包含文件(在主MQ5文件和它的包含文件中使用#include目录指定)会自动添加到依赖关系部分。

    当一个新的包含文件被添加到源代码中,它也会出现在项目导航器中。使用的头文件被添加到头文件部分;图像、声音和项目中作为资源使用的其他MQL5程序被添加到资源部分。带有源代码的MQ5文件会显示在Source部分。在 "设置和文件 "部分,您可以添加其他文件,如用于测试和图表模板的设置文件。

    使用上下文菜单命令将现有文件添加到项目中或从项目中删除文件。删除文件时要小心,因为你可以从项目中删除一个文件(删除绑定)或从硬盘中完全删除它。




    创建一个新的项目就像创建一个正常的MQL5程序一样简单。点击 "新项目",选择新程序的类型,在MQL5向导中指定属性(如名称、事件处理程序等)。

    要获得一个可执行的EX5文件,你可以打开项目并按F7(编译命令)或打开程序的主MQ5文件并编译它。


    在MQL5存储中共享项目。操作细节

    共享项目是从一个单独的共享项目部分进行管理的。如果您还没有连接存储,从所需文件夹的上下文菜单中执行 "激活MQL5存储 "命令。MetaEditor将检查您的存储是否包含任何已保存的数据,以及是否有任何共享项目可供您使用。所有可用的数据将被从存储中检索出来,并上传到您的电脑上(结账操作)。可用的小组项目出现在共享项目部分。要检索这些项目,请在上下文菜单中执行 "从存储器中签出"。

    要创建一个新的组项目,选择共享项目文件夹并点击 "新项目"。




    然后完成标准的MQL5步骤:设置所需程序的类型、名称和属性。对于小组项目,你应该使用清晰易懂的名称,这样其他参与者可以很容易地找到它们。项目名称中只能使用不带空格的拉丁字母和数字。

    创建的对象会立即被添加到MQL5存储器中。项目中使用的标准库 文件不会被添加到存储中,你可以手动添加它们。

    要允许其他参与者使用该项目,请打开其属性。从这里,您可以通过指定他们的MQL5.community登录,将权限授予选定的用户,以及为小组工作设置通用参数。

    • 私人项目
    • 免费加入的项目
    • 按要求加入项目




    当你编译一个组项目时,可执行的EX5文件会根据程序类型自动复制到本地的Experts、Indicators或Scripts目录中。它允许你立即在终端中运行程序,而不必手动复制到适当的目录中。


    MQL5存储中的公共项目。参与开发

    如上所述,MQL5存储中的每个小组项目都有宣传设置:该项目可以是私人的,也可以对其他用户开放。现在,所有您可以自由加入的项目都显示在单独的 "公共项目 "标签中。

    每个人都可以找到一个令人兴奋的项目,并参与其发展。只需点击 "加入",就可以从存储器中接收项目。




    每个加入的用户都得到只读的权利。联系项目作者,以便能够提交你的修改。要知道他或她的登录名,通过上下文菜单打开项目属性。

  2. 终端。现在,交易平台允许创建合成金融工具,即基于一个或多个现有工具的符号。用户应设置计算报价的公式,之后平台将实时生成合成工具的刻度,并将创建其分钟历史。


    它是如何工作的

    • 您创建一个合成工具并设置价格计算公式。
    • 平台以每秒10次的频率计算点数,前提是公式中使用的至少一个工具的价格发生了变化。
    • 该平台还根据其公式中使用的工具的分钟条,计算一分钟条的历史(过去两个月)。所有新的条形图(当前和随后的条形图)都是根据合成工具的生成的ticks实时建立的。

    例如,你可以创建一个显示美元指数(USDX) 的工具。它使用下面的公式。

    50.14348112 * pow(ask(EURUSD),-0.576) * pow(USDJPY,0.136) * pow(ask(GBPUSD),-0.119) * pow(USDCAD,0.091) * pow(USDSEK,0.042) * pow(USDCHF,0.036)

    注意:美元EUR和USDGBP对在源美元指数公式中使用。由于平台中只有反向货币对,所以在合成符号公式中使用了一个负的功率和Ask而不是Bid。

    该平台将根据您的经纪人提供的其他六个符号的报价,实时计算新工具的价格。价格变化将在市场观察窗口和图表上显示出来。




    创建一个新的自定义符号,打开它的规范并输入公式。




    为方便起见,公式编辑器在你输入符号和函数的名称时,会显示一个可能的选项列表。

    当合成工具被添加到市场观察中时,就开始计算该工具的点和一分钟条。同时,合成价格计算所需的所有符号会自动添加到市场观察中。关于计算开始的条目将被添加到平台日志中。合成符号USDX:处理开始。
    • 合成工具的计算在它被从市场观察中删除后停止。
    • 目前用于计算合成符号价格的符号不能从市场观察中隐藏。

    报价的实时计算
    每100毫秒(即每秒10次)就会检查计算中使用的符号的价格。如果其中至少有一个发生了变化,就会计算合成符号的价格,并生成一个新的tick。计算是在三个线程中并行进行的,分别是买入价、卖出价和最后价格。例如,如果计算公式为EURUSD*GBPUSD,合成符号的价格将被计算如下。

    • 买入=买入(EURUSD)*买入(GBPUSD)
    • 问价 = 问价(EURUSD)*问价(GBPUSD)
    • 最后=最后(EURUSD)*最后(GBPUSD)

    变化的可用性是针对每个价格单独检查的。例如,如果只有源工具的买入价发生了变化,那么将只计算合成工具的适当价格。

    创建分钟条的历史
    除了实时收集ticks外,该平台还创建了合成工具的分钟历史。它使交易者能够查看与正常图表相似的合成符号图表,以及使用对象和指标进行技术分析。

    当交易者将合成工具添加到市场观察中时,平台会检查其计算的分钟历史是否存在。如果不存在,将创建过去60天的历史,其中包括约50,000条。如果在平台设置中的 "图表中的最大条数 "参数中指定了一个较低的值,则将适用适当的限制。

    如果在此期间的一些条形图已经被创建,平台将额外生成新的条形图。如果用户试图在图表上查看一个较早的时间段(通过向后滚动或从MQL5程序访问它),则会创建一个更深的历史。

    合成工具的一分钟条形图的历史是根据其公式中使用的工具的一分钟条形图(不是点)计算的。例如,为了计算一个合成符号的1分钟条形的开盘价,平台使用其公式中使用的符号的开盘价。最高价、最低价和收盘价的计算方法类似。

    如果任何一个工具没有所需的条形图,平台将使用前一个条形图的收盘价。例如,使用三个工具。欧元兑美元、美元兑日元和英镑兑美元。如果在计算对应于12:00的条形图时,所需的USDJPY条形图不可用,将使用以下价格进行计算。

    • 开盘。欧元兑美元开盘12:00,美元兑日元收盘11:59,英镑兑美元开盘12:00
    • 高点:欧元兑美元高点12:00,美元兑日元收盘11:59,英镑兑美元高点12:00
    • 低点:欧元兑美元低点12:00,美元兑日元收盘11:59,英镑兑美元低点12:00
    • 收盘。欧元兑美元收盘12:00,美元兑日元收盘11:59,英镑兑美元收盘12:00

    如果公式中使用的所有工具都没有分钟条,那么合成工具的相应分钟条将不会被计算。

    绘制新的分钟条
    所有合成工具的新条形图(当前和后续条形图)都是根据生成的ticks创建的。用于建立条形图的价格取决于规范中的图表模式参数的值。





    符号公式中可以使用哪些操作
    由经纪人提供的价格数据和现有符号的一些属性可用于计算合成价格。指定以下内容。

    • 符号名称 - 根据要计算的合成价格,将使用指定工具的买入、卖出或最后价格。例如,如果指定了EURUSD*GBPUSD,Bid计算为bid(EURUSD)*bid(GBPUSD),而Ask=ask(EURUSD)*ask(GBPUSD)。
    • bid(符号名称) - 指定符号的买入价将被强制用于计算合成工具的买入价。这个选项类似于前一个选项(没有指定价格类型)。
    • ask(符号名) - 指定符号的卖出价将用于计算合成工具的买入价。指定工具的买入价将被用于计算卖出价。指定符号的最后价格将被用于计算最后价格。如果指定了ask(EURUSD)*GBPUSD,将使用以下计算。
      • Вid = ask(EURUSD)*bid(GBPUSD)
      • Ask = bid(EURUSD)*ask(GBPUSD)
      • Last = last(EURUSD)*last(GBPUSD)
    • last(符号名称) - 指定符号的最后价格将用于计算合成工具的所有价格(买入、卖出和最后价格)。如果指定last(EURUSD)*GBPUSD,将使用以下计算方式。
      • Вid = last(EURUSD)*bid(GBPUSD)
      • Ask = last(EURUSD)*ask(GBPUSD)
      • 最后=最后(EURUSD)*最后(GBPUSD)
    • volume(symbol name) - 公式中会使用指定工具的tick volume。请确保该符号的成交量信息是由经纪人提供的。
    • point(符号名称) - 在计算中,将使用指定工具的最小价格变化。
    • digits(symbol name) - 在公式中,将使用指定符号价格的小数位数。

    如果一个符号有一个复杂的名称(包含连字符,点等),它必须写在引号里。例如。"RTS-6.17"。
    下列算术运算可以在公式中使用:加法(+),减法(-),乘法(*),除法(/)和除法的余数(%)。例如,EURUSD+GBPUSD意味着价格被计算为EURUSD和GBPUSD的价格之和。你也可以使用单数减号来改变符号,例如:-10*EURUSD。

    注意算术操作的计算优先级。

    • 首先进行乘法、除法和余数的操作;然后进行加法和减法操作。
    • 这些操作从左到右进行。如果公式中使用了几个具有相同优先级的操作(例如,乘法和除法),左边的操作将被首先执行。
    • 你可以使用括号(和)来改变操作的优先级。括号内的操作在计算中具有最高的优先级。从左到右的原则也适用于它们:括号内左边的运算会先计算。

    你可以在公式中使用常数。

    • 数值(整数和浮点数)。例如。eurusd*2+gbpusd*0.7。
    • 符号属性_Digits和_Point。他们在公式中加入了规范中自定义符号的适当属性。_Digits指的是工具价格的小数点后的数字;_Point指的是符号价格的最小变化。

    您还可以在公式中使用MQL5中支持的所有数学函数,除了MathSrand、MathRand和MathIsValidNumber。所有的函数都只使用简短的名称,如fabs()、acos()、asin()等。

  3. 终端。实现了一个新的选项,允许实时添加自定义工具的报价。现在,可以开发一个MQL5专家顾问,为指定的自定义符号提供报价。CustomTicksAdd 函数就是用于此。
    int  CustomTicksAdd(
       const string           symbol,       // Symbol name
       const MqlTick&         ticks[]       // The array with tick data that should be applied to the custom symbol
       );
    CustomTicksAdd功能允许提供报价,就像这些报价是从经纪人的服务器上收到的一样。数据被发送到市场观察窗口,而不是直接写入tick数据库。然后,终端从Market Watch中保存ticks到数据库中。如果在一次调用中传递了大量的数据,为了节省资源,函数行为会发生变化。如果传输的点数超过256,数据会被分成两部分。一个较大的部分直接记录到tick数据库中(类似于CustomTicksReplace)。第二部分由最后128个刻度线组成,被发送到市场观察,终端从那里将刻度线保存到数据库中。

  4. MQL5。新的在线服务MQL5云保护器已被添加,为MQL5程序提供额外的保护。保护类似于在最大的交易应用程序商店MetaTrader Market 中使用的选项,卖方提交的EX5产品文件被额外编译为本地代码。

    现在,这种类型的保护对所有平台用户都可用。为了保护您的文件,在MetaEditor中执行以下命令。工具-MQL5云保护器。MQL5云保护器与市场中使用的机制的唯一区别是,文件没有链接到用户的计算机。通过MQL5云保护器保护的文件可以在任何计算机上运行,类似于普通的EX5文件。
    MQL5云保护器是一项安全服务。额外的保护只适用于一个编译的文件。源代码不会被传递给服务。在第一步,程序被编译为用户计算机上的EX5文件;之后,编译的文件通过加密通道被发送到服务,在那里被保护并返回给用户。



  5. 终端。市场观察窗口现在增加了最高价和最低价。这些栏目在默认情况下是隐藏的。它们可以通过上下文菜单启用。




    如果符号图是用买入价构建的(根据规格设置),则显示该符号的买入高价和买入低价。如果符号图是用最后价格构建的,则显示该符号的最后高价和最后低价。

    如果市场观察包含至少一个符号,其图表是根据最后价格绘制的,那么除了最高价/最低价之外,最后一栏也自动启用。

  6. 终端。现在可以编辑自定义金融工具的tick历史。在Market Watch的上下文菜单中点击 "符号",选择一个自定义的符号,并在Ticks标签中申请所需的数据间隔。

    • 双击来改变数值。
    • 使用上下文菜单来添加或删除条目。
    • 如果你需要一次删除多个条形图/刻度,请用鼠标选择它们,按住Shift或Ctrl+Shift。




    为方便起见,修改后的条目突出显示如下。

    • 绿色背景表示一个修改过的条目
    • 灰色背景表示一个被删除的条目
    • 黄色背景表示增加了一个条目

    要保存这些修改,请点击窗口底部的 "应用修改"。

  7. 终端。在导航仪树中增加了初步账户的显示。

    交易者可以直接从桌面终端向经纪商发送请求,开立真实账户。用户需要填写一个简单的请求表,并提供联系信息。之后就会为交易者创建一个特殊的初步账户。然后,经纪商与交易商联系,正式确定关系,并从初步账户转为真实账户。




  8. 终端。在报价窗口中增加了以毫秒为单位的时间显示。





  9. 终端。在新账户开立对话框中扫描可用的服务器变得更快。
  10. 终端。在启用Ray Left和Ray Right选项的情况下,固定显示趋势线图形对象。
  11. 终端。优化了有大量内部邮件(数十万封)的操作。
  12. 终端。优化的终端操作与大量的交易工具(50,000或更多)。
  13. 终端。增加了对编辑历史记录后执行的自定义金融工具的刻度历史的优化。
  14. MQL5。增加了用于处理自定义金融工具 的新功能。

    功能 操作
    自定义符号创建 在指定的组中创建一个具有指定名称的自定义符号。
    自定义符号删除 删除一个具有指定名称的自定义符号
    自定义符号SetInteger 为一个自定义符号设置整数类型的属性值
    自定义符号设置双数 为一个自定义符号设置实数类型的属性值
    自定义符号SetString 为自定义符号设置字符串类型的属性值
    自定义符号SetMarginRate 根据订单类型和方向,为自定义符号设置保证金率。
    自定义符号设置会话报价 设置指定符号和星期的指定报价时段的开始和结束时间
    自定义符号设置交易时段(CustomSymbolSetSessionTrade 设置指定符号和工作日的指定交易时段的开始和结束时间。
    删除价格历史 在指定的时间间隔内,从自定义符号的价格历史中删除所有条形。
    自定义汇率替换 用MqlRates类型数组中的数据完全替换指定时间间隔内的自定义符号的价格历史记录
    自定义汇率更新(CustomRatesUpdate 向自定义符号历史添加缺失的条形,并用来自MqlRates类型数组的数据替换现有数据
    CustomTicksAdd 将来自MqlTick类型数组的数据添加到自定义符号的价格历史中。该自定义符号必须在Market Watch窗口中被选中。
    CustomTicksDelete 从自定义符号的价格历史中删除指定时间间隔内的所有点位
    替换自定义符号 在指定的时间间隔内,用MqlTick类型数组的数据完全替换自定义符号的价格历史。

  15. MQL5:在标准库中增加了通用数据集合。它们包含了用于定义基于模板 的集合的类和接口。新的强类型集合提供了更大的应用开发便利和高数据处理性能。

    该库被放置到终端工作目录的Include\Generic文件夹中。

  16. MQL5。增加了对联合 数据类型的模板支持。
  17. MQL5。增加了SYMBOL_VISIBLE交易工具属性。如果指定的符号在市场观察中不可见,调用SymbolInfoInteger(symbol, SYMBOL_VISIBLE)返回错误。
  18. MQL5。添加了新的CHARTEVENT_MOUSE_WHEEL属性。当鼠标滚轮在图表上滚动或按下时,该事件被调用(如果图表的CHART_EVENT_MOUSE_WHEEL=true)。
  19. MQL5。添加了以下图表属性

    • CHART_EVENT_MOUSE_WHEEL - 启用/禁用CHARTEVENT_MOUSE_WHEEL(鼠标在图表上滚动和点击事件)的生成。可能的值。0和1。
    • CHART_CROSSHAIR_TOOL - 启用/禁用通过中间点击将光标切换到十字线模式的可能性。可能的值。0和1。
    • CHART_CONTEXT_MENU - 启用/禁用右键点击来显示图表的上下文菜单。可能的值。0和1。

  20. MQL5:现在,在计算指标窗口比例时,具有DRAW_NONE风格 的绘图缓冲区不会被考虑在内。
  21. MQL5:当设置图表的CHART_SCALEFIX(固定比例)属性时,增加了CHARTEVENT_CHART_CHANGE 事件的生成。
  22. MQL5:增加了ArraySwap函数,允许快速交换动态数组的内容。
    bool  ArraySwap(
       void&  array1[],      // The first array
       void&  array2[]       // The second array
       );
    该函数接受相同类型和相同维度的动态数组。对于多维数组,除了第一个维度外,所有维度中的元素数量都应该匹配。

  23. MQL5。增加了新的属性TERMINAL_RETRANSMISSION--在给定的计算机上所有运行的应用程序和服务的TCP/IP协议 中,重发网络数据包(重传)的百分比。即使在最快和正确配置的网络中也会发生丢包。在这种情况下,收件人和发件人之间没有确认数据包的交付。因此,丢失的数据包被重新发送。

    终端不计算这个值。它是每分钟从操作系统请求一次。它不是一个特定终端和交易服务器之间连接质量的指示,因为这个百分比是针对整个网络活动计算的,包括系统和后台活动。

    TERMINAL_RETRANSMISSION属性被添加到ENUM_TERMINAL_INFO_DOUBLE枚举中,TerminalInfoDouble 函数被用来获取它。
  24. MQL5。优化了与交易历史的工作。
  25. 信号。在根据信号强制平仓的情况下,固定显示订单填充类型。在信号复制选项中提供了 "如果账户低于XXX美元则停止 "的选项:如果股票跌到指定水平以下,交易信号的复制将自动终止,所有头寸被关闭。早些时候,在强制平仓的情况下,可能会给平仓单设置不正确的填充类型。现在,终端检查符号设置中允许的填充类型,并指出一个适当的选项。
  26. 测试者。策略测试器中的HistoryOrderSelect 函数的行为现在与客户终端中的相同函数相一致。
  27. 测试器。策略测试器中的CopyTicksCopyTicksRange 函数的行为现在与客户终端的相同函数相对应。
  28. 测试器。优化了视觉测试中图形对象的显示。
  29. 测试器。固定显示交易所工具的测试结果(使用交易所风险管理模型)。现在,图表只显示权益,而不显示余额和存款负荷。这类账户的交易状态是根据权益水平评估的。余额只显示账户上的资金数额,而忽略了交易者的资产和负债。存款负荷(保证金/权益)不显示,因为在交易所的计算模式中,保证金等于资产/负债的当前折现值,而且它随着权益的变化而变化。
  30. 元编辑器。增加了在程序代码中轻松插入属性和资源的功能。例如,你可以快速向代码中添加一个包含的文件。使用命令 "Insert-MQH as #incude",并选择需要的包含文件。带有所选文件正确路径的#include指令将被插入到程序代码中。




    同样的菜单允许以二进制或文本阵列的形式添加到程序代码文件中。其中,你可以将图表模板与专家顾问或指标一起传输:将模板作为数组插入程序代码中,然后使用FileSave功能将其保存到磁盘。此后,可以使用ChartApplyTemplate功能将模板直接应用到所需的图表中。
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
    //--- Template file as a binary array
       unsigned char my_template[]=
         {
          0xFF,0xFE,0x3C, ... ,0x00 // The data array in this example is shortened
         };
    //--- Saving and applying the template
       if(FileSave("my_template.tpl",my_template))
         {
          Print("Custom template saved in \\MQL5\\Files");
          if(ChartApplyTemplate(0,"\\Files\\my_template.tpl"))
             Print("Custom template applied to the current chart");
          else
             Print("Failed to apply custom template");
         }
       else
          Print("Failed to save custom template");
      }

  31. MetaEditor。增加了一个在ASCII、HEX和Base64格式之间转换字符串的选项。在源代码中选择一行,在编辑-转换菜单中点击需要的命令。




  32. MetaEditor:修正了文件中不区分大小写的搜索。
  33. MetaEditor:修正了一个调试器错误,在计算类似于x.y[0][1].z的表达式时可能会出现。
  34. MetaEditor。修正了使用前进和后退按钮的代码导航。
  35. 用户界面现在也有了荷兰语版本。
  36. 更新了文档。

该更新将通过实时更新系统提供。


 

苳迮迡迮訄邽邽, 苳迮迡迮訄邽邽, 苳迮迡迮訄邽邽, 苳迮迡迮訄邽邽, 苳迮迡迮訄邽邽, 苳迮迡迮訄邽邽, 苳迮迡迮訄邽邽, 苳迮迡迮訄邽邽, 苳迮迡迮訄邽邽, 苳迮迡迮訄邽邽.

关于 "中国 "的问题

Renat Fatkhullin, 2017.12.28 16:51

我完全忘记了--我们将在1月份发布新的通信系统,用于通信。

这是Telegram的类似物,包括频道和小组(公共和私人)。

它将有可能启动主题组,包括付费组。

例如,通过订阅分发理论内容。 非常强调终端的数据交换。这将使图表、档案、设置、程序等的交换更快、更方便。

 
Sergey Golubev:
谢尔盖先生,你不认为这将造成很多分离和隔离,使论坛上的自由知识受到影响。因为现在人们要想获得知识,就必须要订阅!
 

关于MT5,它现在很强大,很有前途。我打算明年迁移到MT5,我想问一下关于 "合成公式和自定义符号 "的问题,假设我的经纪人不提供我选择创建的自定义符号,我可以在这些符号上开立交易并赚取利润/损失,它是否会被添加/扣除到我的余额中?

 

为MetaTrader 5创建一个自定义新闻源


MetaTrader 5有许多交易者需要的有用功能,无论他们的交易风格如何,包括可能访问实时新闻源。它为交易者提供了宝贵的背景,可能对市场产生一些影响。唯一的限制是所提供的新闻的范围。我相信,交易者可以从访问更灵活的新闻源中受益,不仅能够选择新闻的种类,而且能够选择其来源。