MetaTrader 5帮助

测试日志

测试和优化的整个过程都会详细记录在日志当中。让我们看看在策略测试中点击开始按键后会发生什么。

准备价格历史

启动测试/优化之前,tester会准备好需要的环境。检查被测试的交易品种历史记录是否存在以及同步交易服务器中存储的整个历史记录。如果平台中没有被测试的交易品种历史记录,那么交易服务器的同步过程可能需要几分钟。

Tester  EURCAD:开始预备下载M1历史记录

开始预备下载 EURCAD M1 历史记录

Tester  EURCAD:已下载20% 历史记录

已完成下载 20%

Tester  EURCAD:已下载 95% 历史记录

已完成下载 95%

Tester  EURCAD:预备下载M1历史记录已于0:14.640完成

已于0:14.640完成下载

Tester  EURCAD:历史数据始于 2014.12.29 00:00

交易品种分钟数据始于2014.12.29 00:00

如果测试基于真实报价完成,那么平台会同步测试日期内现有的报价。报价下载可能需要较长的时间。

Tester  EURCAD:开始预备下载历史报价,它可能需要较长时间

开始预备下载EURCAD报价,它可能需要较长时间

Tester  EURCAD:"bases\MetaQuotes-Demo\ticks\EURCAD\201609.tkc" 下载

2016年9月的报价已经下载到指定路径

Tester  EURCAD:"bases\MetaQuotes-Demo\ticks\EURCAD\201608.tkc" 下载 (823.38 Kb/sec)

2016年10月的报价已经下载到指定路径

Tester  EURCAD:已下载 21% 报价(796.02 Kb/sec)

已完成下载 21% ,下载速度 - 796.02 Kb/sec

Tester  EURCAD:"bases\MetaQuotes-Demo\ticks\EURCAD\201604.tkc" 下载 (764.22 Kb/sec)

2016年4月的报价已经下载到指定路径

Tester  EURCAD:初步下载历史报价,已于2:32.063完成116.78 Mb(786.40 Kb/sec)

报价下载完成于 2:32.063,已下载报价大小 - 116.78 MB

Tester  EURCAD:报价数据始于2016.04.01 00:00

EURCAD 报价数据始于 2016.04.01 00:00

之后检查是否存在十字光标。例如,如果在EURCAD执行测试,入金货币是USD,EURUSD 和 USDCAD 需要计算利润和执行交易时所需的预付款。因此,执行历史记录和这些交易品种的完整同步。如果需要的话,也会同步报价数据。价格数据准备都会在tester日志中详细描述:

Tester  EURUSD:开始预备下载历史报价,它可能需要较长时间

开始预备下载EURUSD 报价,它可能需要较长时间

Tester  EURUSD:初步下载历史报价,已于0:03.218 完成 1021.82 Kb (317.53 Kb/sec)

报价下载完成于0:03.218,已下载报价大小 - 1021.82 KB

Tester  EURUSD:报价数据始于2011.12.19 00:00

EURUSD 报价数据始于 2011.12.19 00:00

Tester  USDCAD:开始预备下载M1历史记录

开始预备下载 USDCAD M1 历史记录

Tester  USDCAD:预备下载M1历史记录已于0:00.203 完成

已于 0:00.203 完成下载

Tester  USDCAD:开始预备下载历史报价,它可能需要较长时间

开始预备下载USDCAD 报价,它可能需要较长时间

Tester  USDCAD:"bases\MetaQuotes-Demo\ticks\USDCAD\201609.tkc" 下载

2016年9月的报价已经下载到指定路径

Tester  USDCAD:"bases\MetaQuotes-Demo\ticks\USDCAD\201608.tkc" 下载 (683.69 Kb/sec)

2016年8月的报价已经下载到指定路径,下载速度 - 683.69 Kb/sec

Tester  USDCAD:初步下载历史报价,已于2:30.109 完成103.25 Mb(704.36 Kb/sec)

报价下载完成于2:30.109,已下载报价大小 - 103.25 MB

Tester  USDCAD:报价数据始于 2015.01.01 00:00

USDCAD 报价数据始于 2015.01.01 00:00

