测试和优化的整个过程都会详细记录在日志当中。让我们看看在策略测试中点击开始按键后会发生什么。
启动测试/优化之前,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 |
历史缓存 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 |
测试自 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 错误而测试停止 |