MetaTrader 5的SeriesIntegerInfo与CopyRates信息工具使用指南

Mike 2019.08.12 04:52 34 0 0
附件

大家好!今天我们来聊聊一个在MetaTrader 5中非常实用的小工具——SeriesIntegerInfo与CopyRates信息工具。虽然这个工具不是直接用来进行交易的,但它对于那些想要获取关于K线数量和数据可用性信息的朋友们来说,绝对是个好帮手。

这个工具利用了SeriesIntegerInfoCopyRates两个函数,来获取并展示终端中K线信息的可用性。

使用时,用户可以选择当前图表的品种(默认设置),也可以输入市场观察列表中的任意品种,并为每个时间框架创建一个包含三项信息的列,这些信息是通过SeriesIntegerInfo函数返回的:

  • SERIES_SYNCHRONIZED:表示终端中的数据是否同步(指示器会显示同步或不同步)。
  • SERIES_BARS_COUNT:该时间框架内可用的K线数量(包括第0根K线)。
  • SERIES_FIRSTDATE:该时间框架内最早K线的日期。

此外,这个工具还会显示每个时间框架内的有效K线的CopyRates信息(有效K线的数量是根据SeriesIntegerInfo返回的信息来确定的)。工具默认会显示每个时间框架内的最早K线的CopyRates信息(由SERIES_BARS_COUNT指示),但用户可以输入任何有效的K线编号进行查询。

这个工具是与https://www.mql5.com/en/code/26316的双重指标,后者通过'Bars'函数获取有效K线的信息。虽然SeriesInfoInteger函数似乎是获取K线信息的更好方式,但两者在报告中都显示出CopyRates无法获取的信息,至少在当前版本的终端中是这样的。

指标显示在终端初始化数据时会稳定下来,通常需要几秒钟时间,如下图所示,显示出几个4401“终端数据不可用”的错误。接下来我们来看看这些控件的功能:

Series Info and CopyRates Indicator Display Panel.

控件功能:

  1. “Rates and Bar” - 选择并拖动以移动显示位置到图表的不同位置。
  2. 这是K线编号输入框。输入一个K线编号以查看该K线的CopyRates信息是否可用。
  3. “Symbol” - 点击可切换K线编号为‘最早’默认值或最后输入的K线编号。
  4. 这是品种输入框。输入市场观察中的任意品种以显示该品种的信息。
  5. 点击MN1 CopyRates信息以切换日志的写入开关。开启后,从Bars和CopyRates返回的错误将被记录到日志中。
  • 我建议您获取并取消注释 // #include <errordescription.mqh> // errordescription.mqh可以在此找到: https://www.mql5.com/en/code/79
    并将ErrorDescription文本添加回指标中。由于限制,我无法提交包含该引用的代码。

在我的测试中,SeriesIntegerInfo能报告超过100,000的K线值,但CopyRates似乎从未能获取超过99,999的K线数据。下面的图片显示了CopyRates在第100,000根K线时的4401错误,以及在第99,999根K线时的成功:

CopyRates Oldest Usable Bar is 99,999

版本信息:M1到MN1行标识在V1.00中省略,在V1.02中修复。

列表
评论 0