测试/优化开始

测试/优化仅在所需历史记录(以及使用真实报价测试/优化策略的报价)全部同步后开始。

连接选定的测试代理 会在单独测试中建立。既可以是本地代理也可以是网络代理。

Core 1代理进程开始

代理进程在第一个处理器内核启动

Core 1连接到127.0.0.1:3000

连接到 127.0.0.1:3000

Core 1  已连接

连接已建立

Core 1  已授权(agent build 1395)

授权已通过,agent build - 1395

本地代理数据文件夹命名对应其地址和端口。

连接建立之后,根据测试设置同步环境。

Tester  EURCAD,H1 (MetaQuotes-Demo):测试 Experts\Moving Average.ex5 from 2016.04.01 00:00 to 2016.06.01 00:00

在EURCAD H1启动移动平均EA测试,MetaQuotes-Demo 服务器,测试周期 - 从 2016.04.01 00:00 到 2016.06.01 00:00

Core 1 常规同步已完成

总同步完成

此刻起,代理保留其自己的日志,将其数据发送至测试器日志。本地代理日志可以从测试器日志快捷菜单打开。日志显示程序端和代理之间的环境同步详情。

环境初始化和同步:

启用 MetaTester 5 x64 build 1395 (2016年8月19日)

启用测试代理,build 1395 自2016年8月19日

服务器 MetaTester 5 始于127.0.0.1:3000

测试代理启用于 127.0.0.1:3000

启动初始化已完成

初始化已完成

127.0.0.1       login (build 1395)

平台已经连接代理

已加载38520字节网络账户信息

代理已下载 38520 字节交易账户参数信息

已加载 1482 字节网络测试器参数

代理已下载 1482 字节测试参数信息

已加载 2236 字节网络导入参数

代理已下载 2236 字节EA导入信息

已加载 22730 字节网络交易品种列表

代理已下载 22730 字节交易品种信息

同步测试参数和已测试的交易品种数据:

已添加的测试专家文件:Experts\Examples\Moving Average\Moving Average.ex5. 已加载 53048 字节

代理已下载EA文件,文件大小 53048 字节

Tester  初始入金 10000.00 USD,杠杆 1:100

测试之前初始入金 - 10 000 USD,杠杆 - 1:100

Tester  成功初始化

测试初始化

共接收 68 Kb 网络初始化数据

初始化期间代理获得的数据总量 - 68 KB

Tester  Intel Core i7-3770  @ 3.40GHz, 16351 MB

代理启用的PC配置

交易品种EURCAD:将被同步的交易品种

EURCAD 交易品种同步

交易品种 EURCAD:交易品种已同步,已接收 3384 字节的交易品种信息

交易品种已同步,已接收 3384 字节数据

历史记录 EURCAD:加载 4.51 Mb 历史数据并于 0:00:00.594 同步

在594毫秒内已下载 4.51 MB 历史数据

历史记录EURCAD:历史同步自2015.01.02 到 2016.06.01

EURCAD 历史同步自2015.01.02 到 2016.06.01

Ticks   EURCAD:报价同步开始

开始 EURCAD 报价同步

Ticks   EURCAD:加载 48.66 Mb 报价数据并于 0:00:00.969 同步

48.66MB 数据已在969毫秒内的同步期间下载

Ticks   EURCAD:历史报价同步自 2016.04.01 到 2016.05.31

EURCAD 报价历史同步自 2016.04.01 到 2016.05.31

历史记录 EURCAD,H1:历史缓存分配 8862个柱形图并包括 7729个柱形图
自 2015.01.02 09:00 到 2016.03.31 23:00

历史缓存 8862个柱形图已创建,缓存包括 7729个柱形图自 2015.01.02 09:00 到 2016.03.31 23:00

历史记录 EURCAD,H1:历史记录始于 2015.01.02 09:00

EURCAD 历史记录始于 2015.01.02 09:00

Tester  EURCAD,H1 (MetaQuotes-Demo):基于真实报价生成

测试将在真实报价启动

