MetaTrader 5帮助算法交易, 交易机器人测试日志

测试日志

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

准备价格历史

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

Tester  EURCAD: preliminary downloading of M1 history started

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

Tester  EURCAD: 20% history downloaded

已完成下载 20%

Tester  EURCAD: 95% history downloaded

已完成下载 95%

Tester  EURCAD: preliminary downloading of M1 history completed in 0:14.640

已于0:14.640完成下载

Tester  EURCAD: history data begins from 2014.12.29 00:00

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

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

Tester  EURCAD: preliminary downloading of history ticks started, it may take quite a long time

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

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

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

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

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

Tester  EURCAD: 21% ticks downloaded (796.02 Kb/sec)

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

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

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

Tester  EURCAD: preliminary downloading of history ticks completed, 116.78 Mb in 2:32.063 (786.40 Kb/sec)

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

Tester  EURCAD: ticks data begins from 2016.04.01 00:00

EURCAD 报价数据始于 2016.04.01 00:00

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

Tester  EURUSD: preliminary downloading of history ticks started, it may take quite a long time

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

Tester  EURUSD: preliminary downloading of history ticks completed, 1021.82 Kb in 0:03.218 (317.53 Kb/sec)

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

Tester  EURUSD: ticks data begins from 2011.12.19 00:00

EURUSD 报价数据始于 2011.12.19 00:00

Tester  USDCAD: preliminary downloading of M1 history started

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

Tester  USDCAD: preliminary downloading of M1 history completed in 0:00.203

已于 0:00.203 完成下载

Tester  USDCAD: preliminary downloading of history ticks started, it may take quite a long time

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

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

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

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

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

Tester  USDCAD: preliminary downloading of history ticks completed, 103.25 Mb in 2:30.109 (704.36 Kb/sec)

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

Tester  USDCAD: ticks data begins from 2015.01.01 00:00

USDCAD 报价数据始于 2015.01.01 00:00

测试/优化开始

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

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

Core 1  agent process started

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

Core 1  connecting to 127.0.0.1:3000

连接到 127.0.0.1:3000

Core 1  connected

连接已建立

Core 1  authorized (agent build 1395)

授权已通过,agent build - 1395

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

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

Tester  EURCAD,H1 (MetaQuotes-Demo): testing of 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  common synchronization completed

总同步完成

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

环境初始化和同步:

Startup MetaTester 5 x64 build 1395 (19 Aug 2016)

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

Server  MetaTester 5 started on 127.0.0.1:3000

测试代理启用于 127.0.0.1:3000

Startup initialization finished

初始化已完成

127.0.0.1       login (build 1395)

平台已经连接代理

Network 38520 bytes of account info loaded

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

Network 1482 bytes of tester parameters loaded

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

Network 2236 bytes of input parameters loaded

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

Network 22730 bytes of symbols list loaded

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

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

Tester  expert file added: Experts\Examples\Moving Average\Moving Average.ex5. 53048 bytes loaded

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

Tester  initial deposit 10000.00 USD, leverage 1:100

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

Tester  successfully initialized

测试初始化

Network 68 Kb of total initialization data received

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

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

代理启用的PC配置

Symbols EURCAD: symbol to be synchronized

EURCAD 交易品种同步

Symbols EURCAD: symbol synchronized, 3384 bytes of symbol info received

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

History EURCAD: load 4.51 Mb of history data to synchronize in 0:00:00.594

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

History EURCAD: history synchronized from 2015.01.02 to 2016.06.01

EURCAD 历史同步自2015.01.02 到 2016.06.01

Ticks   EURCAD: ticks synchronization started

开始 EURCAD 报价同步

Ticks   EURCAD: load 48.66 Mb of tick data to synchronize in 0:00:00.969

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

Ticks   EURCAD: history ticks synchronized from 2016.04.01 to 2016.05.31

EURCAD 报价历史同步自 2016.04.01 到 2016.05.31

History EURCAD,H1: history cache allocated for 8862 bars and contains 7729 bars
       from 2015.01.02 09:00 to 2016.03.31 23:00

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

History EURCAD,H1: history begins from 2015.01.02 09:00

EURCAD 历史记录始于 2015.01.02 09:00

Tester  EURCAD,H1 (MetaQuotes-Demo): generating based on real ticks

测试将在真实报价启动

Tester  EURCAD,H1: testing of Experts\Examples\Moving Average\Moving Average.ex5
       from 2016.04.01 00:00 to 2016.06.01 00:00 started with inputs:

测试自 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

Moving Average (EURCAD,H1)      2016.04.01 00:00:00   expert initialized

移动平均 EA 初始化

Ticks   EURCAD : real ticks begin from 2016.04.01 00:00:00

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

同步交叉汇率:

Symbols EURUSD: symbol to be synchronized

同步 EURUSD 交易品种

Symbols EURUSD: symbol synchronized, 3384 bytes of symbol info received

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

History EURUSD: load 27 bytes of history data to synchronize in 0:00:00.000

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

History EURUSD: history synchronized from 2014.01.01 to 2016.09.02

EURUSD 历史同步自 2014.01.01 到 2016.09.02

Ticks   EURUSD: ticks synchronization started

开始 EURUSD 报价同步

Ticks   EURUSD: load 34 bytes of tick data to synchronize in 0:00:00.000

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

Ticks   EURUSD: history ticks synchronized from 2016.01.04 to 2016.09.02

EURUSD报价历史同步自 2016.04.01 到2016.05.31

Symbols USDCAD: symbol to be synchronized

