如何开始使用Metatrader 5 - 页 124

 

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

新的MetaTrader 5平台构建2170。MQL5范围、全球策略测试器和内置虚拟主机更新

MetaQuotes软件公司。, 2019.10.03 15:18

MetaTrader 5平台的更新将于2019年10月4日(星期五)发布,新版本具有以下变化。

  1. 终端。完全重新设计的内置虚拟主机 管理选项。所有关于租用终端的信息,以及环境迁移、停止和启动功能,现在都可以在工具箱窗口的一个单独的标签中找到。

    在早期版本中,虚拟主机功能可在导航窗口的上下文菜单中找到。现在所有必要的信息和控制命令都方便地安排在 "VPS "标签下。




    基本订阅信息出现在左侧。

    • 连接数据:比较您在托管服务器上的终端和在本地PC上运行的终端之间的网络延迟。
    • 租用主机的交易账户和支付计划。
    • 独特的订阅标识符。点击ID可以打开MQL5.community用户资料中的托管部分,从那里可以管理订阅。
    • 注册日期和当前状态。如果托管服务被停止,这里会立即出现一个适当的状态。

    使用启动/停止按钮,可以快速启动或停止虚拟终端。

    关于托管服务器硬件和CPU消耗图表的数据显示在右侧窗口部分。根据显示的信息,如果你的专家顾问或指标利用了过多的内存或CPU时间,你将能够及时作出反应。

    这里也有关于上一次交易环境迁移的信息以及迁移命令。 这些命令可以在购买订阅后实现快速的环境迁移。

    一个虚拟平台可以从 "VPS "选项卡中租用。租用过程没有改变,仍然是快速和简单。 你只需要选择一个计划和一个合适的支付方式。连接到你的经纪人的最佳服务器将被自动选择。




  2. 终端。增加了在经纪人网站上快速切换到入金/出金操作的能力。

    不需要在经纪商网站的交易室中搜索相应的功能。快速导航命令可直接在终端中使用:在导航器的账户菜单和工具箱>交易标签中。



    • 只有在经纪人方面为交易账户启用了适当的功能,才可以进行存款/提款操作。
    • 交易终端不进行任何账户存款/取款操作。综合功能将用户重定向到相应的经纪人网站页面。
  3. 终端。交易符号规范中的新字段。

    类别
    该属性用于金融工具的额外标记。例如,这可以是该符号所属的市场部门:农业、石油和天然气及其他。只有在经纪人提供适当信息的情况下才会显示该类别。

    交易所
    证券交易的交易所的名称。只有在经纪人提供适当信息的情况下才会显示该类别。

    佣金
    经纪人对符号交易收取的佣金信息。计算细节显示在这里。

    • 佣金可以是单级和多级的,也就是说,无论交易量/营业额如何,都是相等的,或者可以取决于规模。 适当的数据会显示在终端。
    • 佣金可以在交易执行后立即收取,也可以在交易日/月末收取。
    • 佣金可以根据交易方向收取:进入、退出或两种操作类型。
    • 佣金可以按手或交易收取。
    • 佣金可以用金钱、百分比或点数来计算。

    例如,下面的条目意味着在交易进入和退出时立即收取佣金。如果交易量在0到10手之间,每次操作收取1.2美元的佣金。如果交易量在11到20手之间,每笔交易收取1.1美元的佣金。
    Commission | Instant, volume, entry/exit deals
    0  - 10  | 1.2 USD per deal
    11 - 20  | 1.1 USD per lot



  4. 终端。符号规范中增加了额外的期权 相关字段。

    • 期权类型 - 看涨或看跌
    • 标的--期权的标的符号
    • 行使价格--期权的行使价格

  5. 终端。增加了对"希腊文"选项的支持。 delta, gamma, vega, theta, rho.经纪人可以提供与此类工具相关的额外信息。这些数据显示在 "市场观察 "窗口的细节部分,可用于高级交易分析。




  6. 终端。十字线工具现在可以显示价格水平之间的距离,除了以前可用的点数之外,还有百分比。




  7. 终端。在市场和交易所的执行操作中,如果在收到经纪人的回应时有这个价格,则在交易对话框中增加了显示结果的价格。




  8. 终端。修正了市场观察窗口中的 "显示全部 "命令可能无法显示所有可用交易工具列表的偶发错误。

  9. MQL5。范围操作已被修订,因此MQL5更接近于C++。这为MQL5程序员在与第三方库的操作中提供了更广泛的可能性。这次更新消除了修改库和统一标识符的需要。

    例子。代码中包含两个具有相同名称的结构的声明,尽管它们属于不同的类。在早期版本中,这样的声明会产生一个编译错误。"标识符已被使用"。现在这段代码将被成功编译和执行。为了从其范围之外正确访问所需的变量/结构/函数,你应该指定一个类(在本例中是CBar::Item)。
    class CFoo
      {
    public:
       struct Item { int x; };
      };
    //+------------------------------------------------------------------+
    class CBar
      {
    public:
       struct Item { int x; };
      };
      
    CBar::Item item;  // proper declaration of the Item structure from the Bar class
    Item       item;  // incorrect declaration
    增加了命名空间 支持,在MQL5应用程序中使用第三方代码/库时提供了更多的可能性。

    #define  PrintFunctionName() Print(__FUNCTION__)
    
    namespace NS
    {
    void func()
      {
       PrintFunctionName();
      }
    
    struct C
      {
       int               x;
                         C() { PrintFunctionName(); };
      };
    }
    
    struct C
      {
       int               x;
                         C() { PrintFunctionName(); };
      };
    
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    void func()
      {
       PrintFunctionName();
      }
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       func();
       NS::func();
    
       C c;
       NS::C ac;
      }
    在执行时,下面的结果将显示为输出。
    2019.09.18 13:39:35.947    TestScript (AUDCAD,H1)    func
    2019.09.18 13:39:35.949    TestScript (AUDCAD,H1)    NS::func
    2019.09.18 13:39:35.949    TestScript (AUDCAD,H1)    C::C
    2019.09.18 13:39:35.949    TestScript (AUDCAD,H1)    NS::C::C

  10. MQL5。新版本的特点是使用以下函数更快地访问时间序列数据:iTime, iOpen, iHigh, iLow, iClose, iVolume, iTickVolume, iSpread。

  11. MQL5。增加了对"=delete "属性 的支持。 它允许禁止使用某些类方法。
    class A
      {
       void              operator=(const A &)=delete;    // prohibit object copying operator
      };
    
    class B : public A
      {
      };
    
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       A a1,a2;
       B b1,b2; 
      
       a1=a2;
       b1=b2;
      }
    在这个例子中,编译器将对 "a1=a2 "和 "b1=b2 "返回错误。
    attempting to reference deleted function 'void A::operator=(const A&)'
       function 'void A::operator=(const A&)' was explicitly deleted here

    attempting to reference deleted function 'void B::operator=(const B&)'
       function 'void B::operator=(const B&)' was implicitly deleted because it invokes deleted function 'void A::operator=(const A&)'

  12. MQL5。在ENUM_SYMBOL_INFO_STRING 枚举中加入了以下数值。

    • SYMBOL_CATEGORY - 符号类别。它用于金融工具的额外标记。例如,这可以是该符号所属的市场部门。农业、石油和天然气及其他。
    • SYMBOL_EXCHANGE - 符号所交易的交易所名称。

  13. MQL5:增加了对FIFO规则的位置关闭的支持。

    • ACCOUNT_FIFO_CLOSE值已被添加到ENUM_ACCOUNT_INFO_INTEGER。 它表明只有通过FIFO规则才能平仓。如果该属性值为真,那么每个工具的头寸只能按照它们被打开的相同顺序关闭:最古老的一个应该被先关闭,然后是下一个,等等。如果试图以不同的顺序关闭头寸,将返回一个错误。对于没有对冲头寸管理的账户(ACCOUNT_MARGIN_MODE!=ACCOUNT_MARGIN_MODE_RETAIL_HEDGING),该属性值始终为 "false"。
    • 新的返回代码。MT_RET_REQUEST_CLOSE_ONLY- 请求被拒绝,因为该符号设置了 "只允许通过先进先出规则关闭现有头寸 "的规则。

    有三种主要的方法来关闭一个头寸。

    • 从客户终端平仓:交易员手动平仓,使用交易机器人,基于信号服务订阅,等等。如果试图关闭一个不符合先进先出规则的头寸,交易员将收到一个适当的错误。
    • 止损或止盈激活后的平仓:这些订单是在服务器端处理的,所以平仓不是在交易员(终端)端要求的,而是由服务器发起的。如果一个仓位的止损或止盈被触发,而这个仓位不符合先进先出规则(同一符号有一个较早的仓位),这个仓位将不会被关闭。
    • 触发止损后的平仓:此类操作也在服务器端处理。在正常模式下,基于FIFO的平仓被禁用,在止损的情况下,从损失最大的头寸开始关闭。如果该选项被启用,将额外检查亏损头寸的开仓时间。服务器确定每个符号的亏损头寸,找到每个符号的最老头寸,然后关闭找到的头寸中亏损最大的那个。

  14. 增加了通过 "输入组 "进行参数分组的选项。这使得参数可以根据其基本逻辑进行可视化分离。

    在下面的专家顾问代码中,输入参数是根据其目的分组的。
    input int             ExtBBPeriod    =20;         // Bollinger Bands period
    input double          ExtBBDeviation =2.0;        // deviation
    input ENUM_TIMEFRAMES ExtSignalTF    =PERIOD_M15; // BB timeframe
    
    input group           "Trend"
    input int             ExtMAPeriod    =13;         // Moving Average period
    input ENUM_TIMEFRAMES ExtTrendTF     =PERIOD_M15; // MA timeframe
    
    input group           "ExitRules"
    input bool            ExtUseSL       =true;       // use StopLoss
    input int             Ext_SL_Points  =50;         // StopLoss in points
    input bool            ExtUseTP       =false;      // use TakeProfit
    input int             Ext_TP_Points  =100;        // TakeProfit in points
    input bool            ExtUseTS       =true;       // use Trailing Stop
    input int             Ext_TS_Points  =30;         // Trailing Stop in points
    
    input group           "MoneyManagement"
    sinput double         ExtInitialLot  =0.1;        // initial lot value
    input bool            ExtUseAutoLot  =true;       // automatic lot calculation
    
    input group           "Auxiliary"
    sinput int            ExtMagicNumber =123456;     // EA Magic Number
    sinput bool           ExtDebugMessage=true;       // print debug messages
    当这样的专家顾问在策略测试器中启动时,输入参数块可以通过双击组的名称来折叠或展开,也可以通过一个复选框来选择组内的所有参数进行优化。




  15. MQL5。固定导入DLL函数,其名称与MQL5函数名称一致。例如。
    #import "lib.dll"
    int func();
    #import
    //+------------------------------------------------------------------+
    //|                                                                  |
    //+------------------------------------------------------------------+
    int func()
      {
       return(0);
      }
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       Print( func() );
      }
    在早期版本中,在编译过程中返回以下错误。
    'func' - ambiguous call to overloaded function with the same parameters
    could be one of 2 function(s)
       int func()
       int func()
    现在,代替了这个错误,具有更高优先级的内置MQL5函数将被默认使用。可以通过明确指定范围 来调用导入的函数。
    void OnStart()
      {
       Print( lib:: func() );
      }
  16. MQL5。在经济日历新闻中固定的时间规格。现在,事件的传递考虑到了终端所连接的交易服务器的时区,而不是本地计算机的时区。
  17. MQL5。修正了CopyticksCopyTicksRange 函数中的过度内存消耗。
  18. 信号。修正了在Wine(Mac OS和Linux)中工作时的信号图表显示。
  19. 测试器。大型策略测试器更新。新的开始页,重新设计的设置页,提高了可用性。

    开始页
    现在,在测试器启动后,用户看到的不是多种设置,而是一个标准任务列表,通过选择它们可以快速开始测试。新的设计主要是为没有经验的用户准备的。

    我们选择了最频繁的策略测试和优化任务,并将其添加到开始页中。 此外,以前执行的任务之一可以从开始页重新启动。如果你已经运行了很多任务,而它们不适合在开始页中出现,请使用搜索栏。你可以通过任何参数找到一个测试:程序名称、符号、时间范围、建模模式等。




    隐藏不相关的参数
    选择一个任务后,用户进入进一步的测试参数:选择一个专家顾问,符号,测试周期等。所有与所选任务不相关的参数都会从设置页面中隐藏。例如,如果选择数学计算,只需指定两个参数:选择要测试的程序和优化模式。测试周期、延迟和滴答生成设置将被隐藏。




    方便的测试设置
    为了方便,设置页面上的一些参数被重新安排。延迟和可视化参数增加了扩展解释。此外,测试设置现在可以手动保存和上传,因此交易者可以快速返回到以前的设置。




    使用同一标签,您可以在MetaEditor中快速打开程序进行编辑。

    以点数计算利润
    通过设置,您可以启用以点数计算的利润。这种模式加速了测试,同时不需要使用转换率重新计算利润到存款货币(因此也不需要下载相应的价格历史)。在这种模式下,掉期和佣金的计算被取消了。




    请注意,当以点计算利润时,交易量并不重要。只计算每笔交易的赢/输点数。在此模式下也不进行保证金控制。只用于快速和粗略的策略评估,然后用更精确的模式检查获得的结果。

    一般改进
    测试开始/停止按钮和进度条已被移至标签栏。 因此,用户可以从任何一个策略测试器部分控制这个过程。测试开始/停止命令也被添加到设置和输入部分的上下文菜单中。




  20. 测试器。优化图表现在可以显示在终端的主要工作区域,而不是显示在一个单独的策略测试器部分。这样,就有更多的空间可用于数据分析。三维可视化系统也得到了更新。




  21. 测试。为"市场观察中的所有符号"模式增加了优化缓存 的保存。
  22. 测试器。增加了测试缓存的保存。

    在早期版本中,只有在优化专家顾问系统时,执行的任务结果才被保存到文件中。现在,在单次测试中也会保存缓存文件,用户可以利用它随时返回到以前的计算结果,并查看统计数据、余额、净值和存款加载图。在未来的版本中,这个选项将实现测试结果的比较。

    要加载以前的测试结果,请使用新的测试器开始页:点击 "以前的结果 "并选择所需的网站。




  23. 测试仪。大大加快了测试和优化,包括使用MQL5云网络 进行的操作。
  24. 测试员。修复和优化了带有框架 的操作。
  25. MetaEditor。增加了配置代码样式器的能力。

    MetaEditor包括一个内置的代码风格器,它能按照采用的标准自动格式化程序文本。现在除了常用的风格外,还可以使用其他流行的标准。要做到这一点,请打开MetaEditor设置,选择需要的样式。




    可以为风格器额外设置以下参数。

    每个缩进的空间
    设置嵌套结构对齐时使用的空格数。
    if(condition)
      {
       //---
      }

    用空格替换制表符
    如果该选项被启用,样式器将用空格替换代码中的所有制表符。每个制表符的字符数在 "常规 "部分设置。

    删除空行
    启用该选项后,样式器将删除所有只有一个换行符的行。

    在逗号和分号后插入空格
    启用该选项后,样式器将用元素枚举的方式直观地分隔结构。例子。
    // before styling
     ParameterGetRange("InpX",enable,x_cur,x_start,x_step,x_stop);
    // after styling
    ParameterGetRange("InpX", enable, x_cur, x_start, x_step, x_stop);

    在声明操作符周围插入空格
    当该选项被启用时,样式器将在赋值、平等、比较和其他操作符周围插入空格。例子。
    // before styling
    if(x==1&y!=2)
      {
       int a=0;
      }
    // after styling
    if(x == 1 & y != 2)
     {
      int a = 0;
     }

  26. MetaEditor:"显示在导航器中 "命令已被添加到文件书签的上下文菜单中。因此,用户可以很容易地在编辑器的文件夹结构中找到为编辑而打开的文件。




  27. 元编辑器。修正了工具提示中'union'关键字的显示。
  28. 用户界面已被额外翻译成18种新语言。

    • 欧洲地区 - 瑞典语、立陶宛语、丹麦语、拉脱维亚语、爱沙尼亚语、塞尔维亚语、斯洛文尼亚语、斯洛伐克语、芬兰语、格鲁吉亚语
    • 亚洲地区 - 爪哇语、马拉地语、孟加拉语、旁遮普语、泰米尔语、泰卢固语
    • 非洲地区--斯瓦希里语、豪萨语

    平台界面现在有50种语言,这些语言有40多亿人在使用。

    要设置你的界面语言,请导航到终端顶部的 "查看/语言 "菜单。

  29. 文档已经更新。
  30. 基于崩溃日志的修复。

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