Tester  EURCAD,H1:测试 Experts\Examples\Moving Average\Moving Average.ex5
      自 2016.04.01 00:00 到 2016.06.01 00:00 开始输入:

测试自 2016.04.01 00:00 到 2016.06.01 00:00 的移动平均 EA将通过以下输入启用:

Tester    MaximumRisk=0.02

MaximumRisk=0.02

Tester    DecreaseFactor=3.00

DecreaseFactor=3.00

Tester    MovingPeriod=12

MovingPeriod=12

Tester    MovingShift=6

Tester    MovingShift=6

移动平均 (EURCAD,H1)      2016.04.01 00:00:00   专家初始化

移动平均 EA 初始化

Ticks   EURCAD:真实报价始于2016.04.01 00:00:00

EURCAD 真实报价始于 2016.04.01 00:00:00

同步交叉汇率:

交易品种 EURUSD:交易品种将被同步

同步 EURUSD 交易品种

交易品种 EURUSD:交易品种已同步,已接收3384 字节的交易品种信息

交易品种已同步,已接收 3384 字节数据

历史记录 EURUSD:加载27 字节历史数据并于 0:00:00.000同步

在000毫秒内已下载 27 字节历史数据

历史记录 EURUSD:历史同步自 2014.01.01 到 2016.09.02

EURUSD 历史同步自 2014.01.01 到 2016.09.02

Ticks   EURUSD:报价同步开始

开始 EURUSD 报价同步

Ticks   EURUSD:加载 34 字节报价数据并于0:00:00.000 同步

48.66MB 数据已在969毫秒内的同步期间下载

Ticks   EURUSD:历史报价同步自2016.01.04 到 2016.09.02

EURUSD报价历史同步自 2016.04.01 到2016.05.31

交易品种USDCAD:将被同步的交易品种

USDCAD 交易品种同步

交易品种 USDCAD:交易品种已同步,已接收3384 字节的交易品种信息

交易品种已同步,已接收 3384 字节数据

历史记录 USDCAD:加载27 字节历史数据并于 0:00:00.094同步

在94毫秒内已下载 27 字节历史数据

历史记录USDCAD:历史同步自2013.01.01 到 2016.08.01

USDCAD 历史同步自 2013.01.01 到 2016.08.01

Ticks   USDCAD:报价同步开始

开始 USDCAD 报价同步

Ticks   USDCAD:加载43.10 Mb 报价数据并于0:00:00.890 同步

43.10MB 数据已在 890 毫秒内的同步期间下载

Ticks   USDCAD:历史报价同步自 2016.04.01 到 2016.05.31

USDCAD 报价历史同步自 2016.04.01 到 2016.05.31

报价序列

报价序列在测试之前生成使用的报价越多,测试前的延迟越大。

如果您在真实报价上测试,则会检查已下载的分钟柱形图相关的报价数据的正确性。如果数据正确,日志只包括一个条目(每个交易品种)。

Ticks   EURCAD:真实报价始于2016.04.01 00:00:00

EURCAD 真实报价数据始于 2016.04.01 00:00:00

另外,显示的统计详情允许用户评估报价历史的情况。

Ticks   EURUSD:真实报价始于 2015.01.01 00:00:00

EURUSD 真实报价数据始于 2015.01.01 00:00:00

Ticks   EURUSD:2015.01.01 00:00 - 2016.01.01 00:00  报价量不匹配4分钟柱形图

报价量已显示出不匹配 2015.01.01 00:00 - 2016.01.01 00:00内的4分钟柱形图

Ticks   EURUSD:2015.01.01 00:00 - 2016.01.01 00:00,16217 分钟柱形图没有最后价,使用卖价

在2015.01.01 00:00 - 2016.01.01 00:00之间没有检测到16217分钟柱形图的最后价,将使用卖价代替

Ticks   EURUSD:2015.01.01 00:00 - 2016.01.01 00:00,22 整天没有最后价,通过卖价建立柱形图

在2015.01.01 00:00 - 2016.01.01 00:00之间没有检测到22整天的最后价,已使用卖价生成柱形图

Ticks   EURUSD:2015.01.01 00:00 - 2016.01.01 00:00,881分钟柱形图关闭最后价转化,使用卖价和最后价

