策略测试器允许您的交易策略 (智能交易系统) 实际应用于真实帐户之前, 对它们进行测试并优化。测试期间, 智能交易系统以初始参数依据历史数据运行。优化期间, 交易策略将使用不同的参数集合运行多次, 从中可以选出最恰当的组合。
策略测试器是多币种测试工具, 并可对多个金融工具进行策略优化。测试器自动处理所有交易策略中用到的品种信息, 所以您无需手工指定测试/优化时的品种列表。
策略测试器是多线程的, 因此可以使用所有可用的电脑资源。测试和优化可以使用指定的计算 代理 进行, 它们作为服务安装在客户的电脑上。代理独立工作, 并可并行处理优化递进。
可将无限数量的 远程 代理连接到策略测试器。此外, 策略测试器可以访问 MQL5 云网络。它带来了环球数以千计的代理, 并且这种计算能力可为所有交易平台客户所用。
除了智能交易系统的测试和优化, 您可以使用策略测试器的 可视模式 对自定义指标进行测试操作。这个 功能可以很简单地测试从 市场里下载的演示版自定义指标的操作。
优化意即基于历史数据, 使用不同参数集合多次运行智能交易系统, 目的是从中发现最佳组合。多次运行期间, 智能交易系统使用不同参数集合进行测试, 从中发现最佳者。
tester(测试器)启动之后,用户看到的是一个标准任务列表,而不是多个设置,通过选择任务,用户可以快速开始测试。这对于之前没有任何经验的用户尤其有用。
开始页面会显示一些主要的策略测试和优化任务。此外,还可以从此页面重新启动一个以前执行的任务。如果您运行了多个任务,且这些任务不适合开始页面,那么请使用搜索栏。您可以通过任何参数找到测试:程序名称、交易品种、时间框架、建模模式等。
选择任务之后,用户继续进一步测试参数设置:选择EA交易、交易品种、测试周期等。所选任务不需要的所有无关参数都将从设置页面中隐藏。例如,选择数学计算,只需要指定两个参数:选择要测试的程序和优化模式。在测试期间,将会隐藏延迟和报价生成的设置。
下面将解释所有可用的优化选项。
点击 " 测试", 智能交易系统的关联菜单位于 导航器 窗口。
点击之后智能交易系统在策略测试器里被选中。
策略测试器允许多品种交易策略的回测。这种交易机器人通常被称为多币种智能交易系统。
测试器在首次调用品种数据时自动从交易平台下载所需品种的历史数据 (并非交易服务器!)。只有缺失的价格历史数据才会从交易服务器下载并补充。
在您开始优化多币种智能交易系统之前, 在市场观察里启用测试所需品种。在关联菜单里, 点击 "品种" 并启用所需的工具。
在您开始优化之前, 选择交易机器人将要测试操作的金融工具, 周期和模式。
选择用于测试和优化的主图表。需要通过交易品种选择来触发EA交易中包含的OnTick()事件。此外,所选的交易品种和时间段还会影响使用当前图表参数(例如,Symbol()和Period())的EA交易代码中的特殊函数。换句话说,应在此处选择附加EA交易的图表。
选择测试和优化周期。您可以选择一个预定义周期或设置自定义时间间隔。要设置自定义时间段,请在右侧的相应字段中输入开始日期和结束日期。
测试器的特定功能是它会在指定时间段之前下载一些数据(形成不少于100柱形图)。这是进行更准确的测试和优化所必需的。例如,如果您在一个星期的时间范围内进行测试,则需要额外下载两年的时间。
如果没有足够的历史数据形成额外的100柱形图(这对于“月”和“周”的时间周期尤为重要),例如,当指定测试开始日期接近现有历史数据的开始日期时,则测试的开始日期将自动更改。 一条相应的消息添加到策略测试的日志中。
此选项可以使用预置前向周期来验证优化结果,以避免过度拟合优化时间间隔。在前向优化期间,根据所选的前向周期,将“日期”字段中设置的时间段分为两部分(指定前测开始日期时的二分之一、三分之一、四分之一或自定义时间段。)
使用第一时间段的数据进行EA优化。然后选择10%(在全搜索中)或25%(在遗传算法中)的最佳运行,并在前向周期进行测试。两个时间段运行的最佳优化结果可在优化结果和前向结果的选项卡上进行比较。
策略测试可以在EA交易操作期间启用模拟网络延迟,以提供接近真实的测试条件。在策略测试中可能会在发出交易请求及执行请求期间插入某个时间延迟。从发送请求之刻起到执行为止,价格可以发生变化。这可使用户评估交易处理速度如何影响交易结果。
在现价执行模式下,用户还可以检查EA交易对交易服务器重新报价的反馈。如果要价和现价执行之间的差额超过订单中指定的偏差值,则EA会收到重新报价。
请注意,延迟仅适用于由EA执行的交易(下单,更改停损级别等)。例如,如果EA使用挂单,那么延迟只能用于下单而不能用于订单执行(在真实条件下,订单执行只能在无网络延迟时进行)。
无延迟
在此模式下,所有订单均按要价执行,而无需重新报价。该模式用于检查EA在“理想”条件下的表现。
随机延迟
“随机延迟”模式可以在最接近真实条件的环境中测试EA交易。延迟值根据以下条件自动生成:从0到9随机选择一个数字 - 这就是延迟的秒数;如果选择的数字等于9,那么会从相同范围随机选择另一个数字并加上第一个数字。
因此,延迟0-8秒的可能性为90%, 9-18秒的延迟是10%。
固定延迟
您可以选择一个预定义的延迟值,或设置自定义延迟值。平台将会衡量到交易服务器的ping值并且您也可以在测试中将该值设为延迟值,以便在尽可能接近真实的条件下测试EA交易。
选择一种报价生成模式:
有关报价生成的更多信息,请参阅相关部分。
以点为单位的利润计算可以加快测试过程,而不需要使用换算率重新计算利润以存入货币(因此无需下载相应的价格历史记录)。在此模式下,取消库存费和手续费的计算。
请注意,在此模式下不执行预付款控制。您应只将其用于快速粗略的策略评估,然后使用更精确的模式检查得到的结果。
指定用于测试和优化的初始入金金额。默认使用当前连接账户的入金货币,但您可以指定任何其他货币。请注意,将利润和预付款转换为指定入金货币的汇率必须在账户上可用,以确保适当的测试。只有“外汇”或“外汇无杠杆”计算类型的交易品种可被用作交叉汇率。
其次选择用于测试和优化的杠杆。杠杆作为持仓和订单的预付款,影响的是账户上保留的资金数额。
如果您拥有所选EA的源代码,您可以点击此按键以切换到MetaEditor中的编辑页面。
使用此菜单管理测试器设置:将各个EA交易的设置保存到ini文件中,以方便稍后点击访问。也可以通过Ctrl + C组合键将当前优化设置复制到剪贴板。您可以在首选的文本编辑器中对其进行编辑,然后使用Ctrl + V组合键将其复制并上传到测试器。
从同一菜单,您可以快速选择最近使用的程序、最近图表设置和测试周期。
此外,您可以快速访问以前的任何优化结果,以及获得结果的设置。
您可以更改用于测试/优化的主要交易品种的设置。几乎所有规格参数都可以被重写:交易量、交易模式、预付款要求、执行模式和其他设置。
当测试策略(例如交易限制、预付款设置和手续费)时,设置您自己的交易账户参数。此选项可以模拟交易商提供的不同交易条件。
选择优化模式:
有关可用类型的更多详细信息,请参阅相关部分。
优化标准是一个特定因素,该值定义了一组经过测试的参数的质量。优化准则的值越高,给定参数集的测试结果就越好。这仅用于遗传优化。
|
快速优化基于遗传算法, 可以在位于右侧的字段里选择 优化准则 启用。此字段设置参数, 基于许多成功的智能交易系统选择运行。选择的参数值越大, 结果越佳。
设置所有参数之后点击 "开始"。测试和优化过程启动。
|
输入参数 允许您控制智能交易系统的行为, 令其适应不同的市场条件以及指定的金融工具。例如, 您可以利用不同 止损 和 止盈 数值来探索智能交易系统的性能, 不同周期的移动均线用于市场分析和决策制定, 等等。
优化是测试输入参数的不同数值组合来获取最佳结果。
为了启用参数优化, 标记相应的选框。下一步设置开始和结束数值范围, 以及测试增量。您可以选择一个或多个参数。可能的组合总数显示在参数列表下方。
参数设置。 您可以使用快捷菜单,通过保存一套MQL5程序参数随时返回其当前设置:
您可以在策略测试期间指定自定义交易账户设置,例如交易限制、预付款设置和手续费。此选项可以模拟交易商提供的不同交易条件。
常用
在这部分,您可以设置账户上可同时存在的未结订单和持仓的最大数量。此外,您还可以配置不允许程序交易的时间段。
预付款
这部分可以配置将在测试中使用的预付款保留规则和持仓账户系统:
风险管理模式:OTC(场外模式)和交易所模式、单边系统模式或锁仓系统模式。
当达到这个水平时,账户就会切换到“追加预付款”状态。
当达到该水平时,取消所有订单并关闭所有交易持仓。这些水平可以用货币和百分比表示。在前一种情况下,它们被确定为账户的净值数值。如果选择了“百分比”,则水平可定义为账户的“预付款水平”值(净值/预付款* 100)。
此处指定了在可用预付款计算中当前浮动盈/亏的计算方法:
此处指定了在可用预付款计算中交易者每日已实现盈/亏的计算方法:
交易日结束时取消冻结固定盈利 ― 该选项只在选择“使用每日固定亏损”选项时可用。如果启用此选项,则在交易日结束时将取消冻结累计的盈利(因此也包含在可用预付款中)。否则,这部分盈利额将被继续冻结。
手续费
这部分提供管理所有交易操作收取的手续费:
要应用当前交易账户的手续费设置,请启用“使用预定义手续费”选项。
启用选项以使用当前交易账户手续费设置,来替代下面指定的自定义设置。
指定要为其配置手续费的交易品种名称。可为每个交易品种添加多个设置。因此,您可以根据交易量或周转率设置多级手续费。
手续费可在每次交易之后立即收取,也可在交易日或交易月累计,然后通过一次操作进行收取:
此外,还可以根据每笔交易量或每日/每月的周转来收取手续费。所选选项决定了在“从”和“到”字段中显示其交易量的实体:交易或周转。
在每日和每月模式下,双向交易均收取手续费(开仓/增仓以及平仓或部分平仓时)。对于即时手续费,可以手动设置交易方向。
针对进/出类型的反转交易,“入”意味着仅收取新持仓的交易量的手续费,“出”意味着收取平仓交易量的手续费。以下规则适用于Close By交易:
将收取手续费的最小交易量(周转率)。该范围不可重叠。否则,将对操作所属的所有范围收取手续费。
将收取手续费的最大交易量(周转率)。该范围不可重叠。否则,将对操作所属的所有范围收取手续费。
手续费金额。手续费单位取决于在“模式”字段选择的手续费计算方法。
最低手续费金额。值单位取决于所选的计算模式(基础货币、组货币、点等)。如果您不想限制最低手续费金额,请设置0值。
最高手续费金额。值单位取决于所选的计算模式(基础货币、组货币、点等)。手续费最大值不可低于其最小值。如果您不想限制最高手续费金额,请设置0值。
手续费金额计算单位:
手续费收取类型:
您可以重写主要交易品种的设置,并为此执行测试/优化。几乎所有规格参数都可以重写:交易量、交易模式、预付款需求、执行模式和其他设置。因此,如果您需要在不同条件下检查EA,则无需创建单独的自定义交易品种和下载其历史记录。这可以通过更改标准的交易品种设置来完成。
如果交易品种规格为自定义,则齿轮图标和交易品种图标将用星号标记。这表示自定义参数用于当前测试。
为了开始优化, 在 "设置" 栏上点击 "开始"。优化过程显示在左侧。
每次优化运行的详细结果显示在 "优化" 栏。这一栏包括生成的测试结果, 包括利润和交易数量, 以及许多统计数值可以帮助评估交易机器人的性能。
查看 测试报告 部分可得到详情。
优化报告可按照任意参数排序, 仅需点击每列标头。使用排序来找到最多盈利的参数组合, 并运行一次 单独测试 以便得到详细报告。
每次优化运行, 会显示以下数值:
使用关联菜单您可以显示/隐藏上述的一些列。为了您的方便,请勾选“切换到优化结果”选项:优化进程一旦完成,策略测试将会自动切换到结果标签。在日志标签的快捷菜单也可找到相同的命令。
使用过滤器隐藏列表中的不成功的通过:
优化结果表格配色如下,以便更有效地进行视觉分析:
这个缓存存储了关于以前计算的优化传递的数据。策略测试存储了暂停之后恢复优化和避免重新计算已经计算的测试传递的数据。
优化缓存作为每个EA每组优化参数的单独的二进制文件存储在[平台数据目录]\Tester\cache。文件根据以下规则命名:ExpertName、Symbol、Period、StartDate、EndDate、GenerationMode、OptimizationMode、Hash、opt。其中:
缓存文件可以查看之前优化的结果。打开“优化结果”选项卡,选择一个EA交易和带有所需优化缓存的文件:
列表包含了磁盘上可用的所有EA交易优化缓存文件,且每个文件都显示了优化日期、测试设置(交易品种、时间周期和间隔)和输入参数。您还可以通过交易服务器过滤优化结果。
通过结果查看模式,您还可以更改您在优化初期选择的优化准则。它显示在结果选项卡,并确定了一组测试输入参数的质量。优化准则的值越高,所考虑的测试传递就越好。在选项卡顶部的列表中选择所需的准则,测试将在“结果”列自动重新计算所有值。
若要使用第三方程序分析结果,例如,Office Excel,优化报告可被保存为文件,通过快捷菜单的“导出XML”命令。另外,快捷菜单还包括导出和导入缓存文件的命令。使用这些命令,在不同平台之间传输优化结果。
交易平台里的策略测试器提供一个强力可视系统用于呈现优化结果。打开 "优化图形"。这一栏里包括若干类型的图表, 您可以使用关联菜单在它们之间切换。
打开省缺的优化结果图形。智能交易系统和输入参数的每次递进在图形上显示为一个点。递进数量显示在水平坐标轴, 参数值是 优化准则 显示在垂直坐标轴。该图形根据优化准则的值,以绿色到红色的渐变色进行着色。
线性图表 (1D) 显示选择的参数变化作为优化准则 (垂直坐标轴), 依据选择的 优化参数 之一为水平坐标轴。为了选择水平坐标轴参数, 在关联菜单里使用 "X 轴" 命令。
在二维图形模式里, 为优化选择的 参数 变化显示在全部坐标轴上。优化准则的变化使用渐变色显示。颜色越深优化准则的值越高。
在三维图形模式里, 为优化选择的 参数 变化显示在 X 和 Y 坐标轴上。而 优化准则 的变化显示在垂直的 Z 坐标轴上, 并使用渐变色。
为了选择水平坐标轴和垂直坐标轴的参数, 在关联菜单里使用命令 "X 轴" 和 "Y 轴"。
使用鼠标管理 3D 图表
使用键盘管理 3D 图表
动作 |
键 |
---|---|
显示/隐藏网格。 |
G |
在固体填充和线填充之间切换。 |
空格 |
相机上移 (图表下移)。 |
上箭头 |
相机下移 (图表上移)。 |
下箭头 |
相机移动到右侧 (图表移动到左侧)。 |
右箭头 |
相机移动到左侧 (图表移动到右侧)。 |
左箭头 |
相机移近 (图表放大)。 |
加号 |
相机移远 (图表缩小)。 |
减号 |
围绕水平轴旋转图形向下。 |
Home |
围绕水平轴旋转图形向上。 |
Page Up |
围绕垂直轴逆时针旋转图形。 |
End |
围绕垂直轴顺时针旋转图形。 |
Page Down |
移动 零平面 向上一格。 |
Ctrl+上箭头 |
移动零平面向下一格。 |
Ctrl+下箭头 |
移动零平面向上 10 个单位。 |
Ctrl+Page Up |
移动零平面向下 10 个单位。 |
Ctrl+Page Down |
移动零平面到图形最大值。 |
Ctrl+Home |
移动零平面到图形最小值。 |
Ctrl+End |
增加零平面透明度。 |
Ctrl+加号 |
降低零平面透明度。 |
Ctrl+减号 |
设置零平面最大透明度 (它会消失)。 |
Ctrl+右箭头 |
设置零平面最小透明度 (它会变得不透明)。 |
Ctrl+左箭头 |
重置省缺图形设置。 |
在数字键板上的 "5" 键。 |
向前测试是在不同时间周期重复运行最佳优化结果。此功能允许您避免某段历史数据的参数拟合。
为了开始前测, 在设置栏的前测字段选择 总周期 部分:
|
所选部分与 "日期" 字段里指定的周期分离。第一部分是回测周期, 第二部分是前测周期。
智能交易系统的全面优化 (慢速或快速) 是在回测周期里进行。在 10% (完全搜索) 或 25% (遗传算法) 的最佳运行被选择之后, 开始前测周期。
前测有一个递进数量的最低限制。如果最佳运行数量少于 256, 额外的最佳运行将被用于前测, 直到它们的数量达到 256。如果所有运行的数量少于 256, 它们会全部参与前测。 |
回测和前测结果可以在 "优化结果" 里 (在关联菜单里选择 "前测结果") 和 "前测结果" 栏里比较。结果吻合得越好, 越有可能在真实交易里智能交易系统将有上佳表现。
前测周期可视性优化结果在 "前测优化图形" 栏里可用。若要与回测比较这些结果, 使用关联菜单在它们之间切换。
有关测试结果的详情, 请参阅章节 "何处查看优化结果" 和 "优化结果可视化"。
多线程策略测试器使用所有可用的电脑资源。测试和优化使用指定的计算代理进行, 它们作为服务安装在客户的电脑上。代理独立工作, 并可并行计算优化递进。
三种代理类型可用: 本地, 远程和云 (MQL5 云网络)。当您安装交易平台时, 本地代理会自动安装。它们的数量等于计算机逻辑核心的数量。
远程和云网络运行在其它电脑上。有关代理的详情, 请参阅 "如何使用本地代理领地加速优化" 和 "如何使用 MQL5 云网络加速优化"。
在策略测试器里打开 "代理" 部分, 并选择您打算用于优化的代理类型。
您可以购买一个多核处理器, 但它不能倍增并发任务。您可以在局域网里创建您自己的代理领地。
在局域网的每台电脑上安装代理。如果平台安装在一台电脑上, 使用 "工具" 菜单打开测试代理管理器。
否则, 下载一个单独的应用用来管理代理 MetaTrader 5 策略测试器代理 并走遍简单地安装过程。
在管理器的服务栏上:
安装之后, 代理在局域网内可由其它电脑用户使用。
远程代理仅能用在 64 位系统上。 为节省流量和磁盘空间, 以及出于安全原因:
|
打开策略测试器。在 "代理" 栏里, 选择 "本地网络领地" 并在关联菜单里点击 "添加"。
最简单和最快速的方法是自动扫描局域网内的一片范围的 IP 地址和端口。选择它们并输入安装时指定的代理连接密码。
点击 "完成", 所有已发现代理可用于测试。
添加代理的其它选项:
|
为了修改设置, 在关联菜单里点击 "编辑" 命令。
以下字段在设置窗口里可用:
在本地代理设置里只有启用/禁用选项可用。
为令远程代理设置更加容易, 平台提供一个功能来导入和导出它们的设置。设置文件具有 *.mt5 扩展名。导入和导出命令位于 "代理" 栏的关联菜单里。
设置文件有如下格式: 名称;地址:端口;密码;描述;启用。
不同的代理设置相互间以换行分隔。
MQL5 云网络利用数以千计的电脑能力快速优化您的 EA。网络组合远程代理并在它们之中分派优化任务。策略测试器通过多个存取点连接云网络, 即按领域分派 (如, MQL5 云欧洲)。
为了使用网络代理, 在关联菜单里使用命令 " 启用"。由于 MQL5 云网络是付费服务, 用户必须在 MQL5 社区 网站上有一个账户, 通过它所有计费操作被执行。账户详情在平台设置的 MQL5 社区 栏里指定。
在启用 MQL5 云网络代理之前, 如果您未能在您的 MQL5 社区账户里指定详情, 您将被要求完成这步。
如果您还未在网站上注册, 使用 创建新账户 链接。
就像常规的优化, 您需要设置所有的测试选项和智能交易系统的输入参数。在代理栏, 您可以监控策略测试器如何分派任务到可用的代理。显示每个存取点可用以及当前使用的代理数量。
交易者可能需要在合理的时间内运行几十万次优化过程。利用多线程策略测试器和 MQL5 云网络, 在一小时内您就可以完成无网络环境需要数天的计算量。数千核心计算能力可直接在交易平台上使用。
每个优化过程都有限制。优化过程中,EA交易不得向磁盘写入超过4GB的内存(RAM) 。如果超出限制,网络代理将无法正确完成计算,您将不会收到结果。但是,您需要为计算所花费的所有时间付费。 |