建立2170

建立2170

 
我更新了我的MT5一天,更新后我不能看到市场应用的指标的地方。
 
pawan sharma:
我更新了我的MT5一天,更新后我看不到市场应用程序的指标。

市场标签?

我认为 - 这取决于Windows的版本。
例如,我在Windows 8.1上有市场标签(但我在Windows Server 2008上没有)...
这可能取决于Windows的版本和Internet Explorer的版本。


 
Sergey Golubev:

市场标签?

我认为 - 这取决于Windows的版本。
例如,我在Windows 8.1上有市场标签(但我在Windows Server 2008上没有)...
这可能取决于Windows的版本和Internet Explorer的版本。


我有这个市场标签,直到昨天,但今天我得到了更新通知,我更新了我的MT5后,市场标签消失了,我使用win 7


屏幕截图

 
pawan sharma:

我在昨天之前一直有这个市场标签,但今天我收到了更新通知,我更新了我的MT5,之后市场标签就消失了,我用的是win7。



我可能记得,它宣布win7在未来将不再被支持。

 

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

新版本的MetaTrader 5 build 2170平台。MQL5中的作用域,策略测试器的全球更新和集成托管

Renat Fatkhullin, 2019/10/06 15:53

简而言之。

  1. MQL5编译器是不断发展和演变的

    它的任务是使代码更安全,更深入地分析问题领域。因此,随着每个版本的推出,越来越多的 "脏 "代码被捕获,而不是跳过。

    记得过去几年--总有人抱怨 "我的代码停止编译了,为什么警告出来了"。结果是,机器人代码只会变得更好。

  2. 做同样的签名,然后证明这是正常的,这是一个非常错误的策略,讨论这样的错误观念是没有意义的

  3. 在2170版本中,我们开放了完全成熟的命名空间

    这使我们有机会收紧坚果,并能对签名和名称的重叠进行更严格的控制。

  4. 对于库的作者来说,有两种方法--对函数进行适当的全面命名和/或通过类进行保护

    谁使用通用命名--它只是伤害了自己。而且,"让编译器以神话般的方式处理垃圾 "的想法是行不通的。 每个版本的编译器(主要是C ++)都会越来越多地与Cerberus合作,以显示和防止最大限度的垃圾和坦率的错误设计。

  5. 这个版本是最后一个发布32位版本的版本。

    在接下来的6个月里,我们将在安装程序中分发2170的32位版本,然后停止它。

  6. 从下周开始,我们将开始从MetaTrader 5编译器和终端移除对32位代码的支持

    这将使我们有机会实现一个准确的x64剖析器,以最小的失真,以及一个本地x64调试器。

 
我想提醒这篇文章 -
MetaTrader移动终端中的MetaQuotes ID
 
pawan sharma:
我更新了我的MT5,更新后我看不到市场上的指标应用。

我刚刚发现关于如何修复它。

去Metatrader的Journal里看建议。

我使用这个链接来安装最新的Internet Explorer。
https://www.microsoft.com/en-us/download/internet-explorer-11-for-windows-7-details.aspx
我得到了市场标签 -

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

所以,如果你在Metatrader的最新版本中没有看到市场选项卡(或者如果你在这个市场选项卡上有错误,例如)--安装(或者重新安装)Internet Explorer到最新版本(例如到11版本)。

 

我是MQ5的新手,请问我该如何开始工作?

 
adogbeji collins:

我是MQ5的新手,请问我该如何开始工作?

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

什么是100% Algo Trader?我想成为Algo交易员,这怎么可能?

Sergey Golubev, 2019.10.14 13:17

  1. 我从哪里开始?
    https://www.mql5.com/en/forum/212020
  2. 如何在论坛上进行搜索
    https://www.mql5.com/en/forum/193510
  3. 你会自动交易吗?
    https://www.mql5.com/en/forum/9950/page76#comment_2743406
  4. MetaTrader 5帮助 →算法交易,交易机器人