在2015.01.01 00:00 - 2016.01.01 00:00之间881分钟柱形图的最后价转化中断,使用最后价和卖价代替

测试之后再代理日志中显示统计详情:

Tester  最终结余 7905.30 USD

最终结余组成 7905.30 USD

Tester  EURCAD,H1: 50056687 个报价,6195 个柱形图被生成环境同步于 0:00:02.656。

生成50056687 个报价和6195 个柱形图,环境同步执行在 0:00:02.656

在 0:01:40.906通过测试 (包括报价预处理 0:00:27.047)。

测试执行0:01:40.906 (包括需要0:00:27.047的报价准备)

Tester  EURCAD,H1:从登录到停止测试的总时间 0:01:43.562 (包括用于历史数据同步的0:00:07.329 )

从连接代理到测试完成的时间 - 0:01:43.562 (包括需要0:00:07.329的历史数据同步)

Tester  132757966 个所有交易品种的总报价

所有交易品种一共生成132757966 个报价

Tester  EURCAD:在0:00:08.703生成50056687个报价,传到测试器50056687 个报价

0:00:08.703内为EURCAD生成 50056687 个报价,50056687 个报价传到测试器

Tester  EURUSD:在0:00:09.235生成42615166个报价,传到测试器42587228 个报价

0:00:09.235内为EURUSD 生成 42615166 个报价,42587228 个报价传到测试器

Tester  USDCAD:在0:00:09.109生成40134644 个报价,传到测试器40114051 个报价

0:00:09.109内为USDCAD 生成 40134644 个报价,40114051 个报价传到测试器

Tester  使用546 Mb内存,包括0.94Mb历史数据,320Mb缓存的报价数据 (报价数据总内存 3135 Mb)

使用546 Mb内存,包括0.94Mb历史数据,320Mb缓存的报价数据 (报价数据共使用3135 Mb)

Tester  日志文件 "E:\MetaTrader5\Tester\Agent-127.0.0.1-3000\logs\20160908.log" 编写

代理日志文件保存在指定路径

如果仅测试一个交易品种,那么日志会显示总统计代替每个交易品种的单独行:

Tester  最终结余 1199.73 USD

最终结余 1199.73 USD

Tester  EURUSD,H1: 42668248 个报价,6195 个柱形图被生成在 0:00:41.360通过测试 (包括报价预处理 0:00:06.672)。

生成42668248 个报价和 6195 柱形图。测试执行0:00:41.360 (包括需要0:00:06.672的报价准备)

Tester  使用489 Mb内存,包括0.94Mb历史数据,320Mb缓存的报价数据 (报价数据总内存1023 Mb)

使用489 Mb内存,包括0.94Mb历史数据,320Mb缓存的报价数据 (报价数据共使用1023 Mb)

Tester  日志文件 "E:\MetaTrader5\Tester\Agent-127.0.0.1-3000\logs\20160908.log" 编写

代理日志文件保存在指定路径

平台和代理之间最小的数据交换在相同历史数据反复测试期间的同步阶段执行。使用代理内存的历史缓存。如果报价生成模式不变,还会使用缓存报价数据。在这种情况下,测试立即开始:

Tester  账户信息已找到

交易账户数据已找到

已加载 1482 字节网络测试器参数

下载1482 字节测试参数

Tester  初始入金 1000.00 USD,杠杆 1:100

测试之前初始入金 - 1 000 USD,杠杆 - 1:100

Tester  成功初始化

测试初始化

共接收 1614 字节网络初始化数据

初始化期间代理获得的数据总量 - 1614 字节

Tester  Intel Core i7-3770  @ 3.40GHz, 16351 MB

代理启用的PC配置

历史记录 EURUSD,H1:历史缓存自2014.01.01 23:00

EURUSD H1 历史缓存始于 2014.01.01 23:00

Tester  EURUSD,H1 (MetaQuotes-Demo):生成每个报价

在所有报价上启动测试 (MetaQuotes-Demo 服务器)

Tester  EURUSD,H1:测试 Experts\Tester\MultyPairCrossMA.ex5 自 2015.01.01 00:00 到 2016.01.01 00:00 开始输入

