大家好,今天我们来聊聊一款非常实用的工具——MetaTrader 5的篮子查看器。这个工具可以让你在一个图表上同时监控多个交易品种和头寸,方便你管理多头(买入)和空头(卖出)组合。
篮子查看器中默认设置了7个交易对,你可以根据自己的需要更改,最多可以添加50个交易品种,随时随地监控市场动态。
在图表中,你可以通过点击任何一个交易品种,快速切换到该品种的当前显示。统计信息包括平均真实波动幅度(ATR)、自周初以来的点数盈亏、头寸盈亏以及持仓量等,都能在这里查看。你还可以轻松更改统计的周数,只需简单点击显示区域,甚至可以拖动显示面板到不同位置,调整视图。
为了保持报价处理的低负载,篮子查看器采用了事件驱动的方式进行显示更新,而不是实时运行更新。即使当前图表没有接收到报价,显示也会每秒更新至少一次。
下面是一些主要控制和功能的说明:

“篮子查看器(周 0):2019.07.14 - 2019.07.21”
- 点击“篮子查看器”可以选择对象,并将面板拖动到图表的其他位置。
- 点击第一个日期(2019.07.14)可向前调整显示的周数。
- 点击第二个日期(2019.07.21)可向后调整显示的周数。
“买入篮子 点数 Term_ATR 头寸盈亏 头寸手数”
点击这行可以高亮显示当前选定的周数在图表上的位置(在周数上绘制一个矩形)。第二次点击可移除矩形。
- “买入篮子”是从用户可控的“买入交易对字符串”中提取的一组交易对。点击各个“交易对字符串”可以更改图表为该交易品种。
- 符号旁边的箭头表示价格在第一个柱子的开盘和最后一个柱子的收盘之间的方向和强度,1.5 ATR的波动用90度(或-90度)箭头表示。
- “点数”是本周的开盘价与收盘价之差(收盘 - 开盘),基于选定的周数(默认是周0,即当前周)。
- “Term_ATR”或“Indi_ATR”是图表时间框架内该交易品种的ATR,基于选定的周数(默认是周0,即当前周)。这两个值显示ATR是由终端计算还是由指标自身计算。
- “头寸盈亏”是任何活跃交易的盈亏,这个数据不会根据选择的周数而变化。
- “头寸手数”是指对该交易品种的持仓量。在图中,GBPJPY的持仓量显示为1手,这个数据也不会根据选择的周数而变化。
从下面的显示图中可以看到,这个头部后面跟着的是买入交易对的统计数据,包括点数、ATR、盈亏和手数的总计。
“卖出篮子 点数 Term_ATR 头寸盈亏 头寸手数”
这与“买入篮子”的头部相似,点击这行可以更改ATR的计算方式,可以选择从终端获取数据,或者使用iHigh和iLow函数自行计算。显示后面是卖出交易对的统计数据,包括点数、ATR、盈亏和手数的总计。与买入篮子相反,卖出交易的盈亏点数计算方式(开盘 - 当前/收盘)与买入篮子的计算方式不同。
点击任何“交易对”都会切换到该交易对的图表。

在指标中有相当多的错误消息处理功能,用于在终端未准备好提供报价信息时进行日志记录。我建议获取并取消注释“#include <errordescription.mqh> // errordescription.mqh可在此找到: https://www.mql5.com/en/code/79”,然后搜索ErrorDescription并修改相关行以包含错误描述。这些功能之前被注释是为了让代码通过自动测试,以便能够发布。对于获取错误描述,我不太清楚有没有更好的方式。
你可以将(第390行)“USE_TERMINAL_ATR = ON;”编辑为“USE_TERMINAL_ATR = OFF;”以默认使用指标内部计算ATR——我选择不这样做是因为指标的数据启动和初始化过程在值为ON时似乎更稳定。终端似乎需要一些时间来准备iOpen、iClose、iHigh和iLow的值。如果在策略测试中运行,请耐心等待,终端可能需要一些时间来初始化后再开始执行。