USDCAD 交易品种同步

Symbols USDCAD: symbol synchronized, 3384 bytes of symbol info received

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

History USDCAD: load 27 bytes of history data to synchronize in 0:00:00.094

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

History USDCAD: history synchronized from 2013.01.01 to 2016.08.01

USDCAD 历史同步自 2013.01.01 到 2016.08.01

Ticks   USDCAD: ticks synchronization started

开始 USDCAD 报价同步

Ticks   USDCAD: load 43.10 Mb of tick data to synchronize in 0:00:00.890

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

Ticks   USDCAD: history ticks synchronized from 2016.04.01 to 2016.05.31

USDCAD 报价历史同步自 2016.04.01 到 2016.05.31

报价序列

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

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

Ticks   EURCAD : real ticks begin from 2016.04.01 00:00:00

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

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

Ticks   EURUSD : real ticks begin from 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  tick volumes not matched for 4 minute bars

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

Ticks   EURUSD : 2015.01.01 00:00 - 2016.01.01 00:00  last prices absent for 16217 minute bars, bid prices used

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

Ticks   EURUSD : 2015.01.01 00:00 - 2016.01.01 00:00  last prices absent for 22 whole days, bars built by bid prices

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

Ticks   EURUSD : 2015.01.01 00:00 - 2016.01.01 00:00  last prices translation turned off for 881 minute bars, bid and last prices used

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

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

Tester  final balance 7905.30 USD

最终结余组成 7905.30 USD

Tester  EURCAD,H1: 50056687 ticks, 6195 bars generated. Environment synchronized in 0:00:02.656.

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

Test passed in 0:01:40.906 (including ticks preprocessing 0:00:27.047).

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

Tester  EURCAD,H1: total time from login to stop testing 0:01:43.562 (including 0:00:07.329 for history data synchronization)

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

Tester  132757966 total ticks for all symbols

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

Tester  EURCAD: generate 50056687 ticks in 0:00:08.703, passed to tester 50056687 ticks

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

Tester  EURUSD: generate 42615166 ticks in 0:00:09.235, passed to tester 42587228 ticks

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

Tester  USDCAD: generate 40134644 ticks in 0:00:09.109, passed to tester 40114051 ticks

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

Tester  546 Mb memory used including 0.94 Mb of history data, 320 Mb of cached tick data (total memory for tick data 3135 Mb)

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

Tester  log file "E:\MetaTrader5\Tester\Agent-127.0.0.1-3000\logs\20160908.log" written

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

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

Tester  final balance 1199.73 USD

最终结余 1199.73 USD

Tester  EURUSD,H1: 42668248 ticks, 6195 bars generated. Test passed in 0:00:41.360 (including ticks preprocessing 0:00:06.672).

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

Tester  489 Mb memory used including 0.94 Mb of history data, 320 Mb of cached tick data (total memory for tick data 1023 Mb)

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

Tester  log file "E:\MetaTrader5\Tester\Agent-127.0.0.1-3000\logs\20160908.log" written

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

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

Tester  account info found

交易账户数据已找到

Network 1482 bytes of tester parameters loaded

下载1482 字节测试参数

Tester  initial deposit 1000.00 USD, leverage 1:100

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

Tester  successfully initialized

测试初始化

Network 1614 bytes of total initialization data received

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

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

代理启用的PC配置

History EURUSD,H1: history cached from 2014.01.01 23:00

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

Tester  EURUSD,H1 (MetaQuotes-Demo): every tick generating

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

Tester  EURUSD,H1: testing of Experts\Tester\MultyPairCrossMA.ex5 from 2015.01.01 00:00 to 2016.01.01 00:00 started with inputs:

测试自 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

History EURUSD,M5: history cached from 2014.01.01 23:00

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

History EURJPY,M5: history cached from 2014.01.01 23:00

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

History USDJPY,M5: history cached from 2014.01.01 23:00

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

测试完成

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

Tester  final balance 44.81 USD

 最终结余 44.81 USD

Tester  stop out occurred on 3% of testing interval

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

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

MACD Sample (EURUSD,H1) 2015.03.13 03:00:00   Testing stop. Balance is 299.29

测试停止,结余是 299.29

MACD Sample (EURUSD,H1) 2015.03.13 03:00:00   ExpertRemove() function called

ExpertRemove 函数已被调用

Tester  removed itself within OnTick

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

Tester  final balance 299.29 USD

最终结余 299.29 USD

Tester  removed itself on 19% of testing interval

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

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

MemoryException 8192 Mb not available

内存 8192 MB 不可用

MACD Sample (EURUSD,H1) 2015.01.02 09:00:15   cannot resize ExtDoubleArray4 from 536870912 to 1073741824

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

Tester  memory error in OnTick

用OnTick处理内存时发生错误

Tester  stopped on 0% of testing interval

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

Tester  not enough available memory, 37371 Mb used, 9178 Mb available, maximal available block is 4096 Mb

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

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

MACD Sample (EURUSD,H1) 2015.01.06 18:42:59 array out of range in 'MACD Sample.mq5' (473,28)

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

Tester  OnTick critical error

OnTick 严重错误

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

MACD Sample (EURUSD,H1) 2015.01.06 18:42:59 zero divide in 'MACD Sample.mq5' (465,35)

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

Tester  OnTick critical error

OnTick 严重错误

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

MACD Sample (EURUSD,H1) 2015.01.01 00:00:00 Deinit reason is 8

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

Tester  tester stopped because OnInit failed

由于OnInit 错误而测试停止