MetaTrader 5 build 2650:背景图表加载和MQL5代码分析工具改进
MetaTrader 5新功能
程序端
- “选项”选项卡提供一个名为“预加载未结持仓和订单的图表数据”的新设置。
为了节省流量,交易平台仅在请求相关数据时下载交易品种价格历史(例如,在打开价格图表或启动测试时)。然而,对于常用交易品种来说,这并不是很方便。如果启用此新选项,您有未结持仓或挂单的交易品种图表将在后台模式下更新。因此,打开图表后您无需等待数据下载,相关数据将立即可供分析。
- 修正周末后生成日柱形图。
- 修正图表更新。在额外下载更新的价格数据之后,图表偶尔会出现更新失败的问题。
- 优化更新账户交易历史缓存。通过优化,可以减少使用History*函数时的数据延迟。
- 修正在交易历史显示为持仓时,评论列的显示问题。
- 修正信号续订按键的显示问题。
MQL5
- 在代码分析工具的总体更新中的更多改进。除了build 2615中提供的创新功能外,还实现了以下功能:
添加新参数
我们之前已经宣布新分析工具的抽样方法的用法。分析工具在MQL程序操作中暂停(每秒~1000次),并收集有关在某些代码段中执行暂停次数的统计信息。这还包括对调用堆栈的分析,以确定每个函数在总代码操作时间内所占的份额。在分析后,用户会收到有关操作暂停次数以及每个函数出现在调用堆栈中的次数的统计信息:
- 总CPU [单位,%] — 函数在调用堆栈中出现的次数。
- 自身CPU [单位,%] — 直接在指定函数内出现的“暂停”次数。此变量对于识别瓶颈至关重要:根据统计数据,在需要更多处理器时间的情况下,暂停发生的频率更高。
添加在分析过程中禁用函数内联的功能
在MQL程序的编译过程中,对函数进行内联,即,将函数代码直接添加到函数调用站。这可以显着提高性能。但是,此过程会使函数分析变得困难。为了获得有关“纯”函数的报告,可以在MetaEditor设置中禁用内联:
更新报告设计
我们重新设计了性能分析报告,并在源代码窗口中显示性能分析信息。现代化设计将使Visual Studio用户更加熟悉。
- 修正CopyTicksRange函数操作的问题。该函数有时会返回不完整的数据。
- 新错误代码TRADE_RETCODE_HEDGE_PROHIBITED —由于禁止锁仓持仓,因此不允许开仓或下挂单。如果用户在禁用账户锁仓以及用户对相同交易品种已有反向订单或持仓的情况下试图执行交易操作,则返回错误。
- 删除调试指标时调用MessageBox的功能。无法从指标调用MessageBox,因为它在等待用户响应的时间段会一直暂停线程执行。
- 使用SymbolSelect函数优化并显着加速将交易品种添加到“市场报价”的过程。
- 修正固定大小数组的ArrayInsert函数行为。现在,该行为与文档中的描述相符:插入元素时,目标数组的大小不会更改,插入位置右侧的元素会向右移动(最后一个'count'元素为“下降”),同时将元素从源复制到释放空间。
Tester
- 修正在测试期间使用自定义交易条件设置;已修改设置对话框。
- 修正计算自定义手续费。要启用手续费,现在只需指定交易品种名称即可,无需整个路径。
- 重新排列选项卡,提高操作效率。
- 重命名对话框和启用自定义设置的选项。
- 在设置表中优化列宽。
- 禁用“使用自定义设置”选项时,对话框中的所有其他设置均被停用。以前,设置仍可编辑,用户可能会错误地认为这些设置将在测试期间应用。
- 修正有关根据单号从交易历史接收订单时可能出现的错误。
MetaEditor
- 为代码编辑窗口添加配色方案预设:浅色(默认)、深色和蓝色。您可以自定义编辑器,而无需手动配置编辑器视图。
此外,现在可以自定义功能工具提示的边框颜色。
- 工具栏中的所有图标均已更新,支持HiDPI显示器。
文档已更新。