---
title: "MetaTrader 5平台Build 1455：MQL5 的数学函数库 - 更新历史"
description: "在交易对话框添加买入，卖出和关闭按键的工具提示。工具提示包括操作期间买入或卖出安全性的信息，以帮助新手了解交易的过程。 在“交易”和“历史”标签添加订单，交易和持仓的新图标。... - 更新历史"
image: "https://www.metatrader5.com/c/17/0/2__4.png"
url: "https://www.metatrader5.com/zh/releasenotes/terminal/1384"
---

# MetaTrader 5平台Build 1455：MQL5 的数学函数库

## 在交易对话框添加买入，卖出和关闭按键的工具提示。工具提示包括操作期间买入或卖出安全性的信息，以帮助新手了解交易的过程。 在“交易”和“历史”标签添加订单，交易和持仓的新图标。 更新的程序端提供了优化及更快（最高加速4-5倍）的市场深度，市场深度报价图表以及成交时间&交易量数据的展示和更新。

14 十月 2016

### 程序端

1. 在交易对话框添加买入，卖出和关闭按键的工具提示。工具提示包括操作期间买入或卖出安全性的信息，以帮助新手了解交易的过程。

   ![](https://www.metatrader5.com/c/17/0/1__4.png)
2. 在“交易”和“历史”标签添加订单，交易和持仓的新图标。

   ![](https://www.metatrader5.com/c/17/0/2__4.png)
3. 更新的程序端提供了优化及更快（最高加速4-5倍）的市场深度，市场深度报价图表以及成交时间&交易量数据的展示和更新。
4. 修正非交易时间报价历史的同步。这一过程在某些情况下可能会消耗过多的网络流量。

### MQL5

1. 标准程序库中加入了MQL5版的[ALGLIB数值分析库](https://www.alglib.net/) 。

   **程序库特点**

     - 线性代数
     - 线性和非线性方程组
     - 插值
     - 优化
     - 快速傅里叶变换
     - 数值积分
     - 线性和非线性最小平方拟合
     - 常微分方程
     - 特殊函数
     - 描述性统计和假设测试
     - 数据分析 - 分类，回归
     - 多种精确算法中的线性代数，插值等的实施算法（使用MPFR）

   **如何使用**

   ALGLIB 文件位于\MQL5\Include\Math\Alglib。若要使用这些函数，请将主程序文件添加到您的程序：

   ```
    #include <Math\Alglib\alglib.mqh>
   ```
2. 标准程序库包含了数理统计函数。MQL5 现在提供[R语言](https://www.r-project.org/)的功能，这是最好的统计数据处理和分析工具之一。

   **程序库特点**

   统计程序库包含计算数据统计特征的函数以及统计分布操作的函数：

     - 计算数组元素统计特征的函数
     - 统计分布操作的选项：常态分布，对数常态分布，贝塔分布等。

   **如何使用**

   统计程序库文件位于 \MQL5\Include\Math\Stat。若要使用该程序库，请将所需函数的文件添加到您的程序，例如：

   ```
   #include <Math\Stat\Binomal.mqh> #include <Math\Stat\Cauchy.mqh>
   ```

   程序库函数的详细描述可在文章[MQL5统计分布 - 使用最好的R](https://www.mql5.com/en/articles/2742)中得到。
3. 标准程序库中加入了MQL5版的[Fuzzy](https://sourceforge.net/projects/fuzzynet/)程序库。Fuzzy程序库实现了Mamdani和Sugeno模糊推理系统。

   **程序库特点**

     - 13 个成员函数
     - 灵活的开发模糊系统规则的形式
     - Mamdani模糊推理系统
     - Sugeno模糊推理系统
     - Mamdani - 类型系统的5种去模糊化方式
     - 无限数量的输入输出变量

   **如何使用**

   Fuzzy程序库文件位于\MQL5\Include\Math\Fuzzy。若要使用该程序库，请将所需函数的文件添加到您的程序，例如：

   ```
   #include <Math\Fuzzy\mamdanifuzzysystem.mqh> #include <Math\Fuzzy\sugenofuzzysystem.mqh>
   ```

   程序库的详细描述可在代码库：[Fuzzy - 开发模糊模型的程序库](https://www.mql5.com/zh/code/13697)中得到
4. CHART_QUICK_NAVIGATION新属性允许在图表中启用/禁用快速导航栏。如果您需要更改和访问属性状态，请使用ChartSetInteger和ChartGetInteger函数。

   ![](https://www.metatrader5.com/c/17/0/3__4.png)

    导航栏可以通过按下回车或空格键来打开。它允许您快速转到图表上的指定日期，以及切换到交易品种和时间周期。如果您的MQL5程序会处理按下回车或空格键，请禁用CHART_QUICK_NAVIGATION属性，以避免程序库拦截这些事件。快速导航栏仍然可以通过双击打开。
5. 添加了FileLoad和FileSave新函数。它们提供了一种简单的阅读和数组保存到文件的方式。不同于FileRead*和FileWrite*，这些函数不需要指标处理程序。FileLoad和FileSave操作数值类型的数组，以及没有字符串，动态数组或类对象的简单结构。

   ```
   long  FileLoad(    const string filename,      // [in] 文件名    void         &buffer[],     // [out] 阅读文件的数组    uint         common_flag=0  // [in] 0 - 搜索程序端Files文件夹中的文件，FILE_COMMON - 在程序端普通目录中搜索    ); bool  FileSave(    const string filename,      // [in] 文件名    const void   &buffer[],     // [in] 保存文件的数组    uint         common_flag=0  // [in] 0 - 创建程序端Files文件夹中的文件，FILE_COMMON - 在程序端普通目录中创建    );
   ```

    如何将报价写入文件然后阅读的示例：

   ```
   //--- 输入参数 input int      ticks_to_save=1000; // 报价数 //+------------------------------------------------------------------+ //| 脚本程序起始函数                                    | //+------------------------------------------------------------------+ void OnStart()   {    string  filename=_Symbol+"_ticks.bin";    MqlTick ticks[]; //---    int copied=CopyTicks(_Symbol,ticks,COPY_TICKS_ALL,0,ticks_to_save);    if(copied!=-1)      {       PrintFormat(" CopyTicks(%s) copied %d ticks",_Symbol,copied);       //--- 如果报价历史被同步，错误代码等于零       if(!GetLastError()==0)          PrintFormat("%s: Ticks are not synchronized. Error=",_Symbol,copied,_LastError);       //---  写入报价到文件       if(!FileSave(filename,ticks,FILE_COMMON))          PrintFormat("FileSave() failed, error=%d",GetLastError());      }    else       PrintFormat("Failed CopyTicks(%s), Error=",_Symbol,GetLastError()); //--- 现在阅读返回到文件的报价    ArrayFree(ticks);    long count=FileLoad(filename,ticks,FILE_COMMON);    if(count!=-1)      {       Print("Time\tBid\tAsk\tLast\tVolume\tms\tflags");       for(int i=0;i<count;i++)         {          PrintFormat("%s.%03I64u:\t%G\t%G\t%G\t%I64u\t0x%04x",          TimeToString(ticks[i].time,TIME_DATE|TIME_SECONDS),ticks[i].time_msc%1000,          ticks[i].bid,ticks[i].ask,ticks[i].last,ticks[i].volume,ticks[i].flags);         }      }   }
   ```
6. 通过DRAW_CANDLES 绘制模式更改自定义指标的展示。现在该模式可以设置1-3种颜色。蜡烛图的显示取决于设定的颜色数量。**如果指定一种颜色**，图表上的所有蜡烛图都将绘制这种颜色。

   ```
   //--- 绘制相同颜色的蜡烛图  #property indicator_label1  "One color candles" #property indicator_type1   DRAW_CANDLES //--- 仅指定一种颜色，所以所有蜡烛图都是相同的颜色 #property indicator_color1  clrGreen
   ```

   **如果指定两种颜色**，一种颜色用于蜡烛图的边框，另一种用于主体。

   ```
   //--- 蜡烛图的颜色不同于阴影颜色 #property indicator_label1  "Two color candles" #property indicator_type1   DRAW_CANDLES //--- 蜡烛图边框和阴影为绿色，主体为白色 #property indicator_color1  clrGreen,clrWhite
   ```

   **如果指定三种颜色**，一种颜色用于蜡烛图的边框，其他两种颜色用于牛市蜡烛图和熊市蜡烛图的主体。

   ```
   //--- 蜡烛图的颜色不同于阴影颜色 #property indicator_label1  "One color candles" #property indicator_type1   DRAW_CANDLES //--- 蜡烛图边框和阴影为绿色，牛市蜡烛图主体为白色，熊市蜡烛图主体为红色 #property indicator_color1  clrGreen,clrWhite,clrRed
   ```

    DRAW_CANDLES 风格允许设置自定义颜色的蜡烛图。使用PlotIndexSetInteger函数运行指标期间还可以动态更改所有颜色(drawing_index_DRAW_CANDLES, PLOT_LINE_COLOR, modifier_number, color)，在这里modifier_number 可能是以下的值：

     - 0 – 边框和阴影的颜色
     - 1 – 牛市蜡烛图主体颜色
     - 2 – 熊市蜡烛图主体颜色

   ```
   //--- 设置边框和阴影的颜色 PlotIndexSetInteger(0,PLOT_LINE_COLOR,0,clrBlue); //--- 设置牛市蜡烛图主体颜色 PlotIndexSetInteger(0,PLOT_LINE_COLOR,1,clrGreen); //--- 设置熊市蜡烛图主体颜色 PlotIndexSetInteger(0,PLOT_LINE_COLOR,2,clrRed);
   ```
7. 修正漏洞并改进使用CopyTicks函数的报价历史操作。
8. 从新版开始，操作符可用于接口（之前是不允许的）。

### 市场

1. 修正从市场买入产品时可能导致重复请求登录MQL5.community的错误。

### Tester

1. 添加希腊语，马来语和希伯来语的UI 翻译。

更新文档。

**请参阅前面的新闻：**

- [MetaTrader 5 网页平台更加快速便捷](https://www.metatrader5.com/zh/releasenotes/terminal/1382)
- [MetaTrader 5 iOS build 1403](https://www.metatrader5.com/zh/releasenotes/iphone/1379)
- [MetaTrader 5 Android build 1372](https://www.metatrader5.com/zh/releasenotes/android/1377)
- [MetaTrader 5 Build 1430：更新展示标签](https://www.metatrader5.com/zh/releasenotes/terminal/1375)
- [MetaTrader 5 build 1395：更快的交易操作，视觉测试得到改进](https://www.metatrader5.com/zh/releasenotes/terminal/1369)