测试自 2015.01.01 00:00 到 2016.01.01 00:00 的移动平均 EA将通过以下输入启用:

Tester    InpLots=0.10

Tester    InpStopLoss=50

Tester    InpTakeProfit=50

Tester    InpTrailingStop=30

Tester    InpFastMAPeriod=21

Tester    InpSlowMAPeriod=34

InpLots=0.10

InpStopLoss=50

InpTakeProfit=50

InpTrailingStop=30

InpFastMAPeriod=21

InpSlowMAPeriod=34

历史记录 EURUSD,M5:历史缓存自2014.01.01 23:00

EURUSD M5 历史缓存始于2014.01.01 23:00

历史记录 EURJPY,M5:历史缓存自2014.01.01 23:00

EURJPY M5 历史缓存始于 2014.01.01 23:00

历史记录USDJPY,M5:历史缓存自2014.01.01 23:00

USDJPY M5 历史缓存始于 2014.01.01 23:00

测试完成

止损离场 如果交易没有成功,测试将因止损离场而停止:

Tester   最终结余 44.81 USD

 最终结余 44.81 USD

Tester  止损离场会发生在 3% 测试间隔

止损离场会在测试通过3%之后发生

标准完成。满足一定条件时调用ExpertRemove函数可能更早的停止测试。紧随其后的就是下面的日志条目:

MACD Sample (EURUSD,H1) 2015.03.13 03:00:00   测试停止。结余 299.29

测试停止,结余是 299.29

MACD Sample(EURUSD,H1) 2015.03.13 03:00:00   ExpertRemove() 函数被调用

ExpertRemove 函数已被调用

Tester  在OnTick移除本身

EA 已在报价处理程序完成其工作

Tester  最终结余 299.29 USD

最终结余 299.29 USD

Tester  在测试间隔的19%移除其本身

EA 会在测试通过3% 之后完成工作

内存错误。 因为一个关键错误,测试可能提前完成。例如,通过ArrayResize函数重新配置常量内存可能导致过多的内存碎片,而这些碎片反过来可能导致内存大小不足。 结果也会导致内存错误。

MemoryException 8192 Mb 不可用

内存 8192 MB 不可用

MACD Sample (EURUSD,H1) 2015.01.02 09:00:15   不能调整ExtDoubleArray4大小从536870912 到 1073741824

在2015.01.02 09:00:15,EA 从536870912 到1073741824 字节增加ExtDoubleArray4数组大小失败

Tester  在 OnTick 的内存错误

用OnTick处理内存时发生错误

Tester  在测试间隔 0% 时停止

在测试通过3% 之后工作完成

Tester  没有足够的可用内存,已使用 37371 Mb,可用9178 Mb,最大可用内存是4096 Mb

内存不足,总内存 37371 MB,可用 9178 MB,最大内存大小 4096 MB

数组超出范围。 超出数组范围 (例如,数组元素指数等于或超过数组元素的数量)被认为是一个严重错误(指数从零开始)。

MACD Sample (EURUSD,H1) 2015.01.06 18:42:59 数组超出范围在 'MACD Sample.mq5' (473,28)

数组超出范围在 MACD Sample.mq5 文件 (字符串 473,位置 28)

Tester  OnTick 严重错误

OnTick 严重错误

零为除数。 除以零也被认为是一个严重错误。

MACD Sample (EURUSD,H1) 2015.01.06 18:42:59 除以零在 'MACD Sample.mq5' (465,35)

除以零在MACD Sample.mq5 文件 (字符串 465,位置 35)

Tester  OnTick 严重错误

OnTick 严重错误

初始化错误。 如果程序中的 OnInit 函数返回一个不同于INIT_SUCCEEDED的代码,那么测试未开始即停止。例如,这个特点可以用于管理输入参数。

MACD Sample (EURUSD,H1) 2015.01.01 00:00:00 Deinit 原因是 8

EA 去初始化在 2015.01.01 00:00:00

Tester  因为OnInit 失败 tester 停止

由于OnInit 错误而测试停止