MetaTrader 5 Build 1570:改进市场展示,扩展MQL5模板函数

MetaTrader 5新功能

24 三月 2017

程序端

  1. 更新MetaTrader 市场商店的应用程序展示。现在,您可以更加方便的浏览EA交易和技术指标。我们更新了界面设计并添加了产品选择:

    • 现在,主界面可以显示最受欢迎的EA交易,指标,新的市场产品以及热门的免费应用程序。
    • EA交易,指标和实用工具版块还有其分版块:网格和锁仓EA交易,趋势和多货币指标以及更多内容。



  2. 修正当使用有权限限制的Windows账户时的客户端更新和市场、信号及虚拟主机的内置购买。
  3. 修正偶然发生的持仓历史的错误分类。
  4. 优化和修正展示标签的显示。

MQL5:

  1. 添加支持使用参数重载模板函数。例如,我们有一个通过类型转换将第二个参数的值写入第一个参数的模板函数。MQL5不允许string到bool的类型转换。但是,我们可以自己完成。让我们创建一个模板函数的重载:
    //+------------------------------------------------------------------+
    //| 模板函数                                     |
    //+------------------------------------------------------------------+
    template<typename T1,typename T2>
    string Assign(T1 &var1,T2 var2)
      {
       var1=(T1)var2;
       return(__FUNCSIG__);
      }
    //+------------------------------------------------------------------+
    //|  bool+string的特殊重载                            |
    //+------------------------------------------------------------------+
    string Assign(bool &var1,string var2)
      {
       var1=(StringCompare(var2,"true",false) || StringToInteger(var2)!=0);
       return(__FUNCSIG__);
      }
    //+------------------------------------------------------------------+
    //| 脚本起始函数                                        |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       int i;
       bool b;
       Print(Assign(i,"test"));
       Print(Assign(b,"test"));
      }
    代码执行后,我们可以看到Assign() 模板函数已被用于int+string组,而重载版也已在第二次调用时用于bool+string组。
    string Assign<int,string>(int&,string)
    string Assign(bool&,string)

  2. 新增模板函数的显式规范。因此,在调用函数列表之前,请先指定代表参数:
    template<typename T>
    T Func() { return (T)0; }
      
      
    void OnInit()
      {
       Func<double>();   // 模板函数显式规范
      }
    因此,类型的显式规范将会执行代表参数而非调用参数。

  3. 优化DRAW_ZIGZAG 绘制类型的自定义指标的显示。
  4. 添加新值到ENUM_DEAL_TYPE交易类型枚举:

    • DEAL_DIVIDEND — 股息操作。
    • DEAL_DIVIDEND_FRANKED — 税务减免(免税)股息操作(公司缴纳税费,而非客户)。
    • DEAL_TAX — 收税。

  5. 修正DRAW_FILLING绘制类型的自定义指标的显示。如果上下线坐标一致,绘制细线。
  6. 修正CHART_SHOW参数设置为'false'时计算位图标签对象坐标。参数通过ChartSetInteger函数来设置并允许隐藏全部价格图表元素来创建一个自定义程序界面。
  7. 修正将24位图像置于MQL5应用程序资源时的重新编码。
  8. 修正使用ArrayPrint函数的印刷结构。
  9. 更新MQL5标准程序库。

MetaEditor

  1. 新增马来语的用户界面翻译。

信号

  1. 修正在MQL5.community网站移动但没有连接交易账户时打开程序端的信号页面的问题。

Tester

  1. 修正策略测试中的CopyTicks函数操作。
  2. 修正生成报告时排序出金交易。
  3. 修正更改挂单。

主机

  1. 修正超高清屏幕(4К)上虚拟主机向导的显示。

更新文档。